conceptshared last reviewed 2026-05-21

Browser MCP routing โ€” which of the 4 browser tools to use

Context

Aspire has FOUR browser-automation MCPs wired up, each with different capabilities, isolation, and concurrency properties. Agents (and Kom) consistently pick the wrong one and hit lock conflicts or auth gaps. This page is the routing decision table.

Detail

The 4 browser MCPs

MCPWhereProfileConcurrencyAuth stateBest for
Claude in ChromeDesktopPaired "Browser 1"ONE Claude session at a time (flip-flop)User's real Chrome cookiesWeb apps needing the user's logged-in session; visible-to-user driving
chrome-devtoolsCode--isolatedParallel-safeNo cookies (clean)Ad-hoc clean browser; perf/Lighthouse/network analysis
playwright (master)CodePersistent ~/.cache/playwright-mcp-profile/ONE session at a timePersistent (logins survive)Logins + state-changing work; GitLab-authenticated browsing
playwright-parallelCode--isolated --storage-state ...TRUE parallel across sessionsRead-only auth (exported from master)Scrape/audit on logged-in services, many tabs at once

Decision table

Need the user's REAL Chrome session (their logins)?
โ””โ”€โ”€ YES โ†’ Claude in Chrome (Desktop). Must pair the extension first.
โ””โ”€โ”€ NO โ†’ Need to log in / change state on a site?
         โ””โ”€โ”€ YES โ†’ playwright master (persistent profile, one session)
         โ””โ”€โ”€ NO โ†’ Need many parallel tabs / read-only scrape on a logged-in service?
                  โ””โ”€โ”€ YES โ†’ playwright-parallel (isolated, read-only auth from master export)
                  โ””โ”€โ”€ NO โ†’ chrome-devtools (clean isolated browser, perf/network)

Default routing (per MEMORY.md reference_browser_mcps)

Hard-won operational gotchas (this session)

GotchaFix
playwright master "Browser is already in use for profile"Clear stale ~/.cache/playwright-mcp-profile/Singleton{Lock,Cookie,Socket}
playwright-parallel lands on sign-in pageIt only has read-only auth; needs master to have logged in + exported storage state first
Claude in Chrome list_connected_browsers returns []Extension not paired โ€” user must click the Claude extension icon โ†’ Connect (NOT a site login)
chrome-devtools "Could not connect to Chrome"No Chrome running with debug port โ€” start one or use playwright instead
Re-export storage state after new loginsbrowser_run_code_unsafe to export master's storage state for playwright-parallel

Don't do

Link safety (cross-cutting)

Related

๐Ÿ”— Relationships

graph LR browser_mcp_routing["browser-mcp-routing"]:::self browser_mcp_routing --> aspire_mcp_ecosystem["aspire-mcp-ecosystem"] browser_mcp_routing --> aios_workflow["aios-workflow"] classDef self fill:#715EE3,color:#fff,stroke:#291F50;