Playwright MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Playwright MCPnavigate to https://example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Playwright MCP
A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.
Key Features
Fast and lightweight: Uses Playwright's accessibility tree, not pixel-based input.
LLM-friendly: No vision models needed, operates purely on structured data.
Deterministic tool application: Avoids ambiguity common with screenshot-based approaches.
Use Cases
Web navigation and form-filling
Data extraction from structured content
Automated testing driven by LLMs
General-purpose browser interaction for agents
Example config
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}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":["@playwright/mcp@latest"]}'# For VS Code Insiders
code-insiders --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'After installation, the Playwright MCP server will be available for use with your GitHub Copilot agent in VS Code.
User data directory
Playwright MCP will launch Chrome browser with the new profile, located at
- `%USERPROFILE%\AppData\Local\ms-playwright\mcp-chrome-profile` on Windows
- `~/Library/Caches/ms-playwright/mcp-chrome-profile` on macOS
- `~/.cache/ms-playwright/mcp-chrome-profile` on LinuxAll the logged in information will be stored in that profile, you can delete it between sessions if you'dlike to clear the offline state.
Running headless browser (Browser without GUI).
This mode is useful for background or batch operations.
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--headless"
]
}
}
}Running headed browser on Linux w/o DISPLAY
When running headed browser on system w/o display or from worker processes of the IDEs, you can run Playwright in a client-server manner. You'll run the Playwright server from environment with the DISPLAY
npx playwright run-serverAnd then in MCP config, add following to the env:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
],
"env": {
// Use the endpoint from the output of the server above.
"PLAYWRIGHT_WS_ENDPOINT": "ws://localhost:<port>/"
}
}
}
}Tool Modes
The tools are available in two modes:
Snapshot Mode (default): Uses accessibility snapshots for better performance and reliability
Vision Mode: Uses screenshots for visual-based interactions
To use Vision Mode, add the --vision flag when starting the server:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--vision"
]
}
}
}Vision Mode works best with the computer use models that are able to interact with elements using X Y coordinate space, based on the provided screenshot.
Programmatic usage with custom transports
import { createServer } from "@playwright/mcp";
// ...
const server = createServer({
launchOptions: { headless: true },
});
transport = new SSEServerTransport("/messages", res);
server.connect(transport);Snapshot Mode
The Playwright MCP provides a set of tools for browser automation. Here are all available tools:
browser_navigate
Description: Navigate to a URL
Parameters:
url(string): The URL to navigate to
browser_go_back
Description: Go back to the previous page
Parameters: None
browser_go_forward
Description: Go forward to the next page
Parameters: None
browser_click
Description: Perform click on a web page
Parameters:
element(string): Human-readable element description used to obtain permission to interact with the elementref(string): Exact target element reference from the page snapshot
browser_hover
Description: Hover over element on page
Parameters:
element(string): Human-readable element description used to obtain permission to interact with the elementref(string): Exact target element reference from the page snapshot
browser_drag
Description: Perform drag and drop between two elements
Parameters:
startElement(string): Human-readable source element description used to obtain permission to interact with the elementstartRef(string): Exact source element reference from the page snapshotendElement(string): Human-readable target element description used to obtain permission to interact with the elementendRef(string): Exact target element reference from the page snapshot
browser_type
Description: Type text into editable element
Parameters:
element(string): Human-readable element description used to obtain permission to interact with the elementref(string): Exact target element reference from the page snapshottext(string): Text to type into the elementsubmit(boolean): Whether to submit entered text (press Enter after)
browser_select_option
Description: Select option in a dropdown
Parameters:
element(string): Human-readable element description used to obtain permission to interact with the elementref(string): Exact target element reference from the page snapshotvalues(array): Array of values to select in the dropdown.
browser_press_key
Description: Press a key on the keyboard
Parameters:
key(string): Name of the key to press or a character to generate, such asArrowLeftora
browser_snapshot
Description: Capture accessibility snapshot of the current page (better than screenshot)
Parameters: None
browser_save_as_pdf
Description: Save page as PDF
Parameters: None
browser_wait
Description: Wait for a specified time in seconds
Parameters:
time(number): The time to wait in seconds (capped at 10 seconds)
browser_close
Description: Close the page
Parameters: None
Vision Mode
Vision Mode provides tools for visual-based interactions using screenshots. Here are all available tools:
browser_navigate
Description: Navigate to a URL
Parameters:
url(string): The URL to navigate to
browser_go_back
Description: Go back to the previous page
Parameters: None
browser_go_forward
Description: Go forward to the next page
Parameters: None
browser_screenshot
Description: Capture screenshot of the current page
Parameters: None
browser_move_mouse
Description: Move mouse to specified coordinates
Parameters:
x(number): X coordinatey(number): Y coordinate
browser_click
Description: Click at specified coordinates
Parameters:
x(number): X coordinate to click aty(number): Y coordinate to click at
browser_drag
Description: Perform drag and drop operation
Parameters:
startX(number): Start X coordinatestartY(number): Start Y coordinateendX(number): End X coordinateendY(number): End Y coordinate
browser_type
Description: Type text at specified coordinates
Parameters:
text(string): Text to typesubmit(boolean): Whether to submit entered text (press Enter after)
browser_press_key
Description: Press a key on the keyboard
Parameters:
key(string): Name of the key to press or a character to generate, such asArrowLeftora
browser_save_as_pdf
Description: Save page as PDF
Parameters: None
browser_wait
Description: Wait for a specified time in seconds
Parameters:
time(number): The time to wait in seconds (capped at 10 seconds)
browser_close
Description: Close the page
Parameters: None
Related MCP server: Puppeteer MCP Server
AZTP - Guild Generate Identity and Requirement
Environment
Setup environment (.env) with keyValue of MCP_NAME and AZTP_API_KEY
Where to get AZTP Api Key
Register at https://www.astha.ai/
Generate Key
For get the FREE identity make sure to add your desire domain. And follow the process to get verified.
Set you domain as default.
How to run
npm install npm run build npx ts-node lib/program.js
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.3219,4805,633MIT
- Alicense-qualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.18Apache 2.0
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, generate test code, scrape web content, and execute JavaScript in real browser environments.3119,480MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, generate test code, scrape web content, and execute JavaScript in a real browser environment.3219,480MIT
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
MCP (Model Context Protocol) server for Appwrite
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/AmokOrg/playwright-mcp-aztp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server