← MCP servers · executeautomation

Playwright

CAUTIONgrade C · trust 77/100

Playwright 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 🎭[![Trust Score](https://archestra.ai/mcp-catalog/api/badge/quality/executeautomation/mcp-playwright)](https://archestra.ai/mcp-catalog/executeautomation__mcp-playwright)[![smithery badge](https://smithery.ai/badge/@executeautomation/playwright-mcp-server)](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-code
claude mcp add playwright-mcp-server -- npx -y @executeautomation/[email protected]
claude-desktop
{
  "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.

ToolRiskDescription
clear_codegen_sessiondestructiveClear a code generation session without generating a test
end_codegen_sessionreadEnd a code generation session and generate the test file
get_codegen_sessionreadGet information about a code generation session
playwright_assert_responsereadWait for and validate a previously initiated HTTP response wait operation.
playwright_clickreadClick an element on the page
playwright_click_and_switch_tabreadClick a link and switch to the newly opened tab
playwright_closereadClose the browser and release all resources
playwright_console_logsreadRetrieve console logs from the browser with filtering options
playwright_custom_user_agentwriteSet a custom User Agent for the browser
playwright_deletedestructivePerform an HTTP DELETE request
playwright_dragreadDrag an element to a target location
playwright_evaluatewriteExecute JavaScript in the browser console
playwright_expect_responsewriteAsk Playwright to start waiting for a HTTP response. This tool initiates the wait operation but does not wait for its completion.
playwright_fillreadfill out an input field
playwright_getreadPerform an HTTP GET request
playwright_get_visible_htmlreadGet 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_textreadGet the visible text content of the current page
playwright_go_backreadNavigate back in browser history
playwright_go_forwardreadNavigate forward in browser history
playwright_hoverreadHover an element on the page
playwright_iframe_clickreadClick an element in an iframe on the page
playwright_iframe_fillreadFill an element in an iframe on the page
playwright_navigatereadNavigate to a URL
playwright_patchwritePerform an HTTP PATCH request
playwright_postwritePerform an HTTP POST request
playwright_press_keyreadPress a keyboard key
playwright_putwritePerform an HTTP PUT request
playwright_resizereadResize 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_pdfwriteSave the current page as a PDF file
playwright_screenshotreadTake a screenshot of the current page or a specific element
playwright_selectreadSelect an element on the page with Select tag
playwright_upload_filewriteUpload a file to an input[type=
start_codegen_sessionwriteStart 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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (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)

MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
docs/docs/playwright-api/Examples.md:19
token: 'your-bearer-token-here'
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
docs/docs/playwright-api/Examples.md:26
token: 'your-bearer-token-here'
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
docs/docs/playwright-api/Examples.md:32
token: 'your-bearer-token-here'
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
docs/docs/playwright-api/Examples.md:88
token: 'this-will-be-ignored',
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
clear_codegen_session, playwright_delete
Why it matters. 2 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
docs/static/.nojekyll
.nojekyll
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/__tests__/codegen.test.ts:12
OUTPUT_DIR: path.join(__dirname, '../../tests/generated'),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/__tests__/tools/api/requests.test.ts:1
import { GetRequestTool, PostRequestTool, PutRequestTool, PatchRequestTool, DeleteRequestTool } from '../../../tools/api/requests.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/__tests__/tools/api/requests.test.ts:2
import { ToolContext } from '../../../tools/common/types.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/__tests__/tools/browser/advancedInteraction.test.ts:1
import { DragTool, PressKeyTool } from '../../../tools/browser/interaction.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/__tests__/tools/browser/advancedInteraction.test.ts:2
import { ToolContext } from '../../../tools/common/types.js';
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/docs/playwright-web/HTTP-SSE-Transport.mdx:646
proxy_pass http://127.0.0.1:8931;
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
docs/package.json
@mdx-js/react, clsx, gh-pages, prism-react-renderer, react, react-dom, typescript
Why it matters. 7 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@playwright/test, cors, express, mcp-evals, @types/cors, @types/express, @types/jest, @types/node
Why it matters. 12 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.credential_read · CWE-94, CWE-1427
README.md:299
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
Why it matters. asks the agent to read credentials
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
docs/docs/playwright-api/Examples.md:115
Perform POST operation for the URL https://api.restful-api.dev/objects with Bearer token "your-token-here" set in the headers
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOInventory / provenance · inv.oversize · CWE-1104
docs/docs/playwright-api/img/api-response.png
docs/docs/playwright-api/img/api-response.png
Why it matters. 1144445 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
docs/docs/playwright-api/img/playwright-api.png
docs/docs/playwright-api/img/playwright-api.png
Why it matters. 1516139 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
docs/docs/playwright-web/img/console-log.gif
docs/docs/playwright-web/img/console-log.gif
Why it matters. 18032689 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
docs/docs/playwright-web/img/mcp-result.png
docs/docs/playwright-web/img/mcp-result.png
Why it matters. 1472061 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
docs/docs/playwright-web/img/standalone.png
docs/docs/playwright-web/img/standalone.png
Why it matters. 3498859 bytes not read

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

DateSourceVerdictGradeScoreChange
2026-09-1361fd8a85d50aCAUTIONC77first 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