Connect Claude Desktop to a remote MCP server
Claude Desktop reaches your tunnel over Streamable HTTP at its public URL. There is no plugin and no special header — you add the tunnel URL as a remote MCP server and Claude talks to whatever is behind it.
The config entry
Section titled “The config entry”{ "mcpServers": { "notes-via-tunnel": { "url": "https://notes--acme.mcppipe.dev/mcp" } }}mcppipe up prints exactly this block, filled in with your host, when the
tunnel comes up. The entry name is derived from the tunnel’s --name with
-via-tunnel appended, so a tunnel called notes becomes notes-via-tunnel —
which keeps it distinguishable from a local server of the same name in the same
file.
Where the config file lives
Section titled “Where the config file lives”| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json (or $XDG_CONFIG_HOME/Claude/…) |
Restart Claude Desktop after editing — it reads the file at startup.
Auto-detect reads this file too
Section titled “Auto-detect reads this file too”Run mcppipe up with no --upstream/--stdio and the CLI scans that same path
to find MCP servers you have already configured locally, then offers to
expose them. That means the usual first run is:
mcppipe upwith no arguments at all — if Claude Desktop already has a filesystem server or a Postgres server set up, mcppipe finds it.
Check what it sees without connecting anything:
mcppipe detect --jsonSee the CLI reference.
IP allowlist
Section titled “IP allowlist”Claude Desktop runs on your machine, so if you lock the tunnel down with an IP allowlist the entry that matters is your own egress IP — not Anthropic’s.
The Anthropic preset is for the opposite case: Claude on the web and Managed Agents, which reach your tunnel from Anthropic’s infrastructure rather than from your laptop.
If the tunnel needs a token
Section titled “If the tunnel needs a token”A tunnel in OAuth mode returns 401 with a pointer to where a token comes from,
and a spec-compliant client follows it automatically. For details on what is
validated and how to mint a long-lived credential, see
Authentication: OAuth & Service Tokens and
401 invalid_token.
See also
Section titled “See also”- Client compatibility — the full matrix
- Quickstart
- CLI reference