Chrome MCP process never connects to native host unix socket (v2.1.39)
Resolved 💬 3 comments Opened Feb 11, 2026 by hamza5645 Closed Feb 11, 2026
Bug Description
The --claude-in-chrome-mcp subprocess spawned by claude --chrome never connects to the Chrome native host's unix socket, making browser automation completely non-functional. Every call to tabs_context_mcp returns "No Chrome extension connected."
Environment
- Claude Code version: 2.1.39
- OS: macOS Darwin 25.2.0 (Apple Silicon)
- Chrome extension:
fcoeoabgfenejglbffodgkkbkcdhcgfn(v1.0.47) - Shell: Tested in both tmux and regular Terminal — same result
What's Happening
The Chrome native host process starts correctly and listens on a unix socket:
/Users/<user>/.local/share/claude/versions/2.1.39 --chrome-native-host
Socket: /tmp/claude-mcp-browser-bridge-<user>/<pid>.sock
The MCP process also starts:
/Users/<user>/.local/share/claude/versions/2.1.39 --claude-in-chrome-mcp
But the MCP process never connects to the native host socket. Verified via lsof:
- Native host fd 4 = listening unix socket (zero connected clients)
- MCP process fd 10 = unix socket pointing to a dead/orphaned peer (never the native host)
Verification
- Manual Python connection to the native host socket succeeds — the socket is healthy and accepting connections
- The native host logs show zero MCP client connections (only a manual test connection)
- Chrome is properly connected to the native host via stdio pipes
- The native messaging host config correctly points to the Claude Code CLI wrapper script
Reproduction Steps
- Install Claude in Chrome extension in Chrome
- Run
claude --chromein Terminal - Call any chrome MCP tool (e.g.,
tabs_context_mcp) - Result: "No Chrome extension connected"
Debugging Details
Process tree
claude --chrome (PID A)
└── 2.1.39 --claude-in-chrome-mcp (PID B) ← never connects to socket
Chrome
└── 2.1.39 --chrome-native-host (PID C) ← listening, no clients
Socket analysis (lsof)
# Native host - listening, zero clients
2.1.39 <C> 4u unix <inode_X> /tmp/claude-mcp-browser-bridge-<user>/<C>.sock
# MCP process fd 10 - connected to dead peer, NOT to native host
2.1.39 <B> 10u unix <inode_Y> -><dead_peer>
Native host log
[INFO] Chrome native host starting (version 0.1.0)
[INFO] Socket created successfully at: /tmp/claude-mcp-browser-bridge-<user>/<pid>.sock
[INFO] Socket server listening for connections
# No "Accepted new MCP connection" entries
Additional context
- Previously had a conflict with Claude Desktop's native messaging host config (
com.anthropic.claude_browser_extension.json) claiming the same extension ID. Removed it — did not fix the issue. - Tried: clean socket dir, kill all processes, restart extension, restart Chrome, restart Claude — nothing helps.
- The MCP process appears to only attempt socket discovery once at startup and connects to a stale/dead peer every time.
Expected Behavior
The MCP process should discover and connect to the native host's unix socket in /tmp/claude-mcp-browser-bridge-<user>/, enabling browser automation via the Chrome extension.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗