Claude in Chrome (MCP): navigate/javascript_tool denied 'Permission denied by user' with no approval popup; approved-sites list can't be populated — survives reinstall + reconnect
Summary
Claude-in-Chrome MCP browser tools are unusable: mcp__claude-in-chrome__navigate and mcp__claude-in-chrome__javascript_tool are denied instantly with Permission denied by user, no approval popup ever renders, and the extension's "Approved sites" list stays empty with no manual way to add a site. This persists across a full extension reinstall and /chrome → Reconnect extension. Read-only tabs_context_mcp works.
Environment
- macOS (Darwin 25.5.0)
- Claude Code CLI v2.1.168
- Claude in Chrome extension: reinstalled from the Chrome Web Store (latest available 2026-06-08)
- Account: signed in (extension settings show the account email)
Symptoms
mcp__claude-in-chrome__tabs_context_mcp→ works (returns the tab list).mcp__claude-in-chrome__navigate→Permission denied by user, returned instantly, with no popup shown to the user. The user is actively trying to allow it and sees nothing to approve.mcp__claude-in-chrome__javascript_tool→ works onchrome://newtabbut denied onhttp://127.0.0.1:<port>.- Fails identically on brand-new public domains (
example.com,httpbin.org/html) — so it is not localhost-specific.
What was tried (none fixed it)
- Added all
mcp__claude-in-chrome__*tool names topermissions.allowin~/.claude/settings.json+ full Claude Code restart. No effect — and the/chromemenu itself notes: "Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings…", confirmingsettings.jsonis not the gate. - Full extension uninstall → restart Chrome → reinstall from the Web Store.
/chrome → Reconnect extension.- Opened the extension's Settings → Permissions → "Your approved sites": empty, with no add-site control. The only path to approve a site is the "Always allow actions on this site?" popup, which never appears.
Impact
The agent cannot navigate, inspect, or run JS on any page, so browser-based verification (e.g. loading a local dev server to confirm a UI actually renders) is impossible. There is no user-side workaround because the approve-a-site popup — the only way to populate the approved-sites list — never renders.
Likely related
Appears to match #53630 (approval popup never renders) and possibly #55706 (a server-side cached domain block that survives reinstall). Filing a fresh, fully-reproduced report; please link/dedup as appropriate.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗