Skip to content

v0.1.1 — initial release

Choose a tag to compare

@dgutierrez1 dgutierrez1 released this 28 Jun 05:38
· 6 commits to main since this release

An MCP server that runs concurrent, session-isolated Playwright browser contexts, so many agents can each drive their own browser in parallel without colliding.

Highlights

  • One shared Chromium, an isolated BrowserContext per sessionId — address each agent's browser explicitly; sessions never share cookies, storage, or tabs.
  • Two transports: stdio (default) and Streamable HTTP with per-client session isolation (each client gets its own session namespace over one shared browser).
  • Ref-based snapshot targetingbrowser_snapshot emits an accessibility tree with refs; actions take a ref + a human description (reliable and token-efficient).
  • Per-session storage state — save/restore cookies + localStorage to resume an authenticated profile.
  • Screenshots as image content blocks.
  • Security model: navigation allow-listing, file:/data: blocking by default, opt-in path confinement for file writes, DNS-rebinding protection on HTTP, body/connection caps. Errors are reported in-band with stable code prefixes.

How it differs from @playwright/mcp

The official server isolates per transport connection (--isolated, ephemeral). This isolates per addressable sessionId you choose — so one client can drive many isolated, persistable sessions at once — with a lightweight BrowserContext per session rather than a process or container.

Install

npm install concurrent-playwright-mcp
npx playwright install chromium   # one-time: download the browser

Requires Node ≥ 20.19. Published with npm provenance.

Full docs: see the README.