Claude in Chrome MCP: Browser extension not connected despite extension working
Status Closed — not planned
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 11 comments · opened Jan 26, 2026 · closed Apr 26, 2026
Description
The Claude in Chrome MCP integration fails to connect even though:
- The Claude Chrome extension is installed and working (sidebar chat functions correctly)
- The MCP shows as "connected" in Claude Code (
/mcpcommand showsclaude-in-chrome · ✓ connected) - The extension was freshly reinstalled from Chrome Web Store
Steps to Reproduce
- Install Claude Chrome extension from Chrome Web Store
- Open Chrome and verify the Claude sidebar works (it does - can chat with Claude)
- Run
/mcpin Claude Code - showsclaude-in-chrome · ✓ connected - 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
/mcpreconnection 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.
11 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
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.
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:
com.anthropic.claude_browser_extensionmanifest (patched to point to Code's binary at~/.claude/chrome/chrome-native-host)/tmp/claude-mcp-browser-bridge-{user}/{pid}.socknc -Uand Pythonsocket.connect()lsof -U | grep claude-mcpshows only the native host listening — theclaude-in-chromeMCP server never connects as a clientclaude mcp listdoes NOT showclaude-in-chromeas a server, though the tools are available and/mcpreports "Reconnected to claude-in-chrome"/chromereturns no output (no UI, no status)claudeInChromeDefaultEnabled: trueandhasCompletedClaudeInChromeOnboarding: trueAttempted fixes (none resolved):
claude --chromeflag/chromeand/mcpreconnectcom.anthropic.claude_browser_extension.jsonto point to Code's native host binarychrome://extensionsRoot cause hypothesis: The
claude-in-chromeMCP 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.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.jsonand set:Then restart:
claude --chromeThis 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
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.jsonand flipstengu_copper_bridgeback tofalsewhenever it re-caches totrue:https://gist.github.com/IX-Erich/4e5dd6d4fdf74c6c4c636d05141ffd41
Hope this helps others until there's an upstream fix.
I'm experiencing the exact same issue on macOS. Here's a detailed diagnostic:
Environment:
fcoeoabgfenejglbffodgkkbkcdhcgfn)What works:
chrome.runtime.sendNativeMessage("com.anthropic.claude_code_browser_extension", {type: "ping"})→{type: "pong", timestamp: ...}ps)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:/tmp/claude-mcp-browser-bridge-smerle/91307.socklsof -p <claude-code-pid> | grep "claude-mcp-browser"returns nothing.Tried (all failed):
/mcpreconnect/chromereconnectswitch_browsertool--chromeThe handshake between Claude Code MCP and the native host bridge socket appears broken.
Confirmed:
tengu_copper_bridge: falseworkaround worksEnvironment: macOS Darwin 24.4.0, Claude Code (Opus 4.6 1M), Chrome with Claude extension installed and active
Problem:
/mcpshowedclaude-in-chrome · ✅ connectedbut 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_bridgetofalsein~/.claude.json:Restarted Claude Code — chrome extension connected immediately via local Unix socket.
Credit to @Nachx639's comment referencing #24593 for the solution.
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.
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 claude
Closing for now — inactive for too long. Please open a new issue if this is still relevant.
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.