Connect a generated MCP server to a client
Your API's MCP server, generated by typeship: the local package, the hosted endpoint, and one command that registers either with every agent client on a machine.
Quick reference
# local server from the generated package (reads the CLI's saved credentials)
acme login --token <acme api token>
acme mcp install --all # Claude Code, Codex, VS Code, Windsurf, Gemini CLI, OpenCode, Zed, Claude Desktop
acme mcp # print the entry and which clients were detected
# hosted endpoint (Enterprise: typeship runs it at a stable URL)
acme mcp install --all --url https://typeship.dev/mcp/<slug>
claude mcp add --transport http acme https://typeship.dev/mcp/<slug>acme stands for your generated CLI's name, derived from your API's title.
Why these commands
The generated package ships the server. acme-mcp speaks stdio and Streamable HTTP, exposes one tool per operation with typed input and output schemas plus search_docs and read_docs, and reads the same credentials acme login saves. See MCP server.
mcp install --all writes every client at once. It detects the clients on the machine and merges an entry into each one's config, preserving what is there: .mcp.json for Claude Code, config.toml for Codex, .vscode/mcp.json, and the rest. For a hosted endpoint the entry is the URL with the auth env var as a reference (${ACME_TOKEN}), never a literal key. Cursor is skipped until it speaks MCP 2026-07-28; --cursor writes it on request with that note.
The hosted endpoint is your API as a remote MCP server. https://typeship.dev/mcp/<slug> runs the same tool surface with the caller's Authorization passed through to your API; when your spec declares OAuth, unauthenticated clients get the RFC 9728 challenge. See Hosted endpoint.
Verify in the client. acme doctor reports which clients are detected and configured; in the client, list tools and call a read-only one.
acme mcp install --all over editing client config by hand. If the user wants a specific client, pass its flag. Never write a literal token into a config file.Keep a generated package current
What regenerates when, how to force a run, how to read what changed, and how to handle a spec change that breaks the client.
Debug a spec that will not generate
From spec_error or a wall of warnings to a clean generation: read the message, find it in the reference, fix it in the spec or with a patch, regenerate.