# Multi-Browser MCP Proxies — Arc Browser & Chrome Beta Variants > Companion to 'CDP WebSocket 代理' for running parallel, isolated MCP fleets against Arc Browser and Chrome Beta on top of the same cdp-proxy.mjs. Portable $HOME paths + install steps included. Arc proxy auto-discovers the WebSocket path from /json/version; Chrome Beta proxy points at Beta's own DevToolsActivePort. Lets you run mcp__chrome__*, mcp__beta__*, and mcp__arc__* side-by-side with independent client state and no cross-talk. ## Install Merge the JSON below into your `.mcp.json`: # Multi-Browser MCP Proxies — Arc & Chrome Beta Companion bundle to the **CDP WebSocket Proxy** (cdp-proxy.mjs, https://tokrepo.com/en/workflows/cdp-websocket-agent-e0f83e28). Same `cdp-proxy.mjs` backbone, repointed at Arc Browser and Chrome Beta so you can run independent, isolated MCP fleets for each browser without losing focus protection or popup suppression. ## Why a separate proxy per browser - **Independent login state** — your work Chrome stays untouched while Arc drives experiments, or vice versa. - **Independent debug ports** — Arc and Chrome Beta both write their own `DevToolsActivePort` files; the proxy reads each browser's file via `--devtools-port-file`. - **No cross-talk** — each proxy has its own `clientState`, `sessionOwners`, and `pendingRequests` map. A Chrome Beta sub-agent can't accidentally hijack Arc tabs. ## Files | File | Default ports | Reads DevToolsActivePort from | |------|---------------|-------------------------------| | `arc-mcp-proxy.sh` | proxy `9501` → Arc `9223` | `~/chrome-profiles/arc-DevToolsActivePort` (auto-built from `/json/version` on each launch) | | `chrome-beta-mcp-proxy.sh` | proxy `9402` → Chrome Beta `9222` | `~/Library/Application Support/Google Chrome Beta/DevToolsActivePort` | Both wrap the same `cdp-proxy.mjs`. ## Install ```bash mkdir -p "$HOME/scripts" "$HOME/chrome-profiles/pids" "$HOME/chrome-profiles/logs" # 1. save arc-mcp-proxy.sh / chrome-beta-mcp-proxy.sh (this bundle) into ~/scripts/ # 2. get cdp-proxy.mjs from https://tokrepo.com/en/workflows/cdp-websocket-agent-e0f83e28 # and save it as ~/scripts/cdp-proxy.mjs chmod +x "$HOME/scripts/arc-mcp-proxy.sh" "$HOME/scripts/chrome-beta-mcp-proxy.sh" npm install ws --prefix "$HOME/scripts" # cdp-proxy.mjs dependency ``` All scripts use `$HOME`-relative paths — no editing needed. ## Arc setup Arc doesn't write `DevToolsActivePort` to a standard location. Launch it with an explicit debug port and the proxy script will discover the WebSocket path on its own: ```bash open -a "Arc" --args --remote-debugging-port=9223 bash ~/scripts/arc-mcp-proxy.sh # proxy :9501 → Arc :9223 ``` `.mcp.json` (note: `.mcp.json` does not expand `~`, hence the `bash -c` form): ```json "arc": { "command": "bash", "args": ["-c", "exec \"$HOME/scripts/arc-mcp-proxy.sh\" 9501 9223"] } ``` ## Chrome Beta setup Chrome Beta writes its own `DevToolsActivePort` file under `~/Library/Application Support/Google Chrome Beta/`. Once Beta is running with remote debugging enabled (`chrome://inspect/#remote-debugging` → Allow), the proxy auto-discovers it. ```json "beta": { "command": "bash", "args": ["-c", "exec \"$HOME/scripts/chrome-beta-mcp-proxy.sh\" 9402 9222"] } ``` ## Running all three side by side ``` Claude Code window A → mcp__chrome__* → :9401 → Chrome stable :9222 Claude Code window B → mcp__beta__* → :9402 → Chrome Beta :9222 Claude Code window C → mcp__arc__* → :9501 → Arc :9223 ``` Three independent proxies, three independent browsers, three sets of MCP tool namespaces. They never collide. (The stable-Chrome proxy on `:9401` is `chrome-mcp-proxy.sh`, https://tokrepo.com/en/workflows/chrome-mcp-85bd27cc) ## Caveat — don't kill cross-session Heuristics like "kill 9401/9402 because they're not LISTEN" will tear down a sibling session's MCP. Always check `lsof -nP -p ` for live stdio before killing anything. See the **Chrome MCP 完整运维指南** (https://tokrepo.com/en/workflows/chrome-mcp-d5db19b8) for the full cleanup protocol. --- Source: https://tokrepo.com/en/workflows/multi-browser-mcp-proxies-arc-browser-chrome-beta-variants-deaee53e Author: henuwangkai