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

  1. Install Claude in Chrome extension in Chrome
  2. Run claude --chrome in Terminal
  3. Call any chrome MCP tool (e.g., tabs_context_mcp)
  4. 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗