claude-code - 💡(How to fix) Fix Claude in Chrome (VS Code extension, macOS): @browser prompt injects + tab created, but mcp__claude-in-chrome__* tools never register (no native-messaging manifest / native host / bridge socket)

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…

In the VS Code extension on macOS, the Claude in Chrome bridge only partially initialises: the @browser instruction block is injected into the session and a Chrome tab is created, but none of the mcp__claude-in-chrome__* tools are ever registered into the session. They are not callable and not even discoverable via tool search - so the model is told (by the injected prompt) to "call tabs_context_mcp first", yet that tool does not exist on its end.

The injected prompt makes the model believe browser automation is available, while the tools are absent. Any browser action fails immediately.

Error Message

When the VS Code extension injects the @browser instruction block, the mcp__claude-in-chrome__* tools should be registered into the same session (and tabs_context_mcp should be callable). If the native-messaging bridge cannot be established - e.g. because no native-messaging manifest / native host exists for the VS Code-extension-only install - the extension should either set up that bridge automatically, or surface a clear error and not inject browser instructions that reference tools the model cannot call.

Root Cause

When the VS Code extension injects the @browser instruction block, the mcp__claude-in-chrome__* tools should be registered into the same session (and tabs_context_mcp should be callable). If the native-messaging bridge cannot be established - e.g. because no native-messaging manifest / native host exists for the VS Code-extension-only install - the extension should either set up that bridge automatically, or surface a clear error and not inject browser instructions that reference tools the model cannot call.

Code Example

# extension installed:
ls ~/Library/Application\ Support/Google/Chrome/Default/Extensions/fcoeoabgfenejglbffodgkkbkcdhcgfn   # -> 1.0.74_0

# but none of the bridge plumbing exists:
ls ~/.claude/chrome/                                                                  # -> not found
ls ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/ | grep -i anthropic   # -> nothing
pgrep -fl chrome-native-host                                                          # -> nothing
ls /tmp/claude-mcp-browser-bridge-*                                                   # -> no matches
RAW_BUFFERClick to expand / collapse

Summary

In the VS Code extension on macOS, the Claude in Chrome bridge only partially initialises: the @browser instruction block is injected into the session and a Chrome tab is created, but none of the mcp__claude-in-chrome__* tools are ever registered into the session. They are not callable and not even discoverable via tool search - so the model is told (by the injected prompt) to "call tabs_context_mcp first", yet that tool does not exist on its end.

The injected prompt makes the model believe browser automation is available, while the tools are absent. Any browser action fails immediately.

Environment

  • OS: macOS (Darwin 25.5.0), arm64
  • Claude Code: VS Code extension anthropic.claude-code-2.1.156-darwin-arm64 (also have 2.1.154 installed)
  • Run mode: VS Code extension chat panel only - no claude CLI is installed on PATH (no ~/.local/bin/claude, no ~/.local/share/claude/versions/)
  • Claude in Chrome extension: fcoeoabgfenejglbffodgkkbkcdhcgfn v1.0.74
  • Chrome: latest stable, running
  • Reproduces across two different Claude accounts (enterprise + personal) on the same machine - i.e. it is machine-level, not account-level.

What happens

  1. Open the Claude Code chat panel in VS Code.
  2. Use @browser / start a browser task.
  3. The session receives the full "Claude in Chrome browser automation" instruction block, and a tab reference appears (@browser:new_tab, a tabGroupId is present in context).
  4. The model attempts to follow the instructions and call mcp__claude-in-chrome__tabs_context_mcp.
  5. The tool is not present. Searching the deferred-tool registry for tabs_context_mcp, read_console_messages, javascript_tool, or a broad claude-in-chrome keyword query all return no matches. There is no mcp__claude-in-chrome__* tool registered at all.

Diagnosis (collected on the affected machine)

The native-messaging bridge between Chrome and Claude Code was never established:

  • ~/.claude/chrome/ - does not exist (no native-host wrapper).
  • Chrome NativeMessagingHosts/ - no com.anthropic.claude_code_browser_extension manifest present (only the unrelated bundled extension assets exist under the extension's own dir).
  • No claude --chrome-native-host process running (pgrep -fl chrome-native-host → nothing).
  • No bridge socket dir: /tmp/claude-mcp-browser-bridge-* - does not exist.

In other words: Chrome has no native-messaging manifest pointing at a Claude Code native host, there is no CLI binary to act as that host, and consequently no bridge socket and no tool registration. The VS Code extension still injects the @browser system prompt and the Chrome extension can create a tab from its own side panel, which is why the prompt + tab succeed while the tools are entirely absent.

Expected behaviour

When the VS Code extension injects the @browser instruction block, the mcp__claude-in-chrome__* tools should be registered into the same session (and tabs_context_mcp should be callable). If the native-messaging bridge cannot be established - e.g. because no native-messaging manifest / native host exists for the VS Code-extension-only install - the extension should either set up that bridge automatically, or surface a clear error and not inject browser instructions that reference tools the model cannot call.

Why this is distinct from existing reports

  • #50423 (VS Code, Linux): there @browser is not recognised as a mention, /mcp shows no claude-in-chrome, and no tab is created. Here the mention is recognised, the prompt is injected, and a tab is created - only the tools are missing. Different OS, different surface symptom.
  • #62002 / #61117 (macOS): there the mcp__claude-in-chrome__* tools are registered and fail at call time with "Browser extension is not connected" (manifest present, native host alive, bridge socket present, CLI never connects). Here the manifest, native host, and bridge socket do not exist at all, and the tools are never registered - a strictly earlier failure stage.

The common thread with all three is a broken bridge, but this report covers the VS Code-extension-only install where no native-messaging manifest / native host / CLI is present, producing a "prompt injected + tab created, tools absent" partial state.

Repro commands (macOS)

# extension installed:
ls ~/Library/Application\ Support/Google/Chrome/Default/Extensions/fcoeoabgfenejglbffodgkkbkcdhcgfn   # -> 1.0.74_0

# but none of the bridge plumbing exists:
ls ~/.claude/chrome/                                                                  # -> not found
ls ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/ | grep -i anthropic   # -> nothing
pgrep -fl chrome-native-host                                                          # -> nothing
ls /tmp/claude-mcp-browser-bridge-*                                                   # -> no matches

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 (VS Code extension, macOS): @browser prompt injects + tab created, but mcp__claude-in-chrome__* tools never register (no native-messaging manifest / native host / bridge socket)