Claude in Chrome MCP: Browser extension not connected despite extension working

Status Closed — not planned
Maintainer reply None cached
Activity 11 comments · opened Jan 26, 2026 · closed Apr 26, 2026

Description

The Claude in Chrome MCP integration fails to connect even though:

  1. The Claude Chrome extension is installed and working (sidebar chat functions correctly)
  2. The MCP shows as "connected" in Claude Code (/mcp command shows claude-in-chrome · ✓ connected)
  3. The extension was freshly reinstalled from Chrome Web Store

Steps to Reproduce

  1. Install Claude Chrome extension from Chrome Web Store
  2. Open Chrome and verify the Claude sidebar works (it does - can chat with Claude)
  3. Run /mcp in Claude Code - shows claude-in-chrome · ✓ connected
  4. Attempt to use any claude-in-chrome MCP tool (e.g., tabs_context_mcp)

Expected Behavior

The MCP should connect to the browser and return tab information.

Actual Behavior

Every call to mcp__claude-in-chrome__tabs_context_mcp returns:

Browser extension is not connected. Please ensure the Claude browser extension is installed and running (https://claude.ai/chrome). If this is your first time connecting to Chrome, you may need to restart Chrome for the installation to take effect.

Environment

  • Platform: macOS (Darwin 25.2.0)
  • Chrome extension: Freshly reinstalled
  • Claude Code: Latest version
  • The Claude sidebar chat in Chrome works perfectly fine

Additional Context

  • Previously saw CSP (Content Security Policy) errors in the extension before reinstalling
  • After reinstall, CSP errors appear to be resolved
  • Machine was restarted
  • Chrome was restarted
  • /mcp reconnection was performed multiple times

Screenshots

The Claude sidebar works and can see/interact with pages, but the MCP connection from Claude Code does not work.

View original on GitHub ↗

11 Comments

github-actions[bot] · 7 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/20786
  2. https://github.com/anthropics/claude-code/issues/20990
  3. https://github.com/anthropics/claude-code/issues/20811

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

stolot0mt0m · 7 months ago

This might be a Native Messaging Host issue. If you're not on Chrome, try: https://github.com/stolot0mt0m/claude-chromium-native-messaging

It configures the manifest files that Chrome normally sets up automatically.

jsperson · 6 months ago

Additional diagnostic data (macOS)

Environment: Claude Code 2.1.39, macOS Darwin 25.2.0, Chrome 145.0.7632.46, Extension 1.0.49, Claude Desktop also installed

Findings:

  1. Native host process spawns correctly via com.anthropic.claude_browser_extension manifest (patched to point to Code's binary at ~/.claude/chrome/chrome-native-host)
  2. Native host creates Unix socket at /tmp/claude-mcp-browser-bridge-{user}/{pid}.sock
  3. Socket is functional — accepts connections via nc -U and Python socket.connect()
  4. lsof -U | grep claude-mcp shows only the native host listening — the claude-in-chrome MCP server never connects as a client
  5. claude mcp list does NOT show claude-in-chrome as a server, though the tools are available and /mcp reports "Reconnected to claude-in-chrome"
  6. /chrome returns no output (no UI, no status)
  7. Config shows claudeInChromeDefaultEnabled: true and hasCompletedClaudeInChromeOnboarding: true

Attempted fixes (none resolved):

  • claude --chrome flag
  • /chrome and /mcp reconnect
  • Patching com.anthropic.claude_browser_extension.json to point to Code's native host binary
  • Closing Claude Desktop to eliminate host conflict
  • Restarting Chrome (multiple times)
  • Toggling extension off/on in chrome://extensions
  • Full Chrome + Claude Code restarts in various orders
  • Killing native host (Chrome respawns it on restart)

Root cause hypothesis: The claude-in-chrome MCP server is not scanning /tmp/claude-mcp-browser-bridge-{user}/ for sockets created by the native host process. The bridge socket exists and works but has zero clients.

Nachx639 · 6 months ago

Fix: disable cloud bridge, use local socket

The root cause of the "Browser extension is not connected" / "Invalid token or user mismatch" error is a GrowthBook feature flag that forces the MCP server to use a cloud WebSocket bridge (wss://bridge.claudeusercontent.com) instead of the local Unix socket.

Quick fix — edit ~/.claude.json and set:

{
  "cachedGrowthBookFeatures": {
    "tengu_copper_bridge": false
  }
}

Then restart: claude --chrome

This bypasses the cloud bridge OAuth entirely and connects directly via the local socket. Full technical explanation here: https://github.com/anthropics/claude-code/issues/24593#issuecomment-3902208001

Note: The flag may revert to true periodically as it re-caches from Anthropic's servers. Just set it back to false if the error returns.
IX-Erich · 6 months ago

We've been hitting this repeatedly after every Claude Code update. Wrote up the root cause analysis and an automated fix (macOS launchd watchdog + Linux inotifywait equivalent) that monitors ~/.claude.json and flips tengu_copper_bridge back to false whenever it re-caches to true:

https://gist.github.com/IX-Erich/4e5dd6d4fdf74c6c4c636d05141ffd41

Hope this helps others until there's an upstream fix.

pilere · 5 months ago

I'm experiencing the exact same issue on macOS. Here's a detailed diagnostic:

Environment:

  • macOS Darwin 25.3.0 (Apple Silicon)
  • Claude Code: 2.1.68
  • Chrome: 145.0.7632.119
  • Extension: Claude v1.0.56 (fcoeoabgfenejglbffodgkkbkcdhcgfn)

What works:

  • Extension service worker is running (no errors in DevTools console)
  • Native messaging works perfectly: chrome.runtime.sendNativeMessage("com.anthropic.claude_code_browser_extension", {type: "ping"}){type: "pong", timestamp: ...}
  • Native host process is running (PID confirmed via ps)
  • Claude binary is properly code-signed (TeamIdentifier: Q6L2SF6YDW)
  • No quarantine flags, no macOS firewall blocking
  • macOS firewall allows Chrome connections
  • Logged into claude.ai in Chrome

Root cause identified:
The native host creates a Unix socket at /tmp/claude-mcp-browser-bridge-<user>/<pid>.sock, but the Claude Code CLI process (started with --chrome) does NOT connect to this socket.

Verified via lsof:

  • Native host (PID 91307): listening on /tmp/claude-mcp-browser-bridge-smerle/91307.sock
  • Claude Code (PID 92836): connected to 2 different Unix sockets, none of which is the bridge socket

lsof -p <claude-code-pid> | grep "claude-mcp-browser" returns nothing.

Tried (all failed):

  • Reinstalling extension
  • Restarting Chrome
  • /mcp reconnect
  • /chrome reconnect
  • switch_browser tool
  • Killing and restarting Claude Code with --chrome
  • Uninstalling Claude Desktop app to avoid conflicts

The handshake between Claude Code MCP and the native host bridge socket appears broken.

kalaomer · 5 months ago

Confirmed: tengu_copper_bridge: false workaround works

Environment: macOS Darwin 24.4.0, Claude Code (Opus 4.6 1M), Chrome with Claude extension installed and active

Problem: /mcp showed claude-in-chrome · ✅ connected but all tool calls (tabs_context_mcp) returned "Browser extension is not connected" error. Tried all standard fixes (Chrome restart, extension toggle, Claude Code restart, account verification) — none worked.

Fix: Set tengu_copper_bridge to false in ~/.claude.json:

"cachedGrowthBookFeatures": {
    "tengu_copper_bridge": false
}

Restarted Claude Code — chrome extension connected immediately via local Unix socket.

Credit to @Nachx639's comment referencing #24593 for the solution.

IX-Erich · 5 months ago

Seconding @kalaomer's gratitude to @Nachx639 - I certainly would never have known where to start with this - and their efforts have already saved me tons of frustration! Thank you.

kfirfer · 5 months ago
We've been hitting this repeatedly after every Claude Code update. Wrote up the root cause analysis and an automated fix (macOS launchd watchdog + Linux inotifywait equivalent) that monitors ~/.claude.json and flips tengu_copper_bridge back to false whenever it re-caches to true: https://gist.github.com/IX-Erich/4e5dd6d4fdf74c6c4c636d05141ffd41 Hope this helps others until there's an upstream fix.

CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 claude

github-actions[bot] · 4 months ago

Closing for now — inactive for too long. Please open a new issue if this is still relevant.

github-actions[bot] · 3 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.