stdio (spawned subprocesses) and local/LAN HTTP servers — up to your mcp1 workspace over a single outbound WebSocket. Because it dials out, it works on laptops and dev boxes behind NAT with no public IP, port forwarding, or tunnel required.
The gateway drives MCP end to end (initialize / tools/list / tools/call) through the tunnel; the bridge itself is a transparent pipe and never speaks MCP directly. Each relayed server becomes one transport=BRIDGE backend in your workspace, with its tools namespaced as namespace.tool.
Install
The bridge ships as a single self-contained file straight from your mcp1 server — no npm registry needed. On the target machine (needs Node.js 18+):mcp1-bridge executable into ~/.local/bin. Prefer not to pipe to a shell? Download https://api.mcp-1.dev/bridge/cli.cjs, chmod +x it, and run it with Node directly.
1. Mint a bridge token
In the dashboard, go to Bridges → New bridge. Copy themcp1brg_… token (shown once) and the WebSocket URL, for example wss://api.mcp-1.dev/bridge.
2. Configure
--import pulls in the stdio and http MCP servers already defined in your Claude Code (~/.claude.json, ./.mcp.json) and Codex (~/.codex/config.toml) configs. Or edit ~/.mcp1-bridge/config.json directly:
^[a-z][a-z0-9_-]*$) and becomes the tool prefix. Entries are either {command, args?, env?} for stdio servers or {url, headers?} for HTTP servers.
3. Run
--user service so it runs on login:
loginctl enable-linger $USER to keep the service running after you log out.
Commands
Env overrides:
MCP1_BRIDGE_CONFIG, MCP1_BRIDGE_SERVER_URL, MCP1_BRIDGE_TOKEN.
Notes
- The bridge reconnects automatically with backoff; crashed
stdiochildren are restarted, and the gateway rediscovers them on its next health poll. - Removing the bridge from the dashboard drops the socket and removes its relayed servers and tools from the workspace.
- The token is a workspace-scoped bearer credential — treat it like a password.