Claude-in-Chrome: Browser extension not connected despite correct setup
Description
The claude-in-chrome MCP tools consistently return "Browser extension is not connected" despite all infrastructure being correctly configured and functional.
Environment
- Claude Code version: 2.1.63
- macOS Darwin 25.2.0 (Apple Silicon)
- Chrome with Claude extension installed (
fcoeoabgfenejglbffodgkkbkcdhcgfn) - Claude Desktop app also installed (1.1.3963)
Root Cause Analysis
After extensive debugging, the server-side feature flag tengu_chrome_auto_enable is set to false in cachedGrowthBookFeatures. Even when manually overriding it to true in ~/.claude.json, it gets reverted to false on every Claude Code startup by the server.
Other local config values suggest chrome should be enabled:
hasCompletedClaudeInChromeOnboarding: truecachedChromeExtensionInstalled: trueclaudeInChromeDefaultEnabled: true
What was verified
- Chrome extension installed and enabled in
chrome://extensions/ - Native Messaging Host config correctly points to Claude Code's binary (
~/.claude/chrome/chrome-native-host) - Native host process starts successfully (
claude 2.1.63 --chrome-native-host) when extension is loaded - Unix socket created at
/tmp/claude-mcp-browser-bridge-mdietrich/<PID>.sock - Socket is connectable (verified with manual Python test)
- Chrome was fully restarted multiple times
- Extension was reloaded multiple times
- All other Claude Code sessions were terminated (was running 12 sessions)
- A stale
claude --chromeprocess (v2.1.50) was killed - Claude Desktop was quit (it was intercepting the native host connection via
com.anthropic.claude_browser_extensionconfig pointing to/Applications/Claude.app/Contents/Helpers/chrome-native-host)
Additional issue found
When both Claude Desktop and Claude Code are installed, the Chrome extension connects to Claude Desktop's native messaging host (com.anthropic.claude_browser_extension) instead of Claude Code's (com.anthropic.claude_code_browser_extension), because both configs allow the same extension ID. The Claude Desktop native host binary runs but creates a socket that Claude Code doesn't connect to. This required manually changing the path in com.anthropic.claude_browser_extension.json to point to Claude Code's wrapper script.
Workaround
The chrome-devtools MCP server works correctly as an alternative for browser automation.
Expected behavior
mcp__claude-in-chrome__tabs_context_mcp should successfully connect to the Chrome browser extension when the native host is running and the socket is available.
Actual behavior
Every call returns: "Browser extension is not connected. Please ensure the Claude browser extension is installed and running..."
The tengu_chrome_auto_enable feature flag appears to prevent the connection from being established, and it cannot be overridden locally.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗