Chrome extension not connecting to Claude Code native host (macOS)

Resolved 💬 2 comments Opened Feb 15, 2026 by vetrideveloper Closed Mar 15, 2026

Description

The Claude in Chrome extension cannot connect to the Claude Code native messaging host. All browser automation tools return "Browser extension is not connected" despite the native host running correctly and the extension being installed.

Environment

  • Claude Code version: 2.1.42 (installed via npm/nvm)
  • Chrome extension version: 1.0.50
  • Extension ID: fcoeoabgfenejglbffodgkkbkcdhcgfn
  • OS: macOS Darwin 25.2.0 (Sequoia)
  • Node: v23.11.0 (via nvm)
  • Chrome: latest stable

What's working

  • Native messaging host config exists at ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json with correct allowed_origins and path
  • Native host script at ~/.claude/chrome/chrome-native-host points to correct Node binary and CLI
  • Native host process spawns on Chrome launch, creates socket at /tmp/claude-mcp-browser-bridge-<user>/<pid>.sock
  • Extension is installed and enabled in Chrome
  • Logged into claude.ai in Chrome with same account as Claude Code
  • No Claude Desktop native messaging host present (no conflict)

What's not working

Calling tabs_context_mcp (or any mcp__claude-in-chrome__* tool) always returns:

"Browser extension is not connected."

The extension and native host appear unable to complete the handshake despite both running.

Troubleshooting attempted

  1. Quit and reopen Chrome — no change
  2. Killed native host process and removed stale sockets, reopened Chrome — no change
  3. Ran claude setup-chrome (updated native host script from old binary path to Node-based path) — no change
  4. Toggled extension off/on in chrome://extensions/ — no change
  5. Fully uninstalled and reinstalled extension from https://claude.ai/chrome, then quit/reopened Chrome — no change
  6. Verified extension service worker console shows no errors
  7. Confirmed no other com.anthropic.* native messaging hosts exist (no Claude Desktop conflict)

Expected behavior

tabs_context_mcp should connect to the running native host and return tab information.

Native host config

{
  "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/"
  ]
}

Native host script

#!/bin/sh
exec "/Users/<user>/.nvm/versions/node/v23.11.0/bin/node" "/Users/<user>/.nvm/versions/node/v23.11.0/lib/node_modules/@anthropic-ai/claude-code/cli.js" --chrome-native-host

View original on GitHub ↗

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