examples/MCP-tools Public
id: connecting-a-client
type: guide
owner: justin
reviewed: 2026-10-15
Connecting a client
The endpoint is https://<your worker>.workers.dev/mcp once deployed, or http://localhost:8787/mcp under npm run dev. It speaks Streamable HTTP without sessions (see [[0001-stateless-streamable-http]]) and needs no auth.
MCP Inspector
npx @modelcontextprotocol/inspector
Pick the Streamable HTTP transport, enter the URL and connect. Direct connections work because /mcp allows any origin. The Tools tab lists all three tools; run time_in_zone with zone set to tokyo to check the round trip.
Claude Desktop
Claude Desktop launches local servers over stdio, so bridge to the HTTP endpoint with mcp-remote in claude_desktop_config.json:
{
"mcpServers": {
"mcp-tools": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:8787/mcp"]
}
}
}
Restart Claude Desktop and the tools appear under the tools menu. On plans that support custom connectors you can instead add the deployed URL directly as a remote connector.
Claude Code
claude mcp add --transport http mcp-tools http://localhost:8787/mcp
curl
Every message is a POST with both content types in Accept:
curl -s http://localhost:8787/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
When it does not work
- 406 Not Acceptable: the client did not send both
application/jsonandtext/event-streaminAccept. - 415 Unsupported Media Type: the body was not sent as
application/json. - 405 on GET: the client is trying to open a standalone SSE stream or resume a session. Pick a Streamable HTTP client mode that does not need one; older SSE-only clients are not supported.
- "Rate limit reached for this client": the client made more than 30 tool calls in a short burst. Wait the number of seconds the message gives; one call every two seconds is always allowed. Clients behind the same IP share the limit.
- Tools missing: check
GET /answers, then runtools/listwith curl to see what the server sends.