Endpoint
/mcp and /mcp/ are the same endpoint. There is no stdio package; a host that only speaks stdio connects through mcp-remote (below).
Auth
The server accepts the sameaf_... API key as the REST API, as a bearer token. A key that works on /v3 works on /mcp. Mint one at app.anyformat.ai/api-key.
A missing or unknown key returns 401 with the API’s error envelope (MISSING_API_KEY or INVALID_API_KEY). Repeated invalid keys from one address are throttled and return 429 with Retry-After, as on the REST API.
There is no OAuth flow today.
Connect
- Claude Code
- Cursor
- Claude Desktop and stdio clients
- Any client
Add the server with the Or write Check with
claude mcp add command. --scope user makes it available in every project; --scope project writes it to the project’s .mcp.json..mcp.json in the project root. Claude Code expands ${VAR} from the environment.claude mcp list, then ask Claude to list your workflows.Tools
The server exposes these tools today. Each one calls the matching v3 endpoint under your key, so the endpoint page is the reference for its inputs, outputs and errors.
The graph a tool takes or returns is the one on the Node schemas page. A host reads the full input schema from the server, so an agent can compose a valid graph without you pasting the schema into the conversation.
The document flow an agent follows is
upload_documents, then run_document_packet, then get_run with wait_seconds set, so one call waits for the result instead of the agent polling. parse_document is the one-call shortcut when the agent only needs the markdown of a single document.
delete_workflow and delete_document_packet are irreversible. Their descriptions ask the agent to call request_approval with a one-line summary and to wait for your approval before deleting. That approval is a card the host shows you; a host that does not render it still sees the destructiveHint and can ask you its own way.Tool annotations
Every tool declares the standard MCP annotations, so a host can decide when to ask you before calling it.
All tools set
openWorldHint: false: they only reach anyformat.
Authorization and limits
Authorization follows the API key. Whatever the key can do on/v3, it can do over /mcp, on the key’s organization only. Each tool needs one of the key’s scopes: the list and get tools need read, the tools that create, run, update or delete need write. A tool the key cannot call is left out of the server’s tool list, and a direct call to it is answered as an unknown tool. Every tool call passes through the gateway’s normal rate limiting, so the rate limit tiers apply per tool call as they do per request.
Errors
A failed tool call returns an MCP tool error whose message is the API’s error envelope as JSON:{ error, detail, error_code, retryable, request_id, status }. Read error_code to branch, status for the equivalent HTTP status code, and quote request_id in a support request. A TOPOLOGY_INVALID error carries detail.violations[], one entry per broken rule, with the node ids involved.
Related
- Coding assistant: the
@anyformat/skillpackage: the design know-how, also served by this server asskill://anyformat/SKILL.md. - Python SDK and TypeScript SDK: the same calls from code.

