Getting started
pick.tools is one MCP endpoint, https://pick.tools/mcp. Through it an agent searches a curated catalog of remote MCP servers, reads a tool's schema and calls the tool. Keyless and API-key servers are relayed; for an OAuth server the agent gets the vendor's own URL. Every relayed call is counted on Rankings.
Connect
Claude Code, one line. Add one --header per keyed service, or none for keyless servers:
claude mcp add --transport http pick https://pick.tools/mcp --header "X-Pick-Key-kagi: <your key>"
The same in a project .mcp.json. Claude Code needs "type": "http" on a URL entry:
{
"mcpServers": {
"pick": {
"type": "http",
"url": "https://pick.tools/mcp",
"headers": {
"X-Pick-Key-kagi": "<your key>"
}
}
}
}
Cursor (.cursor/mcp.json or ~/.cursor/mcp.json): the same entry with url and headers, without type.
Claude Desktop: a custom connector with the URL https://pick.tools/mcp reaches keyless servers; it cannot send headers. For keyed servers, run mcp-remote from claude_desktop_config.json:
{
"mcpServers": {
"pick": {
"command": "npx",
"args": ["mcp-remote", "https://pick.tools/mcp", "--header", "X-Pick-Key-kagi:<your key>"]
}
}
}
MCP SDKs: point a Streamable HTTP client at https://pick.tools/mcp and set the headers on its requests. VS Code, Windsurf and other clients take the same URL and headers; check your client's documentation for the exact key names.
Picker mode and composed mode
Picker mode is the default. The endpoint exposes three tools, so the agent's context holds three tool definitions, not hundreds:
search_toolssearches service names, server descriptions and tool names and descriptions.describe_toolreturns a tool's input schema and the header it needs.call_toolcalls the tool and returns the vendor's result as it came.
Composed mode exposes the tools of the servers you name, as <slug>__<tool>. Up to 10 slugs; an unknown slug is a JSON-RPC error.
https://pick.tools/mcp?use=exa,context7
Tools of a keyed server load when you call describe_tool or search_tools, or tools/list in composed mode, with your key in X-Pick-Key-<slug> while none are cached. pick.tools lists the server's tools with your key and caches their names, descriptions and input schemas, never your key. Until then a search finds the server without its tools. Some servers list tools per account (Zapier MCP lists the actions you enabled); their tools are listed for you with your key each time and never cached.
Which clients can send keys
Keyed servers need a client that can set custom headers on a remote MCP server: Claude Code, Claude Desktop through mcp-remote, Cursor, Windsurf, VS Code, the MCP SDKs and mcp-remote in any client. Hosted connectors, such as claude.ai custom connectors and ChatGPT, cannot set headers. From them you reach keyless servers, not keyed ones.
Limits
pick.tools applies per-IP limits to JSON-RPC tools/call requests to /mcp: 120 per minute and 10,000 per day. The count includes the picker tools search_tools, describe_tool and call_tool as well as composed-mode tools. Over a limit, the endpoint answers HTTP 429 with a Retry-After header and JSON-RPC error code -32000. Hosted platforms that share egress IPs share these limits. Request bodies over 1 MiB get HTTP 413.
Next: Headers for keys, Methodology for the numbers.