mrkeyoor.com_
Tue 01 Sept 16:14 UTC

This page is what happened when we ran it. The project itself — code, maintenance, community — has its own review: full repo review →

BrowsersMCP servermeasured 19 Aug 2026

Playwright MCP

Playwright MCP is Microsoft's browser-automation server for the Model Context Protocol. It gives a model a real Chromium session and 24 tools for driving it: navigate, click, type, fill forms, upload files, read console messages and network requests, take screenshots, and run arbitrary page code. It talks to the browser through Playwright's accessibility snapshot rather than pixels.

BootBOOTS ✓We started it and initialize came back in 5.4s.
Tools24tools/list payload 18,502 bytes
Context tax~4,626estimated tokens for the whole tools/list, chars/4 estimate
Resources / prompts / counts returned by resources/list and prompts/list
Measured19 Aug 2026one run of the harness, clean environment, no credentials · how we test

How we started it

npx -y @playwright/mcp
Verdict

Use it, and expect to pay for it in context. When we booted it the server came up on its own, no keys, no config file, and every tool did what its name says. The cost is 24 tool definitions sitting in the prompt for the whole session, plus a browser binary download the first time and a real Chromium process for as long as the session lives. If the model only needs page text, a fetch server does that for a fraction of the tax; Playwright earns its weight when the page needs to be clicked.

Use it if

You need the model to log in, click through a flow, and read what came back, not just GET a URL
You are debugging a web app and want browser_console_messages and browser_network_requests in the same session as the code
The target is a JavaScript app that renders nothing useful in raw HTML
You want accessibility-tree snapshots instead of screenshots so the model reads structure rather than guessing at pixels
You already have Node on the box and want zero credential setup

Skip it if

All you do is read articles and docs; a fetch server costs a small fraction of this one's tool payload
You run in a container with no browser dependencies and no appetite for installing them
Your agent already carries several servers and the context budget is tight before this one arrives
You cannot accept browser_run_code_unsafe and browser_evaluate being callable by a model in your environment
You need headless scraping at volume, where a plain Playwright script beats a model-in-the-loop on both cost and reliability

The bill for your context window

ToolEst. tokensDescribed?Required params
browser_take_screenshot~398yes (123 chars)1
browser_fill_form~289yes (25 chars)1
browser_drop~272yes (135 chars)1
browser_find~262yes (340 chars)0
browser_click~238yes (27 chars)1
browser_type~235yes (31 chars)2
browser_network_request~233yes (149 chars)1
browser_drag~229yes (42 chars)2

The tools/list payload is 18502 bytes, about 4626 tokens by the chars/4 estimate, measured 2026-08-19. That is a lot of standing furniture, but it is spread thin rather than concentrated: the heaviest tool, browser_take_screenshot, is roughly 398 tokens, and the lightest, browser_close, about 74. The weight is in schemas, not prose, since several descriptions are almost nothing (browser_click carries 27 characters of description). Nothing here is obviously deletable if you want a working browser, but a read-only agent can safely drop the mutation half of the list and keep snapshot, find and console.

Setup reality

There is nothing to configure. We started it with npx and @playwright/mcp under a clean environment, no secrets, and the harness scraped zero env-var hints out of stderr because it never complained. Init took 5383 ms, which is slower than most servers in this directory and is mostly npx resolving the package. The browser itself is a separate concern: Playwright downloads its Chromium build on first use, so the first real navigation on a fresh machine is slower than the boot number suggests, and on a bare Linux box you will need the usual system libraries. It reported protocol 2025-06-18 and identified itself as version 1.63.0-alpha-2026-08-05.

Questions people ask

Does Playwright MCP need an API key?

No. We started it with a clean environment containing no secrets and it initialized normally, and the harness found no environment-variable hints in its output. The only external dependency is the browser binary Playwright installs for itself.

How much context does Playwright MCP use?

Its tool list is 18502 bytes, roughly 4626 tokens on a chars/4 estimate, measured 2026-08-19 with 24 tools registered. That is charged on every request of the session, not per browser action.

Can I reduce the number of tools it exposes?

The README documents capability flags for trimming the tool set, and most MCP clients also let you disable individual tools. Turning off the drag, drop, file-upload and code-execution tools removes a meaningful slice of the payload for agents that only read pages.

Is browser_run_code_unsafe as bad as it sounds?

It runs code the model wrote inside the page context, so it is exactly as trustworthy as the model plus the site it is visiting. Fine on a dev machine against your own app. Not something to expose to an agent browsing arbitrary URLs.

Other browsers servers we started

ServerVendorBootsContext tax
BrowserbaseBrowserbase~393 tokens
Puppeteer (archived)Anthropic (archived)~612 tokens

How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.

← All measured MCP servers