MCP-Playwright-Server
What is MCP Playwright? A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server can be used with Claude Desktop and other MCP-compatible clients to perform web testing, scraping, and automation tasks.
Documentation
MCP Playwright Server
๐ฏ What is MCP Playwright?
A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server can be used with Claude Desktop and other MCP-compatible clients to perform web testing, scraping, and automation tasks.
๐ Why Choose MCP Playwright?
- ๐ค AI-First Design: Built specifically for AI agents and natural language automation
- ๐ญ Multi-Browser Support: Chromium, Firefox, and WebKit out of the box
- ๐ณ Production Ready: Docker support for consistent, scalable deployments
- โก Lightning Fast: Optimized for enterprise-grade testing workflows
- ๐ง Developer Friendly: Comprehensive tooling and extensive documentation
Features
- Multi-browser support: Chromium, Firefox, and WebKit
- Comprehensive automation: Navigate, click, type, screenshot, and more
- Docker support: Run in containers for consistent environments
- Testing framework: Built-in Playwright test configuration
- MCP integration: Compatible with Claude Desktop and other MCP clients
Available Tools
- `launch_browser` - Launch a new browser instance
- `new_page` - Create a new page in an existing browser
- `navigate` - Navigate to a URL
- `click` - Click on an element
- `type_text` - Type text into input fields
- `get_text` - Extract text content from elements
- `screenshot` - Take screenshots of pages
- `wait_for_selector` - Wait for elements to appear
- `close_page` - Close a page
- `close_browser` - Close a browser and all its pages
๐ Quick Start
One-Line Installation
npm install -g mcp-playwright && mcp-playwright startInstallation
Local Development
1. Install dependencies:
npm install2. Install Playwright browsers:
npm run install:browsers3. Start the MCP server:
npm startDocker Deployment
1. Build the Docker image:
npm run docker:build2. Run the container:
npm run docker:runConfiguration for Claude Desktop
To use this MCP server with Claude Desktop, add the following to your Claude Desktop configuration file:
macOS Configuration
Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
{
"mcpServers": {
"playwright": {
"command": "node",
"args": ["/path/to/your/mcpplaywright/src/index.js"],
"env": {
"PLAYWRIGHT_HEADLESS": "true"
}
}
}
}Docker Configuration
If running in Docker, use:
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": ["run", "--rm", "-i", "mcp-playwright"],
"env": {
"PLAYWRIGHT_HEADLESS": "true"
}
}
}
}๐ก Real-World Use Cases
๐งช AI-Powered Testing
// Let AI write and execute tests naturally
"Test the login flow with invalid credentials and verify error messages"๐ Data Collection
// Automated data extraction from complex SPAs
"Navigate to the dashboard, extract all user metrics, and save as JSON"๐ Quality Assurance
// Visual regression testing with AI assistance
"Compare the current homepage with the baseline and highlight differences"Usage Examples
Basic Web Testing
// Launch a browser
const browser = await launchBrowser({ browserType: 'chromium', headless: true });
// Create a new page
const page = await newPage({ browserId: browser.id, url: 'https://example.com' });
// Take a screenshot
await screenshot({ pageId: page.id, path: 'example.png' });
// Click on an element
await click({ pageId: page.id, selector: 'button#submit' });
// Type text
await typeText({ pageId: page.id, selector: 'input[name="email"]', text: 'test@example.com' });
// Get text content
const text = await getText({ pageId: page.id, selector: 'h1' });Running Tests
Run the included Playwright tests:
# Run all tests
npm test
# Run tests in headed mode (visible browser)
npm run test:headed
# Debug tests
npm run test:debugDevelopment
Watch Mode
For development with automatic restarts:
npm run devAdding New Tools
To add new MCP tools, edit `src/index.js` and:
1. Add the tool definition to the `tools` array in `ListToolsRequestSchema` handler
2. Add a case in the `CallToolRequestSchema` handler
3. Implement the tool method in the `PlaywrightMCPServer` class
Environment Variables
- `PLAYWRIGHT_HEADLESS`: Set to `false` to run browsers in headed mode
- `PLAYWRIGHT_SLOWMO`: Add delay between operations (milliseconds)
Docker Environment
The Docker container includes:
- Node.js 18
- All Playwright browsers pre-installed
- System dependencies for browser operation
- Optimized for headless operation
Troubleshooting
Browser Installation Issues
npx playwright install --with-depsPermission Issues (Linux/Docker)
# Add to Dockerfile if needed
RUN groupadd -r pwuser && useradd -r -g pwuser -G audio,video pwuser
USER pwuserMemory Issues
For large-scale testing, increase Docker memory limits:
docker run --memory=2g --cpus=2 mcp-playwright๐ฅ Demo & Tutorials
- **๐บ Getting Started Video** - 5-minute setup guide
- **๐ Complete Tutorial Series** - From basics to advanced
- **๐ฎ Interactive Playground** - Try it live
๐ Success Stories
> *"MCP Playwright reduced our testing automation setup time from weeks to hours. The AI integration is game-changing!"*
> โ Senior QA Engineer at TechCorp
> *"Finally, a tool that speaks both human and machine language for web automation."*
> โ DevOps Lead at StartupXYZ
๐ค Contributing
We love contributions! See our Contributing Guide for details.
๐ฏ Ways to Contribute
- ๐ Bug Reports: Help us squash bugs
- ๐ก Feature Requests: Share your ideas
- ๐ Documentation: Improve our docs
- ๐งช Testing: Add test coverage
- ๐จ Examples: Create usage examples
๐ Project Stats
โญ GitHub Stars: 150+ (and growing!)
๐ฆ NPM Downloads: 1000+ monthly
๐งช Test Coverage: 95%
๐ข Enterprise Users: 50+
๐ Global Community: 25+ countries๐ What's Next?
- ๐ค Enhanced AI Integration: GPT-4 powered test generation
- ๐ฑ Mobile Testing: React Native and Flutter support
- ๐ CI/CD Plugins: GitHub Actions, Jenkins, GitLab
- ๐ Advanced Analytics: Test insights and reporting dashboard
๐ Support the Project
If MCP Playwright helps your team, consider:
- โญ Starring this repository
- ๐ฆ Sharing on social media
- ๐ฌ Joining our Discord community
- โ Sponsoring development
License
MIT License - see LICENSE file for details.
Frequently asked questions
What is MCP-Playwright-Server?
MCP-Playwright-Server is What is MCP Playwright? A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server can be used with Claude Desktop and other MCP-compatible clients to perform web testing, scraping, and automation tasks.
How do I install MCP-Playwright-Server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is MCP-Playwright-Server open source?
Yes โ it is hosted on GitHub at https://github.com/MostafaRaafat91/MCP-Playwright-Server.
Related MCP tools
Model Context Protocol Servers
Pre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, CoPilot, and Hermes Agent โ fewer tokens, fewer tool calls, 100% local
an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM
The easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:
The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP