microsoft/playwright-mcp is an MCP server that enables LLMs to interact with web pages using structured accessibility snapshots rather than pixel-based screenshots. It provides deterministic browser automation through Playwright, requiring an MCP client to function.
Project overview
The project addresses the inefficiency of screenshot-based web interaction by using Playwright's accessibility tree, which provides deterministic, token-efficient browser automation.
Project type
MCP
Use cases
Automation
Deployment
Refer to project documentation
License
Apache-2.0
Best for
Developers needing deterministic, text-based web interaction for AI agents.
Key capabilities
Enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.
Provides browser automation capabilities using Playwright through an MCP interface.
Limitations and risks
The Docker implementation only supports headless chromium at the moment.
A persistent profile can only be used by one browser instance at a time, so concurrent MCP clients sharing the same workspace will conflict.
Playwright MCP is not a security boundary.
allowUnrestrictedFileAccess is a convenience defense, not a secure boundary; deliberate attempts to reach other directories can be easily worked around.
Getting started
Installation is rated as easy, requiring either Node.js 18+ or Docker.
Operation requires an MCP client, such as VS Code, Cursor, or Claude Desktop.
Evidence and sources
README: A Model Context Protocol (MCP) server that provides browser automation capabilities using [Playwright](https://playwright.dev). This server enables LLMs to interact with web pages…
GitHub project description: Playwright MCP server
README: - **Fast and lightweight**. Uses Playwright's accessibility tree, not pixel-based input. - **LLM-friendly**. No vision models needed, operates purely on structured data. - **Deter…
README: You can run Playwright MCP with persistent profile like a regular browser (default), in isolated contexts for testing sessions, or connect to your existing browser using the brows…
README: --caps <caps> | comma-separated list of additional capabilities to enable, possible values: vision, pdf, devtools.