Mcp Server Playwright
MCP server for browser automation using Playwright
Overview
What is MCP-Server-Playwright?
MCP-Server-Playwright is an innovative server designed for browser automation using Playwright, a powerful library that enables developers to automate web applications across various browsers. This project is particularly useful for testing and web scraping, allowing users to simulate user interactions and gather data efficiently.
Features of MCP-Server-Playwright
- Cross-Browser Support: MCP-Server-Playwright supports multiple browsers, including Chrome, Firefox, and Safari, ensuring that your automation scripts can run seamlessly across different environments.
- Easy Setup: The server is designed for quick installation and configuration, making it accessible for developers of all skill levels.
- Robust API: It provides a comprehensive API that allows for detailed control over browser interactions, including navigation, element selection, and event handling.
- Headless Mode: Users can run tests in headless mode, which is ideal for CI/CD pipelines and environments where a graphical interface is not available.
- Extensive Documentation: The project comes with thorough documentation, making it easier for developers to get started and utilize all features effectively.
How to Use MCP-Server-Playwright
- Installation: Begin by cloning the repository from GitHub:
git clone https://github.com/Automata-Labs-team/MCP-Server-Playwright.git cd MCP-Server-Playwright
- Dependencies: Install the necessary dependencies using npm or yarn:
npm install
- Running the Server: Start the server with the following command:
npm start
- Creating Automation Scripts: Write your automation scripts using the provided API. Here’s a simple example to navigate to a webpage:
const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch(); const page = await browser.newPage(); await page.goto('https://example.com'); await browser.close(); })();
- Testing and Debugging: Utilize the built-in debugging tools to test your scripts and ensure they perform as expected.
Frequently Asked Questions
What is Playwright?
Playwright is an open-source automation library developed by Microsoft that allows developers to automate web applications across different browsers. It supports modern web app features and provides a rich API for browser interaction.
Can I use MCP-Server-Playwright for web scraping?
Yes, MCP-Server-Playwright is well-suited for web scraping tasks. Its ability to automate browser actions makes it easy to extract data from web pages.
Is MCP-Server-Playwright free to use?
Absolutely! MCP-Server-Playwright is open-source and available for anyone to use, modify, and distribute under the MIT license.
How can I contribute to the project?
Contributions are welcome! You can contribute by submitting issues, feature requests, or pull requests on the GitHub repository. Please refer to the contribution guidelines in the documentation for more details.
Where can I find the documentation?
The documentation for MCP-Server-Playwright is available in the repository. You can access it directly here.
Details
<a href="https://glama.ai/mcp/servers/9q4zck8po5"><img width="380" height="200" src="https://glama.ai/mcp/servers/9q4zck8po5/badge" alt="MCP-Server-Playwright MCP server" /></a>
Table of Contents
Features
- 🌐 Full browser automation capabilities
- 📸 Screenshot capture of entire pages or specific elements
- 🖱️ Comprehensive web interaction (navigation, clicking, form filling)
- 📊 Console log monitoring
- 🔧 JavaScript execution in browser context
Installation
Installing via Smithery
To install MCP Server Playwright for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @automatalabs/mcp-server-playwright --client claude
You can install the package using either npx or mcp-get:
Using npx:
npx @automatalabs/mcp-server-playwright install
This command will:
- Check your operating system compatibility (Windows/macOS)
- Create or update the Claude configuration file
- Configure the Playwright server integration
The configuration file will be automatically created/updated at:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Using mcp-get:
npx @michaellatman/mcp-get@latest install @automatalabs/mcp-server-playwright
Configuration
The installation process will automatically add the following configuration to your Claude config file:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@automatalabs/mcp-server-playwright"]
}
}
}
Using with Cursor
You can also use MCP Server Playwright with Cursor, an AI-powered code editor. To enable browser automation in Cursor via MCP:
-
Install Playwright browsers (if not already):
npx playwright install
-
Install MCP Server Playwright for Cursor using Smithery:
npx -y @smithery/cli install @automatalabs/mcp-server-playwright --client cursor
-
Configuration file setup:
If you do not use Claude, the configuration file (claude_desktop_config.json
) may not be created automatically.- On Windows, create a folder named
Claude
in%APPDATA%
(usuallyC:\Users\<YourName>\AppData\Roaming\Claude
). - Inside that folder, create a file named
claude_desktop_config.json
with the following content:
{ "serverPort": 3456 }
- On Windows, create a folder named
-
Follow the remaining steps in the Installation section above to complete the setup.
Now, you can use all the browser automation tools provided by MCP Server Playwright directly from Cursor’s AI features, such as web navigation, screenshot capture, and JavaScript execution.
Note: Make sure you have Node.js installed and
npx
available in your system PATH.
Components
Tools
browser_navigate
Navigate to any URL in the browser
{
"url": "https://stealthbrowser.cloud"
}
browser_screenshot
Capture screenshots of the entire page or specific elements
{
"name": "screenshot-name", // required
"selector": "#element-id", // optional
"fullPage": true // optional, default: false
}
browser_click
Click elements on the page using CSS selector
{
"selector": "#button-id"
}
browser_click_text
Click elements on the page by their text content
{
"text": "Click me"
}
browser_hover
Hover over elements on the page using CSS selector
{
"selector": "#menu-item"
}
browser_hover_text
Hover over elements on the page by their text content
{
"text": "Hover me"
}
browser_fill
Fill out input fields
{
"selector": "#input-field",
"value": "Hello World"
}
browser_select
Select an option in a SELECT element using CSS selector
{
"selector": "#dropdown",
"value": "option-value"
}
browser_select_text
Select an option in a SELECT element by its text content
{
"text": "Choose me",
"value": "option-value"
}
browser_evaluate
Execute JavaScript in the browser console
{
"script": "document.title"
}
Resources
-
Console Logs (
console://logs
)- Access browser console output in text format
- Includes all console messages from the browser
-
Screenshots (
screenshot://<n>
)- Access PNG images of captured screenshots
- Referenced by the name specified during capture
License
This project is licensed under the MIT License - see the LICENSE file for details.
Server Config
{
"mcpServers": {
"mcp-server-playwright": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/metorial/mcp-container--automata-labs-team--mcp-server-playwright--mcp-server-playwright",
"node dist/index.js"
],
"env": {}
}
}
}