Claude in Chrome MCP bridge not connecting when Claude.app is also installed

Resolved 💬 3 comments Opened Jan 24, 2026 by SomtechSolutionMAxime Closed Jan 29, 2026

Bug Description

When both Claude.app (desktop) and Claude Code CLI are installed, the Chrome extension's MCP bridge never connects to Claude Code. The extension exclusively connects to com.anthropic.claude_browser_extension (Claude.app's native host) and never spawns com.anthropic.claude_code_browser_extension (Claude Code's native host), leaving the Unix socket unresolved.

Environment

  • OS: macOS 15 (Darwin 25.1.0), Apple Silicon
  • Claude Code version: 2.1.19
  • Claude.app version: 1.1.673
  • Chrome extension ID: fcoeoabgfenejglbffodgkkbkcdhcgfn

Steps to Reproduce

  1. Have both Claude.app and Claude Code CLI installed
  2. Run claude --chrome in terminal
  3. Open Chrome — the Claude side panel opens
  4. Call tabs_context_mcp → returns "Browser extension is not connected"

Diagnosis

Two native messaging host manifests exist in ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/:

  1. com.anthropic.claude_browser_extension.json/Applications/Claude.app/Contents/Helpers/chrome-native-host
  2. com.anthropic.claude_code_browser_extension.json~/.claude/chrome/chrome-native-host (wrapper → v2.1.19 --chrome-native-host)

Both allow the same extension ID (fcoeoabgfenejglbffodgkkbkcdhcgfn).

Observed behavior:

  • Chrome only spawns com.anthropic.claude_browser_extension (Claude.app host, PID visible in ps)
  • com.anthropic.claude_code_browser_extension is NEVER spawned
  • The MCP bridge socket (/var/folders/.../claude-mcp-browser-bridge-<user>) is never created
  • Debug logs show repeated ENOENT errors trying to connect to the missing socket

Verified:

  • The Claude Code native host wrapper works when run manually — it creates the socket and listens
  • Killing the Claude.app native host does NOT cause Chrome to spawn the Claude Code one
  • Disabling com.anthropic.claude_browser_extension.json does NOT trigger Chrome to use the Code one either
  • The extension appears to only call connectNative("com.anthropic.claude_browser_extension")

Expected Behavior

The Chrome extension should connect to com.anthropic.claude_code_browser_extension when claude --chrome is running, creating the Unix socket bridge that allows Claude Code to control the browser.

Relevant Debug Log

[Claude in Chrome] Attempting to connect to: /var/folders/.../claude-mcp-browser-bridge-maximeleboeuf
[Claude in Chrome] Socket not found, will be created by server
[Claude in Chrome] Socket error: Error: connect ENOENT /var/folders/.../claude-mcp-browser-bridge-maximeleboeuf
[Claude in Chrome] Initial socket connection failed: Connection attempt timed out after 5000ms

View original on GitHub ↗

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