Skip to main content

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:

~/.claude/claude.json
{
  "mcp_servers": {
    "agent-fleet": {
      "command": "php",
      "args": ["/path/to/agent-fleet/artisan", "mcp:start", "agent-fleet"]
    }
  }
}

Or start it directly from the terminal:

bash
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:

Cursor MCP config — full server (all 400+ tools)
{
  "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:

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_token grant

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.

A few newer domains are currently available only on /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.
Local agents (Claude Code, Codex) connected via stdio cost zero credits — FleetQ's 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.