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: true
cachedChromeExtensionInstalled: true
claudeInChromeDefaultEnabled: 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 --chrome process (v2.1.50) was killed
- Claude Desktop was quit (it was intercepting the native host connection via
com.anthropic.claude_browser_extension config 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.
Description
The
claude-in-chromeMCP tools consistently return "Browser extension is not connected" despite all infrastructure being correctly configured and functional.Environment
fcoeoabgfenejglbffodgkkbkcdhcgfn)Root Cause Analysis
After extensive debugging, the server-side feature flag
tengu_chrome_auto_enableis set tofalseincachedGrowthBookFeatures. Even when manually overriding it totruein~/.claude.json, it gets reverted tofalseon every Claude Code startup by the server.Other local config values suggest chrome should be enabled:
hasCompletedClaudeInChromeOnboarding: truecachedChromeExtensionInstalled: trueclaudeInChromeDefaultEnabled: trueWhat was verified
chrome://extensions/~/.claude/chrome/chrome-native-host)claude 2.1.63 --chrome-native-host) when extension is loaded/tmp/claude-mcp-browser-bridge-mdietrich/<PID>.sockclaude --chromeprocess (v2.1.50) was killedcom.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 thepathincom.anthropic.claude_browser_extension.jsonto point to Claude Code's wrapper script.Workaround
The
chrome-devtoolsMCP server works correctly as an alternative for browser automation.Expected behavior
mcp__claude-in-chrome__tabs_context_mcpshould 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_enablefeature flag appears to prevent the connection from being established, and it cannot be overridden locally.