Playwright
CAUTIONgrade C · trust 77/100Playwright Model Context Protocol Server - Tool to automate Browsers and APIs in Claude Desktop, Cline, Cursor IDE and More 🔌
Overview
From the repository's own README, as read at the audited commit.
<div align="center" markdown="1"> <table> <tr> <td align="center" valign="middle"> <a href="https://mseep.ai/app/executeautomation-mcp-playwright"> <img src="https://mseep.net/pr/executeautomation-mcp-playwright-badge.png" alt="MseeP.ai Security Assessment Badge" height="80"/> </a> </td> </tr> <tr> <td align="center"><sub>MseeP.ai Security Assessment</sub></td> </tr> </table></div><hr># Playwright MCP Server 🎭[](https://archestra.ai/mcp-catalog/executeautomation__mcp-playwright)[](https://smithery.ai/server/@executeautomation/playwright-mcp-server)A Model Context Protocol server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages, take screenshots, generate test code, web scrapes the page and execute JavaScript in a real browser environment.<a href="https://glama.ai/mcp/servers/yh4lgtwgbe"><img width="380" height="200" src="https://glama.ai/mcp/servers/yh4lgtwgbe/badge" alt="mcp-playwright MCP server" /></a>## ✨ What's New in v1.0.10### 🎯 Device Emulation with 143 Real Device Presets!Test your web applications on **real device profiles** with a simple command:```javascript// Test on iPhone 13 with automatic user-agent, touch support, and device pixel ratioawait playwright_resize({ device: "iPhone 13" });// Switch to iPad with landscape orientationawait playwright_resize({ device: "iPad Pro 11", orientation: "landscape" });// Test desktop viewawait playwright_resize({ device: "Desktop Chrome" });```**Natural Language Support for AI Assistants:**- "Test on iPhone 13" - "Switch to iPad view"- "Rotate to landscape"**Supports 143 devices:** iPhone, iPad, Pixel, Galaxy, and Desktop browsers with proper emulation of viewport, user-agent, touch events, and device pixel ratios.📚 [Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add playwright-mcp-server -- npx -y @executeautomation/[email protected]
{
"mcpServers": {
"playwright-mcp-server": {
"command": "npx",
"args": [
"-y",
"@executeautomation/[email protected]"
]
}
}
}Exposed tools (33) 22 read · 9 write · 2 destructive
Blast radius: 2 tools can delete or overwrite. An agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
clear_codegen_session | destructive | Clear a code generation session without generating a test |
end_codegen_session | read | End a code generation session and generate the test file |
get_codegen_session | read | Get information about a code generation session |
playwright_assert_response | read | Wait for and validate a previously initiated HTTP response wait operation. |
playwright_click | read | Click an element on the page |
playwright_click_and_switch_tab | read | Click a link and switch to the newly opened tab |
playwright_close | read | Close the browser and release all resources |
playwright_console_logs | read | Retrieve console logs from the browser with filtering options |
playwright_custom_user_agent | write | Set a custom User Agent for the browser |
playwright_delete | destructive | Perform an HTTP DELETE request |
playwright_drag | read | Drag an element to a target location |
playwright_evaluate | write | Execute JavaScript in the browser console |
playwright_expect_response | write | Ask Playwright to start waiting for a HTTP response. This tool initiates the wait operation but does not wait for its completion. |
playwright_fill | read | fill out an input field |
playwright_get | read | Perform an HTTP GET request |
playwright_get_visible_html | read | Get the HTML content of the current page. By default, all <script> tags are removed from the output unless removeScripts is explicitly set to false. |
playwright_get_visible_text | read | Get the visible text content of the current page |
playwright_go_back | read | Navigate back in browser history |
playwright_go_forward | read | Navigate forward in browser history |
playwright_hover | read | Hover an element on the page |
playwright_iframe_click | read | Click an element in an iframe on the page |
playwright_iframe_fill | read | Fill an element in an iframe on the page |
playwright_navigate | read | Navigate to a URL |
playwright_patch | write | Perform an HTTP PATCH request |
playwright_post | write | Perform an HTTP POST request |
playwright_press_key | read | Press a keyboard key |
playwright_put | write | Perform an HTTP PUT request |
playwright_resize | read | Resize the browser viewport using manual dimensions or device presets. Supports 143+ device presets including iPhone, iPad, Android devices, and desktop browsers with proper user-agent and touch emulation. |
playwright_save_as_pdf | write | Save the current page as a PDF file |
playwright_screenshot | read | Take a screenshot of the current page or a specific element |
playwright_select | read | Select an element on the page with Select tag |
playwright_upload_file | write | Upload a file to an input[type= |
start_codegen_session | write | Start a new code generation session to record Playwright actions |
Details
- Source
- executeautomation/mcp-playwright
- npm
@executeautomation/playwright-mcp-server@1.0.12- Transports
- sse · stdio
- License
- MIT
- Stars
- 5,644 · pushed 274d ago
Trust audit
Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (1 observation(s))
- Shell
- declared (2 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (21)
token: 'your-bearer-token-here'
token: 'your-bearer-token-here'
token: 'your-bearer-token-here'
token: 'this-will-be-ignored',
clear_codegen_session, playwright_delete
.nojekyll
OUTPUT_DIR: path.join(__dirname, '../../tests/generated'),
import { GetRequestTool, PostRequestTool, PutRequestTool, PatchRequestTool, DeleteRequestTool } from '../../../tools/api/requests.js';import { ToolContext } from '../../../tools/common/types.js';import { DragTool, PressKeyTool } from '../../../tools/browser/interaction.js';import { ToolContext } from '../../../tools/common/types.js';proxy_pass http://127.0.0.1:8931;
@mdx-js/react, clsx, gh-pages, prism-react-renderer, react, react-dom, typescript
@playwright/test, cors, express, mcp-evals, @types/cors, @types/express, @types/jest, @types/node
The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can load environment variables by prefixing the npx command. Full documentatio
Perform POST operation for the URL https://api.restful-api.dev/objects with Bearer token "your-token-here" set in the headers
docs/docs/playwright-api/img/api-response.png
docs/docs/playwright-api/img/playwright-api.png
docs/docs/playwright-web/img/console-log.gif
docs/docs/playwright-web/img/mcp-result.png
docs/docs/playwright-web/img/standalone.png
Gates applied: no_behavioural_pass.
Audited 2026-09-13 · audit v0.4.0 · source sha 61fd8a85d50a · full audit: observations/trust-audit/mcp-server/executeautomation__playwright-2.json · Report an issue or request a re-scan
Audit history
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-13 | 61fd8a85d50a | CAUTION | C | 77 | first audit |
Also audited
Servers with a similar trust profile.
Questions
What is the Playwright MCP server?
Playwright Model Context Protocol Server - Tool to automate Browsers and APIs in Claude Desktop, Cline, Cursor IDE and More 🔌
What tools does Playwright expose?
33 in total: 22 read-only, 9 that write, and 2 that can delete or overwrite (clear_codegen_session, playwright_delete). Every one is listed on this page with its risk.
Is Playwright safe to connect to an agent?
With care. The audit graded it C (77/100) and found 21 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does Playwright need?
No credential environment variables were found in its source, so it appears to need none.
How does Playwright run?
It speaks sse and stdio, so it runs as a local process your client starts. It is published on npm as @executeautomation/playwright-mcp-server at 1.0.12.
How current is this page?
The grade is for one exact copy of the source (61fd8a85d50a), read on 2026-09-13. The repository is watched and re-audited when it changes.
Provenance: OBSERVED · read 2026-09-13 · job trust-audit-2026-09-13