claude-code - 💡(How to fix) Fix Chrome MCP "extension not connected" — installed extension never invokes Claude Code native host (com.anthropic.claude_code_browser_extension orphaned)

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…

Chrome MCP tools (mcp__claude-in-chrome__*) consistently return "Browser extension is not connected" despite the entire native-messaging chain on the CLI side being correctly installed and version-matched.

Root-cause diagnosis: the installed "Claude in Chrome (Beta)" extension (ID fcoeoabgfenejglbffodgkkbkcdhcgfn) only opens a native-messaging port to the Claude desktop app's host (com.anthropic.claude_browser_extension). It never calls chrome.runtime.connectNative('com.anthropic.claude_code_browser_extension'), so the Claude Code CLI's native-host wrapper is never spawned and the CLI sees zero connected browsers.

Environment

  • macOS Darwin 25.4.0 (Apple Silicon)
  • Chrome (latest stable)
  • Claude Code CLI 2.1.143 (/Users/<me>/.local/bin/claude)
  • Extension: Claude in Chrome (Beta) v1.0.70, ID fcoeoabgfenejglbffodgkkbkcdhcgfn, enabled, "On all sites", permission "Communicate with cooperating native applications" granted

Reproduction

  1. Install Claude Code CLI 2.1.143
  2. Install "Claude in Chrome (Beta)" v1.0.70 from claude.ai/chrome
  3. Sign in to claude.ai in the extension (works — sidepanel shows Sonnet 4.6 and responds)
  4. In Claude Code, attempt any Chrome MCP tool: mcp__claude-in-chrome__tabs_context_mcp({ createIfEmpty: true }) mcp__claude-in-chrome__list_connected_browsers()
  5. Both return: Browser extension is not connected. Please ensure the Claude browser extension is installed and running…

Diagnostic evidence

Native-messaging-host manifest is present and correct: $ cat "~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json" { "name": "com.anthropic.claude_code_browser_extension", "description": "Claude Code Browser Extension Native Host", "path": "/Users//.claude/chrome/chrome-native-host", "type": "stdio", "allowed_origins": [ "chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/" ] }

  • allowed_origins matches the installed extension's ID exactly ✓

Wrapper script exists and exec's the correct version: $ cat ~/.claude/chrome/chrome-native-host #!/bin/sh exec "/Users//.local/share/claude/versions/2.1.143" --chrome-native-host

  • Binary 2.1.143 exists, is executable, matches running claude --version

The CLI's native-host wrapper is never invoked by Chrome: $ ps aux | grep chrome-native-host 11414 ... /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/ 11357 ... /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/ Only the Claude desktop app's native host is running (two instances). Zero instances of ~/.claude/chrome/chrome-native-host (the CLI's wrapper).

Expected behavior

The same Chrome extension should be able to connect to the Claude Code CLI's native host, allowing mcp__claude-in-chrome__* tools to drive the browser from within claude CLI sessions.

Actual behavior

Extension only opens a native-messaging port to the Claude desktop app's host. The CLI's properly-installed-and-allowed native host (com.anthropic.claude_code_browser_extension) is never targeted — appears orphaned on the released extension.

Hypothesis (best guess)

Either:

  1. The released Chrome extension hasn't been updated to also call connectNative('com.anthropic.claude_code_browser_extension'), or
  2. There's a flag/setting needed to switch the extension from "desktop app mode" to "CLI mode" that I can't find in the extension UI

Root Cause

Chrome MCP tools (mcp__claude-in-chrome__*) consistently return "Browser extension is not connected" despite the entire native-messaging chain on the CLI side being correctly installed and version-matched.

Root-cause diagnosis: the installed "Claude in Chrome (Beta)" extension (ID fcoeoabgfenejglbffodgkkbkcdhcgfn) only opens a native-messaging port to the Claude desktop app's host (com.anthropic.claude_browser_extension). It never calls chrome.runtime.connectNative('com.anthropic.claude_code_browser_extension'), so the Claude Code CLI's native-host wrapper is never spawned and the CLI sees zero connected browsers.

Environment

  • macOS Darwin 25.4.0 (Apple Silicon)
  • Chrome (latest stable)
  • Claude Code CLI 2.1.143 (/Users/<me>/.local/bin/claude)
  • Extension: Claude in Chrome (Beta) v1.0.70, ID fcoeoabgfenejglbffodgkkbkcdhcgfn, enabled, "On all sites", permission "Communicate with cooperating native applications" granted

Reproduction

  1. Install Claude Code CLI 2.1.143
  2. Install "Claude in Chrome (Beta)" v1.0.70 from claude.ai/chrome
  3. Sign in to claude.ai in the extension (works — sidepanel shows Sonnet 4.6 and responds)
  4. In Claude Code, attempt any Chrome MCP tool: mcp__claude-in-chrome__tabs_context_mcp({ createIfEmpty: true }) mcp__claude-in-chrome__list_connected_browsers()
  5. Both return: Browser extension is not connected. Please ensure the Claude browser extension is installed and running…

Diagnostic evidence

Native-messaging-host manifest is present and correct: $ cat "~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json" { "name": "com.anthropic.claude_code_browser_extension", "description": "Claude Code Browser Extension Native Host", "path": "/Users//.claude/chrome/chrome-native-host", "type": "stdio", "allowed_origins": [ "chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/" ] }

  • allowed_origins matches the installed extension's ID exactly ✓

Wrapper script exists and exec's the correct version: $ cat ~/.claude/chrome/chrome-native-host #!/bin/sh exec "/Users//.local/share/claude/versions/2.1.143" --chrome-native-host

  • Binary 2.1.143 exists, is executable, matches running claude --version

The CLI's native-host wrapper is never invoked by Chrome: $ ps aux | grep chrome-native-host 11414 ... /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/ 11357 ... /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/ Only the Claude desktop app's native host is running (two instances). Zero instances of ~/.claude/chrome/chrome-native-host (the CLI's wrapper).

Expected behavior

The same Chrome extension should be able to connect to the Claude Code CLI's native host, allowing mcp__claude-in-chrome__* tools to drive the browser from within claude CLI sessions.

Actual behavior

Extension only opens a native-messaging port to the Claude desktop app's host. The CLI's properly-installed-and-allowed native host (com.anthropic.claude_code_browser_extension) is never targeted — appears orphaned on the released extension.

Hypothesis (best guess)

Either:

  1. The released Chrome extension hasn't been updated to also call connectNative('com.anthropic.claude_code_browser_extension'), or
  2. There's a flag/setting needed to switch the extension from "desktop app mode" to "CLI mode" that I can't find in the extension UI
RAW_BUFFERClick to expand / collapse

Summary

Chrome MCP tools (mcp__claude-in-chrome__*) consistently return "Browser extension is not connected" despite the entire native-messaging chain on the CLI side being correctly installed and version-matched.

Root-cause diagnosis: the installed "Claude in Chrome (Beta)" extension (ID fcoeoabgfenejglbffodgkkbkcdhcgfn) only opens a native-messaging port to the Claude desktop app's host (com.anthropic.claude_browser_extension). It never calls chrome.runtime.connectNative('com.anthropic.claude_code_browser_extension'), so the Claude Code CLI's native-host wrapper is never spawned and the CLI sees zero connected browsers.

Environment

  • macOS Darwin 25.4.0 (Apple Silicon)
  • Chrome (latest stable)
  • Claude Code CLI 2.1.143 (/Users/<me>/.local/bin/claude)
  • Extension: Claude in Chrome (Beta) v1.0.70, ID fcoeoabgfenejglbffodgkkbkcdhcgfn, enabled, "On all sites", permission "Communicate with cooperating native applications" granted

Reproduction

  1. Install Claude Code CLI 2.1.143
  2. Install "Claude in Chrome (Beta)" v1.0.70 from claude.ai/chrome
  3. Sign in to claude.ai in the extension (works — sidepanel shows Sonnet 4.6 and responds)
  4. In Claude Code, attempt any Chrome MCP tool: mcp__claude-in-chrome__tabs_context_mcp({ createIfEmpty: true }) mcp__claude-in-chrome__list_connected_browsers()
  5. Both return: Browser extension is not connected. Please ensure the Claude browser extension is installed and running…

Diagnostic evidence

Native-messaging-host manifest is present and correct: $ cat "~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json" { "name": "com.anthropic.claude_code_browser_extension", "description": "Claude Code Browser Extension Native Host", "path": "/Users//.claude/chrome/chrome-native-host", "type": "stdio", "allowed_origins": [ "chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/" ] }

  • allowed_origins matches the installed extension's ID exactly ✓

Wrapper script exists and exec's the correct version: $ cat ~/.claude/chrome/chrome-native-host #!/bin/sh exec "/Users//.local/share/claude/versions/2.1.143" --chrome-native-host

  • Binary 2.1.143 exists, is executable, matches running claude --version

The CLI's native-host wrapper is never invoked by Chrome: $ ps aux | grep chrome-native-host 11414 ... /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/ 11357 ... /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/ Only the Claude desktop app's native host is running (two instances). Zero instances of ~/.claude/chrome/chrome-native-host (the CLI's wrapper).

Expected behavior

The same Chrome extension should be able to connect to the Claude Code CLI's native host, allowing mcp__claude-in-chrome__* tools to drive the browser from within claude CLI sessions.

Actual behavior

Extension only opens a native-messaging port to the Claude desktop app's host. The CLI's properly-installed-and-allowed native host (com.anthropic.claude_code_browser_extension) is never targeted — appears orphaned on the released extension.

Hypothesis (best guess)

Either:

  1. The released Chrome extension hasn't been updated to also call connectNative('com.anthropic.claude_code_browser_extension'), or
  2. There's a flag/setting needed to switch the extension from "desktop app mode" to "CLI mode" that I can't find in the extension UI

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