$ show microsoft/playwright-mcp
Playwright MCP is the npm distribution package for Microsoft's Model Context Protocol server that exposes Playwright browser automation to LLM clients as MCP tools. Despite the large star count, this repository contains almost no product source: the actual MCP tool implementation (browser_click, browser_navigate, browser_snapshot, network routing, storage, vision, PDF, devtools, and testing capabilities) lives in the Playwright monorepo at packages/playwright-core/src/tools/mcp. cli.js and index.js are thin shims that re-export tools.decorateMCPCommand and tools.createConnection from playwright-core's internal bundles, and src/README.md openly states where the source is. This repo functions as the release-shipping wrapper: it pins a Playwright alpha build, rolls it forward via roll.js, regenerates README tool/config documentation from the bundled tool schemas via update-readme.js, publishes the @playwright/mcp npm package (GitHub Actions OIDC, Azure ESRP, and the MCP Registry with server.json/package.json version validation), and builds multi-arch Docker images. Classified as a pure application, not data_research.
The LLM identified 1 files worth highlighting for reuse:
A reusable Playwright test harness for behaviorally testing an MCP server. It spawns the server-under-test as a stdio child process (or inside Docker via a configurable docker transport), plumbs CLI args and JSON config files, provides worker-scoped HTTP/HTTPS TestServers, supports CDP endpoint fixtures, and adds a custom `toHaveResponse` matcher that parses the tool response's `###`-delimited markdown sections (Result, Code, Snapshot, Console messages, Modal state, Downloads) into structured objects. The non-obvious pattern here is asserting against an MCP tool's textual response contract rather than its raw JSON envelope, plus the multi-mode transport abstraction (local vs docker) - both directly reusable for any project that needs to test an MCP server end-to-end.