Playwright MCP
Playwright MCP
An MCP server that gives compatible clients structured control of a real Playwright browser for QA, scraping diagnostics, accessibility-minded inspection, and reproducible browser workflows.
Architecture
Transport entrypoints are thin:
src/index.tsstarts MCP over stdio.src/http.tsstarts MCP over Streamable HTTP.src/server.tsbuilds oneMcpServerand registers all tools.
Core services own browser state:
BrowserManagerserializes tool execution, launches browsers lazily, and manages contexts/pages.TelemetryStorecaptures console messages, page errors, failed requests, and recent network events.Tool modules register focused actions and depend only on the public browser/session APIs.
Tool groups:
Browser/context/page lifecycle
Navigation and waiting
Interaction
Inspection and screenshots
Assertions
Diagnostics, tracing, and storage
Install
npm install
npm run install-browsers
npm run buildRun
npm startHTTP transport:
npm run start:httpDefault HTTP endpoint: http://127.0.0.1:8931/mcp.
Production Controls
Configuration is environment-driven:
PLAYWRIGHT_MCP_HTTP_TOKEN: requireAuthorization: Bearer <token>for HTTP mode.PLAYWRIGHT_MCP_HTTP_ALLOWED_ORIGINS: comma-separated CORS allowlist.PLAYWRIGHT_MCP_ALLOWED_ORIGINS: comma-separated browser navigation allowlist.PLAYWRIGHT_MCP_BLOCKED_ORIGINS: comma-separated browser navigation blocklist.PLAYWRIGHT_MCP_ALLOW_EVALUATE: enable the dangerousevaluatetool. Default:false.PLAYWRIGHT_MCP_ALLOW_DOWNLOADS: enable download tools and accepting downloads. Default:false.PLAYWRIGHT_MCP_ALLOW_UPLOADS: enable upload tools. Default:false.PLAYWRIGHT_MCP_ARTIFACT_DIR: screenshots, traces, PDFs, downloads, and storage state directory. Default:./artifacts.PLAYWRIGHT_MCP_MAX_CONTEXTS: browser context cap. Default:8.PLAYWRIGHT_MCP_MAX_PAGES: page cap. Default:32.PLAYWRIGHT_MCP_DEFAULT_TIMEOUT_MS: default Playwright timeout. Default:30000.PLAYWRIGHT_MCP_LOG_LEVEL:debug,info,warn, orerror.
HTTP mode should use PLAYWRIGHT_MCP_HTTP_TOKEN before binding to anything other than localhost.
MCP client config
Examples are available in examples/:
claude_config.jsoncursor_mcp.jsoncodex_config.tomlcline_mcp_settings.jsonopencode_config.json
Development
npm run checkLatest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/quotows/mcp-playwright'
If you have feedback or need assistance with the MCP directory API, please join our Discord server