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)
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
claudeCLI is installed on PATH (no~/.local/bin/claude, no~/.local/share/claude/versions/) - Claude in Chrome extension:
fcoeoabgfenejglbffodgkkbkcdhcgfnv1.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
- Open the Claude Code chat panel in VS Code.
- Use
@browser/ start a browser task. - The session receives the full "Claude in Chrome browser automation" instruction block, and a tab reference appears (
@browser:new_tab, atabGroupIdis present in context). - The model attempts to follow the instructions and call
mcp__claude-in-chrome__tabs_context_mcp. - The tool is not present. Searching the deferred-tool registry for
tabs_context_mcp,read_console_messages,javascript_tool, or a broadclaude-in-chromekeyword query all return no matches. There is nomcp__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/- nocom.anthropic.claude_code_browser_extensionmanifest present (only the unrelated bundled extension assets exist under the extension's own dir). - No
claude --chrome-native-hostprocess 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
@browseris not recognised as a mention,/mcpshows noclaude-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 matchesThis issue has 6 comments on GitHub. Read the full discussion on GitHub ↗