Playwright MCP Server
An MCP server using Playwright for browser automation and webscrapping
Playwright MCP Server ðŸŽ
A Model Context Protocol server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages, take screenshots, generate test code, web scraps the page and execute JavaScript in a real browser environment.
Screenshot

Documentation | API reference
Installation
You can install the package using either npm, mcp-get, or Smithery:
Using npm:
npm install -g @executeautomation/playwright-mcp-server
Using mcp-get:
npx @michaellatman/mcp-get@latest install @executeautomation/playwright-mcp-server
Using Smithery
To install Playwright MCP for Claude Desktop automatically via Smithery:
npx @smithery/cli install @executeautomation/playwright-mcp-server --client claude
Installation in VS Code
Install the Playwright MCP server in VS Code using one of these buttons:
Alternatively, you can install the Playwright MCP server using the VS Code CLI:
# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'
# For VS Code Insiders
code-insiders --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'
After installation, the ExecuteAutomation Playwright MCP server will be available for use with your GitHub Copilot agent in VS Code.
Configuration to use Playwright Server
Here's the Claude Desktop configuration to use the Playwright server:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"]
}
}
}
Docker Support
The Playwright MCP Server can be run in Docker for isolated and containerized execution.
Building the Docker Image
Before building the Docker image, you need to build the TypeScript project with production dependencies:
# Install production dependencies and build
npm install --omit=dev
npm run build
# Build the Docker image
docker build -t mcp-playwright .
Or use the provided convenience script:
chmod +x docker-build.sh
./docker-build.sh
Running with Docker
You can run the MCP server using Docker in several ways:
Using Docker directly
# Run the server (stdin/stdout communication)
docker run -i mcp-playwright
Using Docker Compose
A docker-compose.yml file is provided for easier management:
# Run the server with docker-compose
docker compose run --rm playwright-mcp
Using Docker with MCP Clients
To use the Dockerized server with Claude Desktop or other MCP clients, you can configure them to use Docker:
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-playwright"]
}
}
}
Note: The Docker image uses a Debian-based slim Node.js image and includes only the core dependencies. Playwright browsers are not pre-installed in the container to keep the image size small. The browsers will be downloaded on first use if needed.
Testing
This project uses Jest for testing. The tests are located in the src/__tests__ directory.
Running Tests
You can run the tests using one of the following commands:
# Run tests using the custom script (with coverage)
node run-tests.cjs
# Run tests using npm scripts
npm test # Run tests without coverage
npm run test:coverage # Run tests with coverage
npm run test:custom # Run tests with custom script (same as node run-tests.cjs)
The test coverage report will be generated in the coverage directory.
Running evals
The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can load environment variables by prefixing the npx command. Full documentation can be found here.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/codegen/index.ts
Contributing
When adding new tools, please be mindful of the tool name length. Some clients, like Cursor, have a 60-character limit for the combined server and tool name (server_name:tool_name).
Our server name is playwright-mcp. Please ensure your tool names are short enough to not exceed this limit.
Star History
Related Servers
MCP Undetected Chromedriver
Automate Chrome browser control while bypassing anti-bot detection using undetected-chromedriver.
NBA Player Stats
Provides comprehensive NBA player statistics from basketball-reference.com, including career stats, season comparisons, and advanced metrics.
Career Site Jobs
A MCP server to retrieve up-to-date jobs from company career sites.
Apify
Use 3,000+ pre-built cloud tools to extract data from websites, e-commerce, social media, search engines, maps, and more
just-every/mcp-screenshot-website-fast
High-quality screenshot capture optimized for Claude Vision API. Automatically tiles full pages into 1072x1072 chunks (1.15 megapixels) with configurable viewports and wait strategies for dynamic content.
Fetch
Fetch web content as HTML, JSON, plain text, or Markdown.
Bilibili Comments
Fetch Bilibili video comments in bulk, including nested replies. Requires a Bilibili cookie for authentication.
GeekNews MCP Server
Fetches and caches daily articles from GeekNews using web scraping.
YouTube Insights MCP Server
Extract insights from YouTube videos, including subtitles, video discovery, and channel information.
Bilibili
Interact with the Bilibili video website, enabling actions like searching for videos, retrieving video information, and accessing user data.