Claude in Chrome: MCP tab group lost between tool calls — recovery orphans a new tab each time (~15 orphaned groups/session); add option to work in a single plain tab
Summary
During browser-automation sessions, the Claude in Chrome extension repeatedly loses its MCP tab group between tool calls. Every recovery (tabs_context_mcp {createIfEmpty: true}) mints a brand-new tab group and orphans the previous tab. Over one working session this accumulated ~15 orphaned "Claude" tab groups in the tab bar (screenshot available), and made every multi-step flow (e.g. filling a form across two tool calls) unreliable.
Environment
- Claude Code 2.1.241 (macOS CLI)
- Google Chrome 151.0.7922.174, macOS 26.6.2 (Apple Silicon)
- Claude in Chrome extension (current as of 2026-08-24)
Repro / observed behavior
tabs_context_mcp {createIfEmpty: true}→ returns a tab group + tabId. Works.- Perform one
browser_batch(navigate + JS + screenshot) on that tabId. Works. - On the next tool call (same conversation, seconds later), the extension answers either:
Couldn't determine which page this action targets. Re-read tabs_context_mcp and try again., orFailed to query tabs: No group with id: <id>(often 2–4 times in a row with different ids before a call succeeds).
- The only way forward is
createIfEmpty: trueagain → new group, new tab; the previous tab stays open, orphaned, un-adoptable.
The old tab is still alive in Chrome and on the right page — the extension has just lost its binding to it. Frequency in our session: nearly every turn boundary; batched calls (browser_batch) succeed internally, so the loss seems to happen while the extension is idle between MCP calls (service-worker suspension?).
Impact
- Any flow that needs a result from one call to feed the next (e.g.
find→file_uploadwith the returned ref) fails almost deterministically, because the group dies between the two calls. - The user's tab bar fills with orphaned "Claude" groups (~15 in one session).
Expected
- The extension should re-attach to its existing tab/group after a service-worker restart (persist the binding), instead of failing the call and forcing a fresh group.
- At minimum,
createIfEmptyshould adopt a still-open orphan tab from the same conversation rather than opening another one.
Feature request (related)
Please add an option to not use tab groups at all (and/or reuse a single plain tab per conversation): e.g. a setting like "tabGroups": false that makes the extension open one ordinary tab, keep working in that same tab for the whole session, and navigate it in place. The current group-per-recovery behavior is what turns a transient binding loss into permanent tab-bar clutter.
Workarounds we used
- Cram entire flows into single
browser_batchcalls (works until the flow needs a dynamic ref between calls). - Retry
tabs_context_mcp2–4× until it sticks. - Periodically ask the user to close the orphaned groups and restart Chrome.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗