The desktop app does this for you. It detects which clients you have, writes the right file in the right shape, and tells you what was already configured on the machine. Use it unless you have a reason not to: statio.dev/download.
It also keeps them current. Every five minutes the app checks which servers you
can use and updates each client it configured: a server you were just granted
is added, one you lost access to is removed, and a file is only rewritten when
something changed. Servers → Refresh syncs immediately. From a terminal,
mcphub config sync does the same.
This page is the manual path: what the app writes, and where. Useful for headless machines, unsupported clients, or when you want to see exactly what changed.
Every MCP client connects the same way: one URL and one header. What differs is which file the client keeps its config in.
<server-name> is the name shown on the server in the dashboard. The key is
one you created under Settings → API Keys.
Danger
Connect to the gateway, never to a server's own address. A server's
endpoint is the gateway's internal proxy target. Reaching it directly
bypasses the permission check, the credential injection and the audit log, which
is to say it bypasses Statio entirely.
| Client | Config file |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| VS Code | ~/.vscode/mcp.json |
| Cline | ~/Library/.../cline_mcp_settings.json |
| Continue.dev | ~/.continue/mcpServers/mcphub.json |
| Zed | ~/.config/zed/settings.json |
| Amazon Q | ~/.aws/amazonq/mcp.json |
| Claude Code | (configured via the app or mcphub config claude-code) |
Paths are macOS; Linux and Windows equivalents differ per client.
Claude Desktop's config file only accepts local (stdio) servers, so the app
connects it through the mcp-remote
bridge, which needs Node.js on the machine:
The URL is the app's local proxy, which holds your sign-in and attaches it to each request, so no key is written into the file. Restart Claude Desktop after the config changes; it reads the file only at launch.
For a client that supports remote MCP servers with custom headers:
Add one entry per server. The key at the top ("github" here) is the name your
agent sees; it does not have to match the server name in the URL, though keeping
them the same saves confusion later.
Note
Client support for remote MCP servers is uneven and moving quickly. A client that only speaks stdio needs a local bridge process rather than the config above, so check its current documentation for remote-server support before assuming this shape works.
Ask your agent to list its available tools. You should see the tools you were granted, not every tool the server exposes. That difference is the product doing its job.
Then check Audit in the dashboard. The listing itself is recorded, so a call that appears there confirms the whole path end to end.
Almost always a missing grant rather than a broken connection. Servers in
the desktop app (or mcphub servers) shows every server in your organization,
whether you can use it, and its tools. A server you can
reach exposes only the tools you hold permission for; see
Permissions.
If nothing at all appears, check in this order:
claude, not a resumed one) or quit and reopen the client.