claude-in-chrome: Browser extension not connected — MCP server never connects to native host socket (Linux)

Resolved 💬 3 comments Opened Mar 20, 2026 by GiuseppeIuculano Closed Mar 23, 2026

Bug description

mcp__claude-in-chrome__tabs_context_mcp always returns "Browser extension is not connected", even though the native messaging host is working correctly.

Environment

  • Claude Code: 2.1.80
  • OS: Ubuntu Linux 6.17.0-19-generic x86_64
  • Chrome: 146.0.7680.153
  • Extension ID: fcoeoabgfenejglbffodgkkbkcdhcgfn

Diagnostic findings

  1. Native host manifest is correctly installed at ~/.config/google-chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json, pointing to the correct binary.
  1. Native host responds to ping — from the extension's Service Worker console:

``js
chrome.runtime.sendNativeMessage('com.anthropic.claude_code_browser_extension', {type: 'ping'}, r => console.log(r))
// → {type: "pong", timestamp: 1773996381942}
``

  1. connectNative() works — creates a Unix socket in /tmp/claude-mcp-browser-bridge-<user>/:

``
srw------- 1 user user 0 ... 21257.sock
`
The socket is in
LISTEN state (confirmed via lsof`).

  1. No client connects to the socketlsof shows the native host process listening but no Claude Code process ever connects. ss -xp | grep claude-mcp returns empty.
  1. Extension ID matches the allowed_origins in the native host manifest.
  1. The extension worked in previous sessions (confirmed via session metadata in ~/.claude/usage-data/).

Steps to reproduce

  1. Install Claude Code 2.1.80 on Linux
  2. Install the Chrome extension
  3. Start claude in a terminal
  4. Call mcp__claude-in-chrome__tabs_context_mcp → always returns "not connected"

Expected behavior

Claude Code's MCP server should discover and connect to the Unix socket created by the native host, enabling browser automation.

View original on GitHub ↗

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