Docs MCP
The Chord Docs MCP is this documentation as a Model Context Protocol server: an agent searches the docs, reads a page, or pulls an endpoint’s exact parameters, response shape and a real example — instead of guessing from training data. It is read-only and never calls the Chord API; when the agent also needs live numbers, pair it with the hosted MCP server, the Agent skill or direct API calls.
Hosted
Section titled “Hosted”One URL, no install, Streamable HTTP:
https://getchord.xyz/docs/mcpClaude Code
claude mcp add --transport http chord-docs https://getchord.xyz/docs/mcpClaude Desktop, Cursor, Windsurf, any client with an mcpServers config
{ "mcpServers": { "chord-docs": { "type": "http", "url": "https://getchord.xyz/docs/mcp" } } }Codex, OpenAI Agents SDK and other clients that take a URL: point them at the same address. The server is stateless (no session ids), answers JSON to a POST, and allows any origin.
Its server card (MCP SEP-2127) is at https://getchord.xyz/docs/mcp/server-card, and the site’s AI catalog (/.well-known/ai-catalog.json) lists it.
Local (stdio)
Section titled “Local (stdio)”The same server also runs over stdio, for an offline client or one that only speaks stdio, but only from a checkout of the Chord repository (packages/docs-mcp), which is not public yet. Outside it, use the hosted URL above: same server, same index.
# from a checkout of the Chord repositorypnpm install --filter @nullterminal/docs-mcpclaude mcp add chord-docs -- node $PWD/packages/docs-mcp/stdio.mjsIt fetches the docs index from getchord.xyz on start and refreshes it every 30 minutes. DOCS_INDEX_URL points it elsewhere; DOCS_INDEX_FILE uses a local build of the docs.
| Tool | What it does |
|---|---|
search_chord_docs |
Full-text search over every page and every endpoint; returns matching sections and operations with a snippet and URL. kind narrows to pages or operations. |
read_chord_docs_page |
The full Markdown of one page (or one section with #anchor) by path, e.g. /docs/concepts/streaming/. |
chord_api_reference |
An endpoint’s method, path, every parameter with type / enum / default, the request body, the response shape and a real example captured from the live API. Look up by operationId (getQuote), path (/v1/arc/tokens) or words. |
list_chord_docs_pages |
Every page with its description, grouped by section, plus the API tags — for orientation. |
The server also sends instructions on connect (base URL, the amounts rule, the Arc USDC alias), so a model that only calls one tool still gets the facts it most often gets wrong.
What the index is
Section titled “What the index is”A JSON built with the site — every page’s Markdown split into sections, every OpenAPI operation with its parameters, response outline and example — published at /docs/docs-index.json and rebuilt on every deploy. Search is a small in-memory scorer; a query answers in a few milliseconds.
Tested with Claude
Section titled “Tested with Claude”Both transports were verified with Claude Code in headless mode: the model was told to answer only from the MCP, and it called search_chord_docs then read_chord_docs_page / chord_api_reference and returned the exact WebSocket subscribe frame and the holders endpoint with the doc URLs. Run the same check yourself:
claude -p "Using only the chord-docs MCP, how do I subscribe to live Arc prices over WebSocket?" \ --allowedTools "mcp__chord-docs__*"