Skip to content

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.

{
"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.

OSPath
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.

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:

Terminal window
mcppipe up

with 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:

Terminal window
mcppipe detect --json

See the CLI reference.

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.

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.