claude-in-chrome: Browser extension never initiates native messaging connection

Resolved 💬 3 comments Opened Mar 18, 2026 by yye00 Closed Mar 22, 2026

Description

The claude-in-chrome MCP tools consistently return "Browser extension is not connected" despite the extension being installed, enabled, and the native messaging host properly configured. This worked at least once previously on this same setup and has not worked since.

Environment

  • Claude Code: 2.1.78
  • Chrome: 145.0.7632.116
  • Extension version: 1.0.62 (fcoeoabgfenejglbffodgkkbkcdhcgfn)
  • OS: Fedora Linux 42 (kernel 6.18.13-100.fc42.x86_64)
  • Display: X11 (ozone-platform=x11)

What was verified

  1. Extension is installed, enabled, and pinned to toolbar in the Default Chrome profile
  2. nativeMessaging permission is present in the extension manifest
  3. Native messaging host config at ~/.config/google-chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json is correct — points to ~/.claude/chrome/chrome-native-host with the right allowed_origins
  4. The wrapper script correctly executes the Claude Code binary with --chrome-native-host
  5. Native host process starts and creates a Unix socket at /tmp/claude-mcp-browser-bridge-captain/<pid>.sock
  6. Claude side panel opens and works normally in Chrome
  7. Logged into claude.ai in the browser with the same account

Key finding

Manually calling chrome.runtime.connectNative('com.anthropic.claude_code_browser_extension') in the extension's service worker console:

  • Successfully connects to the native host (no lastError, no onDisconnect fired)
  • A new native host process spawns with a new socket
  • But no messages are exchangedonMessage listener receives nothing
  • The extension never calls connectNative on its own — the service worker console is completely empty with no activity

Steps to reproduce

  1. Install Claude browser extension in Chrome
  2. Configure native messaging host (done automatically by Claude Code)
  3. Log into claude.ai in Chrome
  4. Start a Claude Code session
  5. Call any mcp__claude-in-chrome__* tool → "Browser extension is not connected"

Attempted remediation

  • Restarted Chrome (full kill + relaunch)
  • Restarted Claude Code session
  • Killed and let Chrome respawn native host processes
  • Reloaded plugins via /reload-plugins
  • Verified socket connectivity with a direct Python socket test (connects successfully)

Expected behavior

The extension should automatically call connectNative when it detects an active Claude Code session and bridge messages between the Claude Code MCP client and Chrome.

Actual behavior

The extension's service worker is completely dormant — it never initiates a native messaging connection. Even when manually connected, no messages flow between the extension and native host.

View original on GitHub ↗

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