Connect Claude Desktop
Add your endpoint to Claude Desktop with a static bearer token. For Claude.ai web (one-click OAuth), see Connect Claude.ai (web).
Most users want the web flow.
Claude.ai (web) and Cursor connect via OAuth — no config files, no token copying. Use that doc unless you specifically need Claude Desktop or a custom client.
Claude Desktop
Open Claude Desktop's config file. The path is platform-specific:
- macOS —
~/Library/Application Support/Claude/claude_desktop_config.json - Windows —
%APPDATA%\Claude\claude_desktop_config.json
Add an entry under mcpServers:
{
"mcpServers": {
"products": {
"url": "https://shipmcp.io/<your-slug>/mcp",
"headers": {
"Authorization": "Bearer smcp_..."
}
}
}
} Save the file and restart Claude Desktop. The new server shows up in the MCP indicator
in the bottom of the input box. If it doesn't appear, check Claude Desktop's logs at ~/Library/Logs/Claude/mcp*.log on macOS.
Tokens are shown once. When you create a token in the dashboard, the raw value is displayed exactly once and never stored on our side beyond a SHA-256 hash. Copy it immediately. If you lose it, rotate it and update your config.
Cursor
Cursor reads the same MCP config format. Open Cursor settings, find the MCP section, and paste the same JSON block. Cursor exposes the tools to Cmd-K and the chat sidebar.
Continue (VS Code)
Continue supports MCP via its config.json. Add an entry under mcpServers with the same shape — Continue handles the rest.
Custom clients
ShipMCP endpoints speak standard MCP over JSON-RPC 2.0 with HTTP transport. Any
client that can POST to a URL with a Bearer header works. See the MCP protocol reference for envelope details and the
three methods we implement.
Troubleshooting
- 401 Unauthorized — token typo or revoked. Mint a new one in the dashboard.
- 503 Service Unavailable — endpoint is still provisioning. Wait for the dashboard tracker to hit
active. - Tool calls returning empty results — the search tool's input schema only takes
queryandlimit; the searchable columns are listed in the tool description. Pass natural-language queries — the tool runs full-text search across those columns.