MCP server · Browser + DevTools
Playwright MCP
Microsoft's MCP server that drives a real browser through Playwright with accessibility snapshots, not screenshots — navigate, click, type, read.
Quick verdict
Accessibility-tree snapshots are compact and deterministic, so local models that struggle with screenshots can still operate a browser.
- MaintainerMicrosoft (official)
- Security scopeLocal execution
- Transportsstdio, streamable-http, sse
- Install channelnpm · @playwright/mcp
- EvidenceHands-on Verified · 1 configuration
- LicenseApache-2.0 · Open source
Microsoft's official Playwright MCP server. It gives an agent a real browser (Chromium by default; Edge/Chrome via --extension) driven through structured accessibility snapshots rather than pixels, which is what makes it usable with smaller local models. Core tools cover navigation, clicking, typing, form filling, snapshots, screenshots, console and network reads; opt-in tool groups (--caps) add vision, PDF, DevTools, storage and test assertions. Runs over stdio by default and can serve HTTP with --port; a Docker image (headless Chromium only) is also published.
Install Playwright MCP
npx @playwright/mcp@latest
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}Node.js 18+; browsers are installed by Playwright on first use. Docker image mcr.microsoft.com/playwright/mcp (headless Chromium only).
Credentials
No credentials required.
Verified configurations
Each row is one client + runtime + OS combination that was actually run, with what was verified in that session.
| Configuration | Install | Auth | Discovery | Execution | Read | Write | Destructive | Errors |
|---|---|---|---|---|---|---|---|---|
| Claude Code | Verified | N/A | Verified | Verified | Verified | Not tested | Not tested | Not tested |
Evidence — Claude Code
- Install: `claude mcp list` → `playwright: npx -y @playwright/mcp@latest - ✔ Connected`: the package resolved through npx and Claude Code spawned the stdio process; no Playwright browser had to be installed by hand.
- Auth: The server declares no credentials.
- Discovery: tools/list exposed 24 tools: browser_navigate, browser_navigate_back, browser_snapshot, browser_take_screenshot, browser_click, browser_type, browser_fill_form, browser_select_option, browser_hover, browser_drag, browser_drop, browser_press_key, browser_find, browser_wait_for, browser_handle_dialog, browser_file_upload, browser_evaluate, browser_run_code_unsafe, browser_console_messages, browser_network_request, browser_network_requests, browser_resize, browser_tabs, browser_close.
- Execution: `browser_navigate` to https://opensourcesai.com/mcp/ → a real Chromium loaded the page (title 'MCP Servers Directory | OpenSourcesAI'; the server ran `await page.goto(...)`), then `browser_snapshot` returned the accessibility tree — the H1, 11 profile links (/mcp/chrome-devtools/ … /mcp/supabase/), the nine filter chips, the footer — and `browser_close` closed the tab ('No open tabs').
- Read: `browser_snapshot` read the rendered page; the run also reported the page's own 2 console errors (a 404 for /analytics/ and a CSP-blocked Cloudflare Insights beacon), i.e. real browser state came back, not a stub.
The founder's registration adds `-y` (npx no-prompt) to the profile's config entry; identical package and transport otherwise. Clicking, typing and browser_run_code_unsafe were deliberately not exercised in this session.
Best for
Agents that need to actually use a website — fill forms, click through flows, read rendered pages — with a browser you can watch, on your own machine.
Why use it
Accessibility-tree snapshots are compact and deterministic, so local models that struggle with screenshots can still operate a browser. It is vendor-maintained, documented for twenty-plus clients, and offers an isolated profile mode, a headless flag and a Docker image for sandboxing.
Tradeoffs
It executes actions in a real browser on your machine and one tool (browser_run_code_unsafe) is documented as RCE-equivalent; the README states outright that Playwright MCP is not a security boundary and that origin allow/block lists do not affect redirects. Use --isolated for a throwaway profile, keep approval prompts on, and do not point it at a browser profile that is signed into anything you care about. Not for production automation.
Upstream state
npm package published · repository active · in the official MCP Registry (active). Lifecycle is derived from a committed upstream snapshot at build time, never authored by hand.
Official MCP Registry name: io.github.microsoft/playwright-mcp
Editorial review
Grade A — Hands-on Verified. Re-review is due by 2026-12-16. Config entries, credential names and package status can change upstream; verify against the source repository before granting an agent access.
Sources
Related MCP servers
- Qdrant MCPGive agents a local or hosted Qdrant memory layer for storing notes and retrieving them by semantic search.
- Chrome DevTools MCPThe Chrome DevTools team's MCP server: DOM snapshots, console, network and performance traces from a live Chrome as structured tool results.
- Redis MCPLet agents read, write, search and manage Redis data structures through Redis's official MCP server.