MCP server · Browser + DevTools

OfficialHands-on VerifiedLocal executionApache-2.0Updated August 2026

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.

MCP security best practices

Install Playwright MCP

npx @playwright/mcp@latest

Config entry (mcpServers)
{
  "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.

ConfigurationInstallAuthDiscoveryExecutionReadWriteDestructiveErrors
Claude Code
claude-fable-5 · Windows · stdio · tested 2026-08-16
Claude Code CLI 2.1.228 on Windows 11 Pro 10.0.26200 with Node v24.16.0; server registered as `npx -y @playwright/mcp@latest` (stdio) and reported Connected by `claude mcp list` (2026-08-16); run by an agent session (Claude Fable 5, model id claude-fable-5) with genuine access to the client, the OS and the server — spec §7 / decision F3.
VerifiedN/AVerifiedVerifiedVerifiedNot testedNot testedNot 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

Reviewed byOpenSourcesAI EditorialLast updatedAugust 2026Sourcesmicrosoft/playwright-mcp README — standard config, tools, --port/--caps/--isolated options, Docker, security note; npm: @playwright/mcp; Official MCP Registry entry io.github.microsoft/playwright-mcp

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 guides

All MCP servers →