mrkeyoor.com_
Sun 01 Nov 05:00 UTC
AI Toolsevaluationupdated 30 Sept 2026

playwright-mcp review

Playwright MCP lets an AI agent inspect and operate a web browser through Playwright, using page structure as its main interface. It solves the awkward job of giving an MCP client a persistent browser session without requiring a vision model for every click.

+241stars / 7d
Verdict

Our Playwright MCP run installed 112 packages and built in 7 seconds, but testing stopped because the process reported Node 18.20.8 against a Node 20 minimum. Use it for stateful, exploratory browser work where accessibility snapshots help an agent reason across several actions. For coding agents that only need targeted browser commands, Microsoft's own Playwright CLI is the leaner choice.

We ran it

Lab card: what happened when we ran playwright-mcpScreenshot of playwright-mcp (www.npmjs.com/package/@playwright/mcp)
Install✓ · 13s112 packages · 48 MB
Build✓ · 7s
Tests✗ · 8sran, no count parsed
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo39 files~1,564 lines of source · 0.2 MB · 2 CI workflows · Dockerfile · tests dir

Answers from our run

Does playwright-mcp build from source?

Dependencies installed in 13 seconds (112 packages), and the build succeeded in 7 seconds. We cloned commit f183dad into a clean Debian container with 3 CPUs and no project-specific setup.

Do playwright-mcp's tests pass?

No. The project's own test command exited unsuccessfully after 8 seconds, and its output did not expose an individual test count.

Does playwright-mcp have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use playwright-mcp?

Coding-agent users trying to minimize context use: Microsoft's README now recommends Playwright CLI with skills for that job because MCP tool schemas and accessibility trees consume more context.

What are the alternatives to playwright-mcp?

Playwright CLI, Chrome DevTools MCP, Stagehand. Our Playwright MCP run installed 112 packages and built in 7 seconds, but testing stopped because the process reported Node 18.

Setup3/513-second install, but our test runtime missed the Node 20 floor
Docs5/5Client recipes, profiles, options, tools, and security limits are covered
Community5/537,704 stars and a September 28, 2026 push
Maturity4/5Active v0.0.83 release, with a failed lab test step

Discussed on

  1. hnShow HN: Playwright Skill for Claude Code – Less context than playwright-MCP189 points
  2. hnPlaywright Tools for MCP181 points
  3. hnPlaywright MCP Server – Snapshot based – faster and more reliable than images6 points
  4. hnPlaywright MCP3 points

Who it’s for

Developers giving an MCP client a browser for form work, web inspection, or repeatable navigation.
Agent builders who need persistent browser state and structured accessibility snapshots across several steps.
Teams that want Chromium, Firefox, WebKit, or Edge control from one documented server.
Claude Code users whose workflow genuinely benefits from MCP state more than a smaller CLI context footprint.

Who it’s NOT for

Coding-agent users trying to minimize context use: Microsoft's README now recommends Playwright CLI with skills for that job because MCP tool schemas and accessibility trees consume more context.
Teams treating origin allowlists as containment: the README says they are not a security boundary and do not cover redirects.
Docker users who require Firefox or WebKit: the documented container supports headless Chromium only.
Several clients sharing one persistent profile: the README warns that one profile can be used by only one browser instance at a time.
Release gates that require a clean test run from the supplied setup: our test command exited before the suite because it reported Node 18.20.8 and required Node 20 or newer.

Setup reality

Our sandbox installed commit f183dad in 13 seconds, adding 112 packages and using 48 MB. The build passed in 7 seconds. The test step failed after 8 seconds because its process reported Node 18.20.8, below Playwright's Node 20 minimum. Npm audit found 0 known vulnerabilities.

The basic MCP config runs npx @playwright/mcp@latest and needs no service credential. Logged-in work needs a persistent profile, a storage-state file, or the Chrome extension. Remote CDP, proxies, and secret files add their own configuration.

The README says Node 18 or newer, while our test log demanded Node 20. Docker supports headless Chromium only. Persistent profiles also permit one browser instance at a time, so concurrent clients need isolated sessions or separate data directories.

The browser stays open between an agent's decisions

Playwright MCP gives a model a browser it can inspect and operate over several turns. The main input is an accessibility snapshot, which names links, controls, and page text in a structured form. An agent can click, type, upload files, inspect console output, watch requests, and save screenshots without treating every page as a picture. That is a sensible fit for exploratory work where the next action depends on what the previous page revealed. Because the snapshot exposes named controls, the model can refer to a button or field more precisely than it can infer a coordinate from a screenshot.

The server also keeps browser state. Its default persistent profile stores cookies and local data in a workspace-specific directory, while --isolated starts a disposable session. You can seed an isolated session from a storage-state file, connect to a current Chrome or Edge session through the extension, or attach over CDP. One persistent profile permits only 1 browser instance, so parallel clients need distinct data directories or isolated sessions.

Microsoft's CLI is the better fit for many coding agents

The project's own README draws an unusually useful line. MCP is for persistent state, rich inspection, and iterative browser reasoning. Playwright CLI with skills is recommended for coding agents that care about context efficiency because short commands avoid loading broad tool schemas and verbose accessibility trees. That distinction should decide the install before the project's popularity does. It also prevents a familiar mistake: adding a general browser server when a few explicit test commands already cover the job.

A debugging agent moving through an unfamiliar checkout may only need to open a route, inspect a selector, and record a test. The CLI covers that path with less protocol machinery. An autonomous workflow that logs in, follows branching UI state, returns later, and examines network traffic has a stronger reason to keep MCP. Playwright MCP exposes core actions plus optional capabilities for vision, PDF work, storage, network controls, testing, and DevTools.

What happened when we ran it

Our fresh sandbox installed commit f183dad in 13 seconds. Npm added 112 packages, the installed tree occupied 48 MB, and the build completed in 7 seconds. The checkout held 39 files and about 1,564 lines of source. Npm audit reported 0 known vulnerabilities across critical, high, moderate, and low severity. The repository also had 2 CI workflow files, a Dockerfile, and a tests directory.

Testing failed after 8 seconds before Playwright ran the suite. The log said the process was using Node.js 18.20.8 and that Playwright requires Node.js 20 or higher. Our supplied lab environment was the lab-node:22 image, so those 2 runtime facts conflict. The log does not explain the mismatch, and neither will we. A maintainer or adopter should reproduce the command and inspect which Node executable the test process resolves. Until that check passes, the successful build is not a clean release signal.

The simple config hides consequential browser choices

The smallest client configuration is just npx @playwright/mcp@latest. No hosted API credential is required for ordinary local browsing. Real use quickly raises questions the one-line setup cannot answer: whether sessions may retain login cookies, which workspace files the browser may upload, which origins it may reach, where screenshots land, and whether the MCP client may evaluate JavaScript inside an untrusted page.

Microsoft states that Playwright MCP is not a security boundary. The origin allowlist defaults to allowing all origins, does not cover redirects, and is explicitly described as unsuitable for containment. File access is limited to workspace roots by default, but an option can remove that restriction. The server can also load dotenv secrets, grant browser permissions, ignore HTTPS errors, and disable browser sandboxing. Each switch is useful, and each widens what a mistaken agent action can touch.

Docker narrows the browser choice to headless Chromium

The repository includes a Dockerfile and documents both short-lived stdio use and a long-running HTTP server on port 8931. The container route supports headless Chromium only. A team that needs to reproduce Safari-facing WebKit behavior or Firefox-specific bugs must use another installation path. The long-running example also binds to 0.0.0.0 and starts Chromium with --no-sandbox, so operators need network controls around it.

Development activity is current. GitHub showed 37,704 stars, 6 combined issues and pull requests, and a last push on September 28, 2026. Release v0.0.83 was published the same day. Those dates support active maintenance, while our failed test step keeps the recommendation conditional. Use the server when persistent browser context is central to the job, then pin the package, confirm Node 20 or newer inside the actual test process, and choose profile isolation before handing it an authenticated session.

Alternatives

ProjectWhat it isPick it when
Playwright CLIMicrosoft's command-line browser tool records actions, inspects selectors, and generates Playwright code.pick this instead when a coding agent needs shorter commands and a smaller context cost.
Chrome DevTools MCP gh↗An MCP server that gives coding agents direct access to Chrome DevTools.pick this instead when Chrome diagnostics and DevTools data matter more than cross-browser control.
Stagehand gh↗A browser automation SDK that mixes ordinary code with model-directed page actions.pick this instead when you are building browser behavior into an application rather than exposing a general MCP server.

Sources

  1. Playwright MCP README
  2. Playwright MCP repository
  3. Playwright MCP v0.0.83

More ai tools reviews

anarlog · pr-agent · agent-sprite-forge · KiroCrew · Orkas · hypit · the whole board →