claude-in-chrome MCP server never connects to native host socket (macOS)

Resolved 💬 3 comments Opened Mar 19, 2026 by niemesrw Closed Mar 23, 2026

Bug Description

The built-in claude-in-chrome MCP server shows as "connected" in /mcp, but all tool calls return "Browser extension is not connected." The MCP server never connects to the Unix socket created by the native messaging host.

Environment

  • Claude Code CLI: 2.1.79
  • Claude in Chrome extension: 1.0.62
  • Claude Desktop: Installed at /Applications/Claude.app/ (not running)
  • OS: macOS (Darwin 25.3.0)
  • Chrome: Latest

Root Cause Investigation

Native messaging host conflict (partially resolved)

Both Claude Desktop and Claude Code register native messaging hosts for the same Chrome extension ID (fcoeoabgfenejglbffodgkkbkcdhcgfn):

  • com.anthropic.claude_browser_extension → Claude Desktop (/Applications/Claude.app/Contents/Helpers/chrome-native-host)
  • com.anthropic.claude_code_browser_extension → Claude Code (/Users/ryan/.claude/chrome/chrome-native-host)

Chrome uses the Desktop host (com.anthropic.claude_browser_extension), not the Code one. This is the same issue as #20887.

Applied workaround — still doesn't work

Updated Desktop's native messaging manifest to point to Claude Code's binary:

{
  "name": "com.anthropic.claude_browser_extension",
  "path": "/Users/ryan/.claude/chrome/chrome-native-host",
  ...
}

After toggling the extension, the native host now runs from Claude Code's binary:

PID 3345: /Users/ryan/.local/share/claude/versions/2.1.79 --chrome-native-host

It creates a socket and listens:

$ ls /tmp/claude-mcp-browser-bridge-ryan/
3345.sock

$ lsof /tmp/claude-mcp-browser-bridge-ryan/3345.sock
COMMAND  PID USER  FD  TYPE  NAME
2.1.79  3345 ryan  4u  unix  /tmp/claude-mcp-browser-bridge-ryan/3345.sock

The actual bug: MCP server never connects to the socket

Claude Code CLI (PID 3645) has multiple unix sockets open but none are connected to the bridge socket. The built-in claude-in-chrome MCP server does not attempt to connect to /tmp/claude-mcp-browser-bridge-ryan/*.sock.

Both the native host and the MCP server appear to be listening rather than one connecting to the other.

Steps to Reproduce

  1. Have Claude Desktop installed (even if not running)
  2. Install Claude in Chrome extension (v1.0.62)
  3. Log into claude.ai in Chrome
  4. Run claude CLI
  5. /mcp shows claude-in-chrome · ✓ connected
  6. Any mcp__claude-in-chrome__* tool call returns "Browser extension is not connected"

Additional Context

  • Service worker console for the extension shows no errors
  • Extension is enabled and active
  • Restarting Chrome, toggling extension, and restarting Claude Code CLI all tried
  • Related closed issues: #20887, #23434, #20298

View original on GitHub ↗

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