[BUG] Claude in Chrome: Desktop App MCP tools always 'not connected' while CLI works fine
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
- Install Chrome extension "Claude in Chrome" (v1.0.68) from Chrome Web Store
- Open Claude Desktop App
- Go to Settings → Claude in Chrome → Confirm "Allow extension" is selected
- Open Chrome with any tab
- In a Desktop App conversation, attempt any Chrome MCP tool call → Returns "not connected"
- Type
/chromein Desktop App → No response - 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.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗