Playwright MCP
browser automation via the accessibility tree, not screenshots
verdictthe most-installed mcp server by a huge margin, and it earns it — driving the accessibility tree instead of screenshots makes it deterministic and cheap in tokens.
- best for
- letting an agent drive a real browser reliably and cheaply
- price
- free — Apache-2.0
- pricing note
- 6.15M npm downloads a week, an order of magnitude ahead of anything else in mcp
- free tier
- yes
- source
- official — microsoft
- transport
- stdio + streamable http
- auth
- none — your local browser
- adoption
- 35.4k stars · 6.15M npm/wk
- license
- Apache-2.0
microsoft's playwright server exposes navigation, clicking, typing, form filling, snapshots, console messages, network inspection and tab management. the design decision that matters is that it operates on the accessibility tree rather than pixels, so the model gets structured text instead of an image to squint at. that is both more reliable and dramatically cheaper per turn than every screenshot-based competitor.
install is one line — `npx @playwright/mcp@latest` — with docker and standalone http modes documented, and `claude mcp add playwright npx @playwright/mcp@latest` for claude code.
the risk is proportional to the capability. it drives a browser that may already be logged into your accounts, and one of its tools is called `browser_run_code_unsafe`, which is at least honest. combined with any page containing untrusted text, this is a complete lethal-trifecta setup by default: private data, attacker-controlled content, and an exfiltration channel in one session. use the isolated or docker profile for anything you didn't write.
note that the archived `puppeteer` reference server is its obsolete predecessor — if a guide tells you to install that, the guide is over a year stale.
- +accessibility-tree approach beats every screenshot-based rival
- +6.15M npm downloads/week — the most-adopted mcp server that exists
- +first-party microsoft, apache-2.0, actively shipping
- +stdio, standalone http and docker modes all documented
- −drives a browser already logged into your accounts
- −no auth boundary — capability is bounded only by the browser profile
- −trivially forms a lethal trifecta with any untrusted page