[BUG] Claude in Chrome MCP tools fail silently in claude.ai — update_plan never triggers domain approval, navigate returns Permission denied with no visible prompt

Resolved 💬 3 comments Opened Feb 20, 2026 by metaColin Closed Feb 23, 2026

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?

The Claude in Chrome MCP tools are non-functional when used from claude.ai chat. The update_plan tool, which is supposed to present a domain approval popup to the user before navigation, never renders any UI. No popup, no notification, no prompt of any kind appears. Subsequent navigate calls return "Permission denied by user" even though the user was never asked for permission.

The tabs_context_mcp tool works and returns tab IDs, but the tabs it manages are isolated in their own tab group. Tabs opened via the separate Control Chrome MCP open outside this group, and Claude in Chrome refuses to interact with them. The two MCP integrations have no bridge between them.

Environment:

  • Platform: macOS (M4 MacBook Air, 32GB RAM)
  • Browser: Chrome (latest stable)
  • Claude interface: claude.ai (Max plan)
  • Claude model: claude-opus-4-6
  • Claude in Chrome extension: Installed and connected
  • Control Chrome MCP: Also connected
  • Domain allowlist: "All domains" (confirmed in Settings > Capabilities)
  • Network egress: Enabled, all domains allowed

What Should Happen?

  • update_plan should display a domain approval prompt to the user when called
  • After approval, navigate should work on tabs within the group
  • The user's domain allowlist setting ("All domains") in claude.ai Settings > Capabilities should be respected
  • OR: The two Chrome MCPs (Claude in Chrome + Control Chrome) should share tab context so tabs opened by one are accessible to the other

Error Messages/Logs

update_plan returns: "No tab available"
navigate returns: "Permission denied by user"
Control Chrome:execute_javascript returns: "missing value for required argument code" (intermittent)

No approval popup, notification, or domain consent UI is ever rendered to the user.

Steps to Reproduce

  1. Open claude.ai in Chrome with Claude in Chrome extension installed and connected
  2. Also have Control Chrome MCP connected
  3. In chat, ask Claude to navigate to any URL (e.g., bmorcelli.github.io/Launcher/webflasher.html)
  4. Claude calls tabs_context_mcp — succeeds, returns tab group with blank chrome://newtab tabs
  5. Claude calls update_plan with domains list — returns "No tab available" error
  6. Claude calls navigate on a tab in its group — returns "Permission denied by user"
  7. No popup, notification, or approval prompt is ever shown to the user
  8. Alternatively, Claude uses Control Chrome:open_url which works but opens tabs outside the Claude in Chrome tab group, making them inaccessible to Claude in Chrome tools

User's Settings > Capabilities page confirms "All domains" is selected and all features are enabled — this is not a permissions configuration issue.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

N/A — this bug is in the Claude in Chrome browser extension, not Claude Code CLI

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

This appears to be the same family of bugs reported in:

  • #26217 (macOS, silent WebSocket failure, "Browser extension is not connected")
  • #24935 (macOS, "Could not establish connection. Receiving end does not exist")
  • #23221 (Windows, approval popup auto-closes within 2 seconds or fails to render)
  • #21772 (Windows, CSP blocks inline scripts in sidepanel.html)
  • #20298 (macOS, sidepanel works but MCP tools cannot connect)
  • #23539 (Windows, "Browser extension is not connected" despite correct config)

All of these issues are filed in the last 1-3 weeks and most remain OPEN with no resolution. The common pattern is: MCP server side works (tools register), but the Chrome extension side fails to establish working connections or render approval UI.

This renders the Claude in Chrome browser automation completely non-functional for its advertised use case.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗