MCP Server — Connect AI Agents Directly
FleetQ exposes a Model Context Protocol (MCP) server that gives LLMs and agent frameworks direct, tool-based access to every platform capability. No REST calls, no token management in your prompts — just natural language.
Scenario: A developer connects Claude Code to FleetQ via MCP and types:
"Create an experiment that monitors Hacker News for mentions of our product and summarises the
top 5 posts every morning." Claude calls the agent_create, skill_create,
and project_create MCP tools in sequence — the entire setup is done in one conversation.
Three endpoints, two servers
FleetQ ships a compact and a full MCP server so clients with tool-count limits (Claude.ai) and clients without (Cursor, Claude Code) can both use the platform natively:
| Endpoint | Transport | Tools | Auth | Best for |
|---|---|---|---|---|
| POST /mcp | HTTP / SSE | 34 consolidated meta-tools | OAuth 2.0 or bearer token | Claude.ai, Claude Desktop, ChatGPT |
| POST /mcp/full | HTTP / SSE | 400+ granular tools | OAuth 2.0 or bearer token | Cursor, remote automation, CI pipelines |
| agent-fleet | stdio | 400+ granular tools | Auto (team owner) | Claude Code, Codex — local dev machines |
Both HTTP servers share the same OAuth discovery endpoints, consent screen, and BYOK provider credentials.
The compact server consolidates related operations into 34 meta-tools that take an action
parameter (e.g. agent_manage with action=list),
delegating internally to the same 400 implementations used by the full server.
Setting up stdio (Claude Code)
Add FleetQ to your Claude Code MCP configuration:
{
"mcp_servers": {
"agent-fleet": {
"command": "php",
"args": ["/path/to/agent-fleet/artisan", "mcp:start", "agent-fleet"]
}
}
}
Or start it directly from the terminal:
php artisan mcp:start agent-fleet
Setting up HTTP (Cursor, remote)
Create an API token in Team Settings → API Tokens, then configure your MCP client:
{
"mcpServers": {
"agent-fleet": {
"url": "https://fleetq.169.58.89.204.sslip.io/mcp/full",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}
For Claude.ai and other clients with tool-count limits, use https://fleetq.169.58.89.204.sslip.io/mcp
(compact, 34 meta-tools) instead of /mcp/full.
Setting up in Claude.ai (OAuth)
Claude.ai, Claude Desktop, and other MCP clients that speak OAuth 2.0 can connect without a pre-issued API token. Go to Settings → Connectors → Add custom connector in Claude.ai and paste the server URL:
https://fleetq.169.58.89.204.sslip.io/mcp
FleetQ implements the full MCP authorization spec:
- Authorization Code flow with PKCE (S256) — no client secret required for public clients
- Dynamic Client Registration (RFC 7591) at
/oauth/register— no manual client setup - Authorization Server metadata (RFC 8414) at
/.well-known/oauth-authorization-server - Protected Resource metadata (RFC 9728) at
/.well-known/oauth-protected-resource - Scope:
mcp:use(single scope covering all tool invocations) - Refresh tokens via the standard
refresh_tokengrant
When Claude.ai connects, you will be redirected to the FleetQ consent screen to authorize access for the calling team. Tokens are scoped to the team you choose at consent time — no cross-tenant access is possible.
Tool profiles (compact server only)
On the compact server (/mcp), teams can further restrict which meta-tools are
visible via profiles in Team Settings → MCP Tools. The full server
(/mcp/full) always exposes all 400+ tools.
| Profile | Meta-tools | Best for |
|---|---|---|
| Essential | 11 meta-tools | Simple agents with focused tasks |
| Standard | 22 meta-tools (core + operations) | Most use cases |
| Full | All 34 meta-tools | Power users and automation |
| Custom | Hand-picked | Teams with specific needs |
34 meta-tools on /mcp (compact server)
This is what Claude.ai, Claude Desktop, and other tool-limited clients see. Each meta-tool takes an
action parameter plus action-specific arguments, and delegates internally to
the corresponding granular tool on the full server:
agent_manage
Agents: list, get, create, update, delete, toggle_status, set_reasoning_strategy, templates, constraint_templates, runtime_state
agent_advanced
Agents: config_history, rollback, skill_sync, tool_sync, feedback (list, stats, submit), hooks, heartbeat, workspace export/import
project_manage
Projects: list, get, create, update, activate, pause, resume, restart, archive, trigger_run, runs_list, milestones
workflow_manage
Workflows: list, get, create, update, delete, validate, generate, activate, duplicate, estimate_cost, execution_chain
workflow_graph
Edit graph DAG: save_graph, node_add/update/delete, edge_add/delete
experiment_manage
Experiments: list, get, create, start, pause, resume, retry, kill, retry_from_step, cost, share, steps
crew_manage
Crews: list, get, create, update, execute, execution_status, executions_list, messages, propose_restructuring
budget_manage
Budget: summary, check, forecast, alerts
memory_manage
Memory: search, list_recent, stats, add, delete, propose, promote, upload_knowledge, unified_search
system_manage
System: dashboard_kpis, health, version_check, audit_log, global_settings, langfuse_config
credential_manage
Credentials: list, get, create, update, delete, rotate, rollback, list_versions, oauth_initiate, oauth_finalize
trigger_manage
Trigger rules: list, create, update, delete, test
skill_manage
Skills: list, get, create, update, delete, versions, annotate, benchmark, playground_test, generate_improvement
tool_manage
Tools: list, get, create, update, delete, activate, deactivate, probe_remote_mcp, import_mcp, bash_policy, ssh_fingerprints, middleware_config
approval_manage
Approvals: list, get, approve, reject, complete_human_task, escalate, webhook_config, security_reviews
signal_manage
Signals: list, get, ingest, contacts (manage, risk, high_risk, reevaluate), email_reply, imap_mailbox
signal_connectors
Connectors: Slack, Telegram, Alert, ClearCue, HTTP monitor, Ticket, Supabase, SearxNG, IntentScore, KG add/search/entity_facts, inbound binding + subscription
knowledge_manage
Knowledge: list, get, create, update, delete, upload, sync_now, search
artifact_manage
Artifacts: list, get, content, download_info
outbound_manage
Outbound: connector_config list/save/test/delete, ntfy_send
webhook_manage
Webhooks: list, get, create, update, delete
team_manage
Team: get, update, members, BYOK credentials, API tokens, custom endpoints, local_llm, notifications, push_subscriptions, plugins, mcp_tool_preferences
integration_manage
Integrations: list, get, connect, disconnect, ping, capabilities, activepieces_sync
integration_execute
Integration tool execution (separate from integration_manage for clarity)
marketplace_manage
Marketplace: browse, get, publish, install, review, categories, analytics
email_manage
Email: templates list/create/update/delete/generate; themes list/create/update/delete
chatbot_manage
Chatbots: list, get, create, update, delete, toggle_status, tokens, sessions, analytics, learning_entries
bridge_manage
Bridge: status, endpoint_list, endpoint_toggle, connect, rename, update_url, set_routing, disconnect
assistant_manage
AI assistant: conversation list/get/create/clear, send_message, annotate, review, compact
git_manage
Git repos: list/get/create/update/delete/test, branch_create, commit, file_write, pull_request create/close/merge/status, release, changelog, version_bump, workflow_dispatch
profile_manage
User: profile get/update, password change, 2FA, social accounts, sessions, notification preferences
evolution_manage
Evolution proposals: list, get, analyze, approve, apply, reject
boruna_manage
Boruna QA: run tests, validate, evidence collection, capabilities list
admin_manage
Super admin: team_suspend, billing_apply_credit, billing_refund, team_billing_detail, security_overview, user_revoke_sessions, user_send_password_reset
Need direct access to each granular operation? Connect to /mcp/full instead —
it exposes 400+ individual tools across 33 domains (e.g. agent_list, agent_create,
agent_update as separate entries in tools/list). Both servers share the same
OAuth flow, BYOK credentials, and ApprovalsResource MCP App widget.
/mcp/full and
haven't been consolidated into compact meta-tools yet: Website Builder
(website_create, website_generate,
website_deploy, …), Voice Agents
(voice_session_create, voice_session_end,
voice_session_get_transcript, …), and the
Flow Evaluation Suite (flow_evaluation_run_start,
flow_evaluation_results, evaluation_dataset_manage, …).
Point Claude Code, Cursor, or any OAuth-capable MCP client at /mcp/full to use them.
LocalAgentGateway spawns CLI processes directly with no API call.
Perfect for development and testing.
Troubleshooting
Common issues and fixes when connecting the FleetQ MCP server:
401 Unauthorized — bearer token required
Your client did not send a bearer token, or the token has expired. In Claude.ai, disconnect and reconnect the connector to trigger a fresh OAuth flow. For manual Sanctum tokens, create a new one in Team Settings → API Tokens and update your client config.
OAuth redirect URI mismatch
FleetQ uses Dynamic Client Registration (RFC 7591), so redirect URIs are registered automatically. If you see a redirect mismatch error, your client is probably using a stale cached client_id. Clear the connector from Claude.ai and re-add it.
Tool call returns insufficient_budget
The team's credit reservation check failed. Check Billing for the current balance, or upgrade to Pro to remove the monthly usage cap. Tool calls that use BYOK provider keys are not billed against the FleetQ budget — make sure your team has at least one active provider credential in Team Settings → Provider Credentials.
Tool call times out after 300s
Claude.ai enforces a 5-minute timeout per tool call. Long-running experiments, workflows, and crew
executions run asynchronously — use the experiment_start or
workflow_execute tools which return a run ID immediately, then poll
experiment_get / workflow_run_get for status.
429 rate limit
FleetQ enforces 200 tool calls per minute per team. If you hit this limit, slow down batched calls
or upgrade to Enterprise for a custom rate. The Retry-After header tells
you when to retry.
tools/list only returns 34 tools, not 400
You are connected to the compact server at /mcp, which consolidates
the 400+ granular tools into 34 meta-tools. To get each operation as a separate tool, point your
client to /mcp/full instead. Both endpoints share the same OAuth flow
and credentials.
tools/list returns fewer meta-tools than expected (compact server)
Per-team tool filtering is active on /mcp. Check
Team Settings → MCP Tool Preferences
for the active profile — switch to Full to expose all 34 meta-tools, or build a
Custom profile that includes just what you need.
Approvals inbox widget does not render
The ui://fleetq/approvals MCP App resource only appears in clients that
declare the MCP Apps capability during the initialize handshake (currently Claude.ai and Claude Desktop
on recent builds). Claude Code does not yet render MCP Apps.
Still stuck? Email support@fleetq.net with your team ID (visible in Team Settings) and a description of what you were trying to do. We respond within 2 business hours during review.
Privacy, terms & support
Use of the FleetQ MCP server is governed by our public policies:
- Privacy Policy — GDPR + CCPA compliant, covers data collection, retention, third-party sharing, and your rights.
- Terms of Service — acceptable use, liability, and service level.
- Support: support@fleetq.net for connector issues, onboarding questions, or enterprise enquiries.