claude-in-chrome: "Browser extension is not connected" despite correct local native-messaging setup (macOS, local Chrome)

Status Closed — duplicate
Reported on v2.1.215
Maintainer reply None cached
Activity 2 comments · opened Jul 19, 2026 · closed Jul 23, 2026

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.215 exists 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

  1. Reinstalled + OAuth-authorized the extension (correct account confirmed).
  2. Set extension site access to "On all sites".
  3. Full Chrome restart (Cmd+Q).
  4. Verified manifest allowed_origins matches 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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗