Skip to main content
Glama

MCP Playwright Server

MCP Playwright TypeScript Docker

๐Ÿš€ AI-Powered Browser Automation for Claude Desktop

Bridge the gap between AI and web automation with this revolutionary MCP server

npm version Downloads License: MIT

๐ŸŽฏ 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 start

Installation

Local Development

  1. Install dependencies:

npm install
  1. Install Playwright browsers:

npm run install:browsers
  1. Start the MCP server:

npm start

Docker Deployment

  1. Build the Docker image:

npm run docker:build
  1. Run the container:

npm run docker:run

Configuration 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:debug

Development

Watch Mode

For development with automatic restarts:

npm run dev

Adding 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-deps

Permission Issues (Linux/Docker)

# Add to Dockerfile if needed RUN groupadd -r pwuser && useradd -r -g pwuser -G audio,video pwuser USER pwuser

Memory Issues

For large-scale testing, increase Docker memory limits:

docker run --memory=2g --cpus=2 mcp-playwright

๐ŸŽฅ Demo & Tutorials

๐Ÿ† 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.


Built with โค๏ธ by

Making AI-powered automation accessible to everyone

๐ŸŒ Website โ€ข ๐Ÿฆ Twitter โ€ข ๐Ÿ’ผ LinkedIn

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/MostafaRaafat91/MCP-Playwright-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server