---
title: "Connect a generated MCP server to a client"
description: "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."
url: https://typeship.dev/docs/workflows/connect-a-generated-mcp-server
markdown: https://typeship.dev/docs/workflows/connect-a-generated-mcp-server.md
section: "Get started"
---
> ## Documentation index
> Fetch the complete documentation index at https://typeship.dev/llms.txt (every page, one line each) or the full text at https://typeship.dev/llms-full.txt.
> Append .md to any docs URL, or send Accept: text/markdown, for the markdown twin of that page.

# 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

```bash
# 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](https://typeship.dev/docs/platforms/mcp).

**`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](https://typeship.dev/docs/platforms/mcp#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.

> **For AI agents:** Prefer 
> 
> `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.

## Sitemap

[Every page of these docs](https://typeship.dev/llms.txt)
