[BUG] Claude in Chrome: Desktop App MCP tools always 'not connected' while CLI works fine

Resolved 💬 3 comments Opened Apr 15, 2026 by captainyufei Closed May 24, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude in Chrome (Beta) works correctly with the CLI (claude --chrome) but the Desktop App's own Chrome integration fails to connect. All MCP tool calls (mcp__Claude_in_Chrome__tabs_context_mcp, switch_browser, etc.) return "Claude in Chrome is not connected." The /chrome slash command also produces no response in the Desktop App.

This is the inverse of #33483 — CLI works, Desktop doesn't.

What Should Happen?

The Desktop App should connect to the Chrome extension via its native messaging host (com.anthropic.claude_browser_extension) and expose Chrome MCP tools in conversations.

Error Messages/Logs

Desktop App MCP tools always return:

⚠️ Claude in Chrome is not connected
The Chrome extension isn't reachable right now.

Chrome extension sidepanel console errors:

Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
  at sidepanel-7GbZYdVD.is:6
  at mcaPermissions-D76bhlyL.is:1

Steps to Reproduce

  1. Install Chrome extension "Claude in Chrome" (v1.0.68) from Chrome Web Store
  2. Open Claude Desktop App
  3. Go to Settings → Claude in Chrome → Confirm "Allow extension" is selected
  4. Open Chrome with any tab
  5. In a Desktop App conversation, attempt any Chrome MCP tool call → Returns "not connected"
  6. Type /chrome in Desktop App → No response
  7. In terminal, run claude --chrome, type /chrome → Works correctly (Status: Enabled, Extension: Installed)

Debugging Performed

| Check | Result |
|-------|--------|
| Chrome extension installed & enabled | ✅ |
| Native messaging manifests exist | ✅ Both claude_browser_extension (Desktop) and claude_code_browser_extension (CLI) |
| Desktop native host binary exists | ✅ /Applications/Claude.app/Contents/Helpers/chrome-native-host (2.1MB Mach-O) |
| CLI native host exists | ✅ ~/.claude/chrome/chrome-native-host (shell script → CLI 2.1.109) |
| Manual connectNative() test | ✅ Port object returned, no immediate disconnect |
| Desktop App Settings → Chrome in Chrome | ✅ Shows enabled, "Allow extension" |
| Desktop App /chrome command | ❌ No response |
| Desktop App MCP tools | ❌ Always "not connected" |
| CLI /chrome | ✅ Works perfectly |

Native host zombie processes accumulate:

PID 1450  — Started 2 days ago, still running
PID 34512 — Started 2 days ago, still running
PID 50991 — Started today

The Desktop App's native host processes start when the extension attempts to connect, but they never properly communicate with the Desktop App and never terminate. Killing them does not resolve the issue.

Network analysis:
Desktop App has no listening ports — all connections go outbound to Anthropic API. No local IPC channel (Unix socket, TCP, etc.) is visible between the Desktop App and its native host process.

Root Cause Hypothesis

The Desktop App registers the native messaging host manifest (com.anthropic.claude_browser_extension.json/Applications/Claude.app/Contents/Helpers/chrome-native-host), and Chrome can launch the native host. However, the Desktop App's internal MCP server never establishes a connection to the bridge socket created by the native host. The native host starts, creates a socket, but no consumer connects — resulting in zombie processes and permanent "not connected" state.

Related: #33483 (same area, opposite direction — CLI failing when Desktop is installed)

Claude Model

Sonnet

Is this a regression?

Unknown — Chrome integration has never worked for me in the Desktop App.

Claude Code Version

Desktop App: v1.2581.0
CLI: v2.1.109

Platform

Anthropic API (Max plan)

Operating System

macOS 26.2 (Build 25C56), Apple Silicon

Terminal/Shell

N/A (Desktop App issue)

Additional Information

Environment:

  • Chrome: 147.0.7727.56
  • Chrome Extension: v1.0.68 (ID: fcoeoabgfenejglbffodgkkbkcdhcgfn)

Workaround:
Use claude --chrome in terminal for Chrome integration tasks.

View original on GitHub ↗

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