claude-in-chrome: "Browser extension is not connected" despite correct local native-messaging setup (macOS, local Chrome)
Summary
Every mcp__claude-in-chrome__* call (e.g. list_connected_browsers, tabs_context_mcp) returns:
Browser extension is not connected. Please ensure the Claude browser extension is installed and running (https://claude.ai/chrome), and that you are logged into claude.ai with the same account as Claude Code.
This persists even though every local component checks out. This is a purely local setup (native Chrome on the same machine as Claude Code), not Cowork/cloud.
Environment
- macOS 26.5.2 (build 25F84)
- Google Chrome 150.0.7871.128
- Claude Code 2.1.215
- Chrome extension freshly reinstalled from the Web Store + OAuth authorized, logged into claude.ai with the same account as Claude Code
- Chrome fully quit (Cmd+Q) and relaunched after reinstall; extension side panel is active and working
Everything that verifies as correct
Native messaging host manifest — ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json:
{
"name": "com.anthropic.claude_code_browser_extension",
"description": "Claude Code Browser Extension Native Host",
"path": "/Users/<user>/.claude/chrome/chrome-native-host",
"type": "stdio",
"allowed_origins": [
"chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/"
]
}
Host wrapper — ~/.claude/chrome/chrome-native-host (exists, executable):
#!/bin/sh
# Chrome native host wrapper script
# Generated by Claude Code - do not edit manually
exec "/Users/<user>/.local/share/claude/versions/2.1.215" --chrome-native-host
- Referenced version
2.1.215exists in~/.local/share/claude/versions/. - Native host process is running:
.../versions/2.1.215 --chrome-native-host(single instance — no competing/duplicate process). - The older Claude Desktop app native host (
com.anthropic.claude_browser_extension, path/Applications/Claude.app/...) is disabled (renamed to.disabled/.disabled-by-cc), so there is no manifest hijack.
Steps taken
- Reinstalled + OAuth-authorized the extension (correct account confirmed).
- Set extension site access to "On all sites".
- Full Chrome restart (Cmd+Q).
- Verified manifest
allowed_originsmatches the expected extension ID, wrapper points to an existing version, native host process running, no duplicate process, Desktop manifest disabled.
Result: list_connected_browsers still returns "not connected".
Expected
With a correct manifest, a running single native-host process, and an installed/authorized extension logged into the matching account, list_connected_browsers should list the local Chrome.
Note
A prior session on this machine had two competing native-host processes and a Desktop-app manifest hijack; those were resolved (one process now, Desktop manifest disabled), but the bridge still does not connect — suggesting a remaining handshake issue between the installed extension and the com.anthropic.claude_code_browser_extension native host rather than a duplicate-process problem.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗