An MCP client that skips initialize and tools/list will guess the wrong surface. Swarme's catalog has 1940 tools. The MCP server does not expose 1940 MCP tools. It exposes a small, named set that searches, describes, quotes, and runs capabilities through the same contract as REST.

This walkthrough uses a live initialize against POST https://swarme.io/mcp. Protocol version was 2025-03-26. Server title was Swarme Capability MCP Alpha. Server version was 2026.07.15-wallet-alpha. tools/list then returned 22 tools.

Initialize before you list

Connect a streamable HTTP client to https://swarme.io/mcp. Send initialize with protocolVersion 2025-03-26, then notifications/initialized, then tools/list. Docs at https://swarme.io/developers say to begin with tools/list and not assume a cached list. That instruction is literal. The observed server version string is dated 2026.07.15-wallet-alpha. Cache across that date at your own risk.

Authenticate with Authorization: Bearer. Create the key at https://swarme.io/dashboard?tab=developers. /dashboard/developers returns 404. An unauthenticated session is not an MCP listing problem; HTTP 419 and the toast Your secure form token expired. Please go back and try again. are web-form failures, not tools/list results.

A client config that matches the docs uses streamable HTTP against https://swarme.io/mcp and a Bearer header. After initialize, record serverInfo.name (swarme), title (Swarme Capability MCP Alpha), and version (2026.07.15-wallet-alpha). If the version string changes, list again before you call quote or run.

The 22 tools actually listed

Observed names, in list order:

  1. swarme_ai_models
  2. swarme_ai_run
  3. swarme_ai_status
  4. swarme_experiment_create
  5. swarme_experiment_status
  6. swarme_experiment_select_winner
  7. swarme_capabilities_search
  8. swarme_capability_describe
  9. swarme_account_balance
  10. swarme_vault_summary
  11. swarme_vault_documents
  12. swarme_vault_field_write
  13. swarme_vault_fill_quote
  14. swarme_vault_fill
  15. swarme_tool_quote
  16. swarme_tool_run
  17. swarme_tool_status
  18. swarme_tool_cancel
  19. swarme_tool_artifacts
  20. swarme_upload_session_create
  21. swarme_discover_search
  22. swarme_discover_read

That is the MCP surface. It is not the 1940-tool directory. Search still returns capability slugs. Quote and run still target one slug. MCP does not flatten every catalog entry into its own tool. Category filters on search still use API slugs such as web-seo, security-network, and ai-tools, not homepage labels.

Do not instruct an agent that "Swarme MCP can run any of the 1940 tools." It can search 1940 slugs and then hit the same describe_only wall as REST: 1491 tools block quote/run. 439 are supported. 10 are requires_worker.

Developer docs currently print a shorter example set (swarme_capabilities_search through swarme_upload_session_create). The initialize-then-list path is the source of truth. Use the 22 names above, not a remembered subset.

Capability flow on MCP is still describe then quote then run

For a catalog tool, the machine path is:

  1. swarme_capabilities_search — keyword and optional category.
  2. swarme_capability_describe — schema and machine_run_status for one slug.
  3. swarme_tool_quote — price/access lock, including $0.00 included.
  4. swarme_tool_run — requires quote_id on the same contract as REST.
  5. swarme_tool_status / swarme_tool_cancel / swarme_tool_artifacts — poll, cancel, list outputs.
  6. swarme_upload_session_create — only when the describe schema needs a file.

Inspect machine_run_status after describe. Quote and run only supported, requires_worker, or plan_only. Refuse describe_only, missing, and unknown values. 1491 of 1940 catalog tools are describe_only and block quote/run. MCP does not lift that gate.

A completed REST run of uuid-generator returned UUID 4cd3c7b6-0495-447a-8efd-9a1374f7599c at $0.00 included after a 900-second quote lock, with idempotency_required_for_client true. The MCP tools swarme_tool_quote and swarme_tool_run are the same steps with different names. The public page remains https://swarme.io/tool/uuid-generator.

Adjacent tools are not a second catalog

The remaining names are account, vault, AI workbench, and Discover helpers. They sit beside the capability flow. They are not 1940 extra catalog entries.

  • swarme_account_balance — credit, metered usage, spend-limit status. Observed wallet: $0.00, billing mode metered_observe.
  • swarme_ai_models / swarme_ai_run / swarme_ai_status — curated AI model jobs, not the full ai-tools category.
  • swarme_experiment_create / swarme_experiment_status / swarme_experiment_select_winner — workbench experiments.
  • swarme_vault_summary, swarme_vault_documents, swarme_vault_field_write, swarme_vault_fill_quote, swarme_vault_fill — vault metadata and fill. Summaries are masked; decrypted values are not listed as returned.
  • swarme_discover_search / swarme_discover_read — public Passports, not tool execution.

Call swarme_account_balance before paid swarme_tool_run or swarme_ai_run. A $0.00 observe wallet still required a quote on the included UUID run. It will not invent spend capacity for metered work.

A list you can trust

Do not ship a hardcoded MCP tool list in a client. The server version string will move. tools/list is cheap compared with a wrong swarme_tool_run.

Practical sequence:

  1. POST https://swarme.io/mcp with initialize, protocolVersion 2025-03-26.
  2. Confirm serverInfo.title is Swarme Capability MCP Alpha and record version.
  3. Call tools/list. Count the names. The observed count is 22.
  4. Search capabilities. Describe. Stop on describe_only.
  5. Quote, then run, with approval around paid work and file access.

For how a router should pause before execution, see AI tool routing. For file tools that still require an upload path, see how to choose a secure online file tool before creating an upload session.