Chrome MCP: Extension connects to Claude Desktop instead of Claude Code when both are installed

Resolved 💬 6 comments Opened Jan 26, 2026 by patrickzaw Closed Mar 2, 2026

Bug Description

When both Claude Desktop and Claude Code are installed, the Chrome browser extension connects to Claude Desktop's native messaging host instead of Claude Code's, causing the MCP browser tools to fail with "Browser extension is not connected" errors.

Root Cause

Both apps register native messaging hosts with the same extension ID in their allowed_origins:

  • Desktop: com.anthropic.claude_browser_extension/Applications/Claude.app/Contents/Helpers/chrome-native-host
  • Code: com.anthropic.claude_code_browser_extension/Users/<user>/.claude/chrome/chrome-native-host

The Chrome extension appears to request com.anthropic.claude_browser_extension (Desktop's name), so it always connects to the Desktop app even when using Claude Code CLI.

Reproduction Steps

  1. Have both Claude Desktop app and Claude Code CLI installed
  2. Run Claude Code and use any mcp__claude-in-chrome__* tool
  3. Error: "Browser extension is not connected"
  4. Check processes: ps aux | grep chrome-native-host
  5. Observe Desktop's native host is running, not Code's

Workaround

Update the Desktop manifest to point to Claude Code's native host:

# Backup original
cp ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json \
   ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json.bak

# Update path to Claude Code
cat > ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json << 'MANIFEST'
{
  "name": "com.anthropic.claude_browser_extension",
  "description": "Claude Browser Extension Native Host",
  "path": "/Users/<USERNAME>/.claude/chrome/chrome-native-host",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://dihbgbndebgnbjfmelmegjepbnkhlgni/",
    "chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/",
    "chrome-extension://dngcpimnedloihjnnfngkgjoidhnaolf/"
  ]
}
MANIFEST

# Kill existing Desktop native host process
pkill -f "/Applications/Claude.app/Contents/Helpers/chrome-native-host"

# Restart Chrome

Suggested Fix

The Chrome extension should:

  1. Detect which Claude product is actively requesting the connection (Desktop vs Code)
  2. Connect to the appropriate native messaging host
  3. Or use a single shared native host that routes to the active product

Environment

  • macOS Darwin 25.2.0
  • Claude Code version: 2.1.19
  • Chrome with Claude browser extension installed
  • Claude Desktop also installed

View original on GitHub ↗

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