claude-code - 💡(How to fix) Fix Claude in Chrome MCP: "Browser extension is not connected" despite working native messaging [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#48804Fetched 2026-04-16 06:50:31
View on GitHub
Comments
1
Participants
2
Timeline
6
Reactions
0
Timeline (top)
labeled ×5commented ×1

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.

Root Cause

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.

RAW_BUFFERClick to expand / collapse

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.

extent analysis

TL;DR

The issue is likely due to a misconfiguration or mismatch between the Claude Code and Chrome extension, causing the "Browser extension is not connected" error when calling MCP tools.

Guidance

  • Verify that the native messaging host config com.anthropic.claude_code_browser_extension.json is correctly pointing to the CLI binary ~/.local/share/claude/versions/2.1.109 --chrome-native-host.
  • Check the socket creation and connection process to ensure that the Unix domain socket connections are being established correctly and that the socket is accepting connections from the Chrome extension.
  • Investigate the empty responses to MCP JSON-RPC messages and ensure that the native host is correctly handling and responding to these messages.
  • Review the claude mcp list output to confirm that claude-in-chrome is not being listed as a configured server, and check the configuration files to ensure that it is correctly set up.

Example

No code snippet is provided as the issue seems to be related to configuration and setup rather than code.

Notes

The issue may be related to the removal of the conflicting native messaging host config from the Claude desktop app, and further investigation is needed to ensure that the correct config is being used. Additionally, the fact that chrome.runtime.sendNativeMessage returns a successful response suggests that the native messaging host is functioning correctly, but the issue lies in the MCP tool calls.

Recommendation

Apply workaround: Verify the native messaging host config and socket connection process to ensure correct setup and communication between Claude Code and the Chrome extension. This is recommended as the issue seems to be related to configuration and setup rather than a version-specific bug.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Claude in Chrome MCP: "Browser extension is not connected" despite working native messaging [1 comments, 2 participants]