Use your Claude Code MAX/PRO subscription from anywhere.
An MCP server that exposes your local Claude Code CLI over HTTP+SSE, so any MCP-compatible client — OpenClaw, Claude Desktop, or your own agents — can use your Claude Code subscription remotely.
Your PC (Claude MAX/PRO) Remote Machine
┌──────────────────────┐ ┌──────────────────┐
│ claude-bridge-mcp │◄────────────►│ OpenClaw Agent │
│ :3100/sse │ HTTP+SSE │ Claude Desktop │
│ │ (Tailscale │ Custom MCP app │
│ Spawns Claude CLI ──┤ or VPN) └──────────────────┘
│ Uses YOUR sub ─────┤
└──────────────────────┘
Your $100/mo MAX or $200/mo PRO → accessible from any machine
- Node.js 18+
- Claude Code CLI installed and authenticated (
claudecommand in PATH) — install guide - An active Claude Code MAX ($100/mo) or PRO ($200/mo) subscription
# Run directly (no install needed)
npx claude-bridge-mcp
# Or install globally
npm install -g claude-bridge-mcp
claude-bridge-mcpThe server starts on http://0.0.0.0:3100. Verify:
curl http://localhost:3100/healthAdd the bridge as an MCP server in your ~/.openclaw/openclaw.json:
{
"mcpServers": {
"claude-bridge": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://<your-pc-ip>:3100/sse"]
}
}
}Replace <your-pc-ip> with your PC's IP address. If using Tailscale, use your Tailscale IP (tailscale ip -4).
Now your OpenClaw agent can use claude_execute, claude_query, claude_read_file, and claude_git_status — all powered by your Claude Code subscription.
Add to your Claude Desktop MCP config (claude_desktop_config.json):
{
"mcpServers": {
"claude-bridge": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://<your-pc-ip>:3100/sse"]
}
}
}| Tool | Description |
|---|---|
claude_execute |
Execute a task using Claude Code. Full coding capabilities: read/write files, run commands, git operations. |
claude_query |
Ask Claude Code a question (read-only, fast). Great for code analysis and explanations. |
claude_read_file |
Read a file from the PC filesystem. |
claude_git_status |
Get git status: branch, changes, and recent commits. |
All configuration is via environment variables. Copy .env.example to .env:
cp .env.example .env| Variable | Default | Description |
|---|---|---|
BRIDGE_HOST |
0.0.0.0 |
Bind address |
BRIDGE_PORT |
3100 |
Server port |
BRIDGE_API_TOKEN |
(none) | Bearer token for authentication. If set, all requests (except /health) require Authorization: Bearer <token> |
BRIDGE_ALLOWED_IPS |
(empty = all) | Comma-separated IP allowlist. Empty means all IPs allowed. Localhost is always allowed. |
BRIDGE_ALLOWED_DIRS |
(empty = cwd) | Comma-separated directory allowlist. Empty defaults to the current working directory. |
BRIDGE_TIMEOUT |
120000 |
Execution timeout in ms |
BRIDGE_MAX_CONCURRENT |
2 |
Max concurrent Claude CLI executions |
BRIDGE_QUEUE_TIMEOUT |
30000 |
Queue wait timeout in ms |
The bridge includes multiple security layers:
- IP Allowlist — Restrict access to specific IPs (e.g., your Tailscale network). Localhost always allowed.
- Bearer Token Auth — Set
BRIDGE_API_TOKENfor token-based authentication. - Directory Allowlist — Claude CLI can only access directories you explicitly allow.
- Symlink Protection — Paths are resolved via
realpath()before checking the allowlist, preventing symlink traversal. - Execution Queue — FIFO queue with configurable concurrency limits and timeout to prevent resource exhaustion.
Recommended setup for remote access:
# Use Tailscale for encrypted networking
BRIDGE_ALLOWED_IPS=100.x.y.z # Your remote machine's Tailscale IP
BRIDGE_API_TOKEN=your-secret # Additional auth layer
BRIDGE_ALLOWED_DIRS=/path/to/project1,/path/to/project2| Endpoint | Method | Description |
|---|---|---|
/sse |
GET | SSE connection for MCP clients |
/messages |
POST | JSON-RPC message endpoint |
/health |
GET | Health check (no auth required) |
/metrics |
GET | Server metrics |
- Remote MCP client connects to
/sse(Server-Sent Events) - Client sends tool calls via
/messages(JSON-RPC over HTTP) - Bridge spawns
claudeCLI locally with your authenticated session - Results stream back over SSE
The bridge uses the Model Context Protocol — the open standard for AI tool communication.
Runs anywhere Claude Code CLI and Node.js are available:
| Platform | Notes |
|---|---|
| Windows 10/11 | Full support |
| macOS (Intel & Apple Silicon) | Full support |
| Linux (Ubuntu, Debian, etc.) | Full support |
| Linux VPS (AWS, DigitalOcean, etc.) | Run the bridge on any cloud VM |
| Docker | node:18-alpine or similar |
| Mac Mini (headless server) | Great as an always-on bridge |
| Termux (Android) | Set BRIDGE_ALLOWED_DIRS explicitly |
| WSL2 | Full support |
Same-machine use: The bridge also works locally — useful for apps that only speak MCP but need Claude Code capabilities. Just connect to http://localhost:3100/sse.
git clone https://github.com/0motionguy/claude-bridge-mcp.git
cd claude-bridge-mcp
npm install
npm run dev # Hot-reload development server
npm run build # Production buildMIT - see LICENSE
Built by ICM Motion for the OpenClaw community.