Claude in Chrome MCP: "Browser extension is not connected" despite working native messaging

Resolved 💬 3 comments Opened Apr 15, 2026 by chrismudrovich Closed Apr 19, 2026

Description

Claude in Chrome consistently returns "Browser extension is not connected" when calling MCP tools (e.g., tabs_context_mcp), despite the native messaging host functioning correctly.

## Environment

  • Claude Code: 2.1.109
  • Chrome Extension: 1.0.68
  • Chrome: 147.0.7727.56
  • macOS: Darwin 25.4.0 (Sequoia)
  • Launch command: claude --chrome

## What works

  • Extension is installed, enabled, and shows Status: Enabled / Extension: Installed in /chrome
  • Native messaging host config exists at ~/Library/ApplicationSupport/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json
  • Native host binary spawns correctly: ~/.local/share/claude/versions/2.1.109 --chrome-native-host
  • Socket created at /tmp/claude-mcp-browser-bridge-<user>/<pid>.sock
  • chrome.runtime.sendNativeMessage("com.anthropic.claude_code_browser_extension", {type: "ping"}, ...) returns {type: "pong"} successfully from the extension service worker console
  • Socket accepts Unix domain socket connections

## What doesn't work

  • Every mcp__claude-in-chrome__* tool call returns "Browser extension is not connected"
  • Socket accepts connections but returns empty responses to MCP JSON-RPC messages
  • claude mcp list does not show claude-in-chrome as a configured server

## Troubleshooting attempted

  1. Restarted Chrome and Claude Code multiple times
  2. /chrome → Reconnect extension (multiple times)
  3. Disabled/re-enabled extension in chrome://extensions
  4. Killed stale native host process and let Chrome respawn it
  5. Closed all other Claude Code sessions to avoid socket conflicts
  6. Verified no chrome flags available (Chrome 147 removed PNA flags)

## Additional context

Had a conflicting native messaging host config from the Claude desktop app (com.anthropic.claude_browser_extension.json) that was routing to /Applications/Claude.app/Contents/Helpers/chrome-native-host instead of the CLI binary. Removed it and confirmed Chrome now spawns the correct CLI-based native host. Issue persists after cleanup.

View original on GitHub ↗

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