Claude in Chrome MCP: extension installed + /chrome enabled, but tabs_context_mcp persistently returns 'Browser extension is not connected' on macOS
Summary
The claude-in-chrome MCP tools (e.g. mcp__claude-in-chrome__tabs_context_mcp) consistently return Browser extension is not connected despite the Chrome extension being installed, signed in, and the native messaging host registered. /chrome in-session does not flip the connection. A coexisting Claude desktop app on the same machine appears to interfere — but quitting it (and killing its leftover native-host helper) does not free the extension to bind to Claude Code.
Environment
- macOS 26.5 (build 25F5068a)
- Google Chrome 147.0.7727.138
- Claude Code 2.1.117
- Claude desktop app 1.5354.0 (also installed on the same machine)
- Chrome extension
Claude in Chrome, IDfcoeoabgfenejglbffodgkkbkcdhcgfn
Native messaging host registration (both present)
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json → /Applications/Claude.app/Contents/Helpers/chrome-native-host (consumer Claude desktop)
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json → ~/.claude/chrome/chrome-native-host (Claude Code CLI; wrapper script execs claude.exe --chrome-native-host)
Both list chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/ in allowed_origins.
Reproduction steps
- Install the
Claude in Chromeextension, sign in with the same Anthropic account as Claude Code. - Open a Claude Code session in a terminal.
- Run
/chromein the session to enable Chrome MCP tools. - Call
mcp__claude-in-chrome__tabs_context_mcp(or any otherclaude-in-chrometool).
Expected: tab context is returned, or a clear pairing UI appears.
Actual: tool returns Browser extension is not connected. Please ensure the Claude browser extension is installed and running…
What we tried (none flipped the connection)
- Restarted Chrome (full
Cmd+Q, not just close window) — multiple times. - Verified extension shows in
chrome://extensions/and is enabled. - Verified the user is signed in to the extension (extension options page renders with the correct account).
- Ran
/chromein-session. - Quit the Claude desktop app entirely.
- Killed the leftover
/Applications/Claude.app/Contents/Helpers/chrome-native-hosthelper process that survived the desktop-app quit. - Reloaded the extension from
chrome://extensions/. - Polled
tabs_context_mcprepeatedly between each step — error is identical every time.
After all the above, no chrome-native-host process is running for either host (ps aux | grep chrome-native-host returns empty), suggesting the extension is not initiating any native-messaging connection at all.
Suspected cause
When both Claude desktop and Claude Code are installed, the extension may default to (or get stuck on) the com.anthropic.claude_browser_extension host name and never attempt com.anthropic.claude_code_browser_extension. There does not appear to be a user-facing toggle in the extension UI (Permissions / Shortcuts / Options tabs) for choosing which Anthropic host to pair with.
Asks
- Is there a documented way to force the extension to pair with Claude Code specifically when both products are installed?
- If not, please add a host selector to the extension settings, or have
/chrome(orclaude --chrome) actively initiate the handshake instead of relying on the extension to discover the host. - Better in-product diagnostics for the "not connected" state (extension service-worker logs, last-attempted host name, etc.) would help users self-diagnose.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗