Claude in Chrome: extension never receives connection attempt (service worker console shows nothing) despite correct local setup

Resolved 💬 2 comments Opened Jul 2, 2026 by moonward Closed Jul 2, 2026

Environment

  • OS: Linux (CachyOS)
  • Chrome: 150.0.7871.46
  • Claude in Chrome extension: 1.0.79 (latest, per Chrome Web Store)
  • Claude Code: 2.1.197

Symptom

Every claude-in-chrome MCP tool call (e.g. tabs_context_mcp) returns:

Browser extension is not connected. Please ensure the Claude browser extension is installed and running...

What I've verified/tried (no effect on any of these)

  • Native messaging host script (~/.claude/chrome/chrome-native-host) exists, is executable, and correctly execs /opt/claude-code/bin/claude --chrome-native-host (which runs fine standalone: claude --version → 2.1.197)
  • Native messaging manifests (com.anthropic.claude_browser_extension.json, com.anthropic.claude_code_browser_extension.json) are correctly registered under ~/.config/google-chrome/NativeMessagingHosts/, with correct path and allowed_origins matching the extension ID
  • Full Chrome restart (verified via fresh PID/start time)
  • Extension fully removed and reinstalled (now at latest version 1.0.79, matching Chrome Web Store)
  • Extension is enabled, logged into the correct claude.ai account
  • Extension works independently — its own sidebar assistant successfully navigated to Google Finance and read page content

Key diagnostic finding

While watching the extension's service worker DevTools Console in real time, I triggered a connection attempt from Claude Code (tabs_context_mcp). Nothing was logged in the service worker console at all — no errors, no activity. This suggests the connection attempt from Claude Code's native-host process never reaches the extension's service worker.

A Claude Code-side log (~/.cache/claude-cli-nodejs/.../mcp-logs-claude-in-chrome/*.jsonl) from earlier in the same session shows the in-process Chrome MCP server successfully starting a stdio transport and completing a set_permission_mode tool call — so the local subprocess handshake on the Claude Code side appears to work, but this doesn't seem to reach the actual browser extension.

Expected behavior

claude-in-chrome MCP tools should successfully connect to the installed, enabled, up-to-date extension.

View original on GitHub ↗

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