MCP Server Playwright
Enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment
Enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment
A Model Context Protocol server that provides browser automation capabilities using Playwright Enable LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment
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:
1. Check your operating system compatibility (Windows/macOS)
2. Create or update the Claude configuration file
3. Configure the Playwright server integration
The configuration file will be automatically created/updated at:
- Windows: %APPDATA%Claudeclaude_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
The installation process will automatically add the following configuration to your Claude config file:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@automatalabs/mcp-server-playwright"]
}
}
}
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"
}
console://logs
)Includes all console messages from the browser
Screenshots (screenshot://<n>
)
This project is licensed under the MIT License - see the LICENSE file for details.
[
{
"description": "Navigate to a URL",
"inputSchema": {
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "browser_navigate"
},
{
"description": "Take a screenshot of the current page or a specific element",
"inputSchema": {
"properties": {
"fullPage": {
"default": false,
"description": "Take a full page screenshot (default: false)",
"type": "boolean"
},
"name": {
"description": "Name for the screenshot",
"type": "string"
},
"selector": {
"description": "CSS selector for element to screenshot",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "browser_screenshot"
},
{
"description": "Click an element on the page using CSS selector",
"inputSchema": {
"properties": {
"selector": {
"description": "CSS selector for element to click",
"type": "string"
}
},
"required": [
"selector"
],
"type": "object"
},
"name": "browser_click"
},
{
"description": "Click an element on the page by its text content",
"inputSchema": {
"properties": {
"text": {
"description": "Text content of the element to click",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "browser_click_text"
},
{
"description": "Fill out an input field",
"inputSchema": {
"properties": {
"selector": {
"description": "CSS selector for input field",
"type": "string"
},
"value": {
"description": "Value to fill",
"type": "string"
}
},
"required": [
"selector",
"value"
],
"type": "object"
},
"name": "browser_fill"
},
{
"description": "Select an element on the page with Select tag using CSS selector",
"inputSchema": {
"properties": {
"selector": {
"description": "CSS selector for element to select",
"type": "string"
},
"value": {
"description": "Value to select",
"type": "string"
}
},
"required": [
"selector",
"value"
],
"type": "object"
},
"name": "browser_select"
},
{
"description": "Select an element on the page with Select tag by its text content",
"inputSchema": {
"properties": {
"text": {
"description": "Text content of the element to select",
"type": "string"
},
"value": {
"description": "Value to select",
"type": "string"
}
},
"required": [
"text",
"value"
],
"type": "object"
},
"name": "browser_select_text"
},
{
"description": "Hover an element on the page using CSS selector",
"inputSchema": {
"properties": {
"selector": {
"description": "CSS selector for element to hover",
"type": "string"
}
},
"required": [
"selector"
],
"type": "object"
},
"name": "browser_hover"
},
{
"description": "Hover an element on the page by its text content",
"inputSchema": {
"properties": {
"text": {
"description": "Text content of the element to hover",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "browser_hover_text"
},
{
"description": "Execute JavaScript in the browser console",
"inputSchema": {
"properties": {
"script": {
"description": "JavaScript code to execute",
"type": "string"
}
},
"required": [
"script"
],
"type": "object"
},
"name": "browser_evaluate"
}
]