mcp-playwright
Warp,开发者的AI终端
剧作家 MCP 服务器🎭
一个使用 Playwright 提供浏览器自动化功能的模型上下文协议 (MLM) 服务器。该服务器使 LLM 能够与网页交互、截取屏幕截图、生成测试代码、从网页中提取网页数据,并在真实的浏览器环境中执行 JavaScript。
截屏

Related MCP server: Puppeteer MCP Server
文档| API 参考
安装
您可以使用 npm、mcp-get 或 Smithery 安装该软件包:
使用 npm:
npm install -g @executeautomation/playwright-mcp-server使用 mcp-get:
npx @michaellatman/mcp-get@latest install @executeautomation/playwright-mcp-server使用 Smithery
要通过Smithery自动为 Claude Desktop 安装 Playwright MCP:
npx @smithery/cli install @executeautomation/playwright-mcp-server --client claude在 VS Code 中安装
使用以下按钮之一在 VS Code 中安装 Playwright MCP 服务器:
或者,您可以使用 VS Code CLI 安装 Playwright MCP 服务器:
# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'# For VS Code Insiders
code-insiders --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'安装后,ExecuteAutomation Playwright MCP 服务器将可与 VS Code 中的 GitHub Copilot 代理一起使用。
使用 Playwright Server 的配置
以下是使用 Playwright 服务器的 Claude Desktop 配置:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"]
}
}
}测试
该项目使用 Jest 进行测试。测试位于src/__tests__目录中。
运行测试
您可以使用以下命令之一运行测试:
# Run tests using the custom script (with coverage)
node run-tests.cjs
# Run tests using npm scripts
npm test # Run tests without coverage
npm run test:coverage # Run tests with coverage
npm run test:custom # Run tests with custom script (same as node run-tests.cjs)测试覆盖率报告将在coverage目录中生成。
运行评估
evals 包会加载一个 mcp 客户端,然后运行 index.ts 文件,因此测试之间无需重新构建。您可以通过在 npx 命令前添加前缀来加载环境变量。完整文档可在此处找到。
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/codegen/index.ts星史
Available Tools
32 toolsclear_codegen_sessionC
Clear a code generation session without generating a test
Inputs: sessionId (required).
end_codegen_sessionC
End a code generation session and generate the test file
Inputs: sessionId (required).
get_codegen_sessionC
Get information about a code generation session
Inputs: sessionId (required).
playwright_assert_responseB
Wait for and validate a previously initiated HTTP response wait operation.
Inputs: id (required), value.
playwright_clickC
Click an element on the page
Inputs: selector (required).
playwright_click_and_switch_tabA
Click a link and switch to the newly opened tab
Inputs: selector (required).
playwright_closeB
Close the browser and release all resources
Inputs: no named parameters.
playwright_console_logsC
Retrieve console logs from the browser with filtering options
Inputs: clear, limit, search, type.
playwright_custom_user_agentC
Set a custom User Agent for the browser
Inputs: userAgent (required).
playwright_deleteC
Perform an HTTP DELETE request
Inputs: url (required).
playwright_dragC
Drag an element to a target location
Inputs: sourceSelector (required), targetSelector (required).
playwright_evaluateC
Execute JavaScript in the browser console
Inputs: script (required).
playwright_expect_responseB
Ask Playwright to start waiting for a HTTP response. This tool initiates the wait operation but does not wait for its completion.
Inputs: id (required), url (required).
playwright_fillC
fill out an input field
Inputs: selector (required), value (required).
playwright_getC
Perform an HTTP GET request
Inputs: url (required).
playwright_get_visible_htmlC
Get the HTML content of the current page. By default, all tags are removed from the output unless removeScripts is explicitly set to false.
Inputs: cleanHtml, maxLength, minify, removeComments, +4 more.
playwright_get_visible_textB
Get the visible text content of the current page
Inputs: no named parameters.
playwright_go_backB
Navigate back in browser history
Inputs: no named parameters.
playwright_go_forwardA
Navigate forward in browser history
Inputs: no named parameters.
playwright_hoverC
Hover an element on the page
Inputs: selector (required).
playwright_iframe_clickC
Click an element in an iframe on the page
Inputs: iframeSelector (required), selector (required).
playwright_iframe_fillC
Fill an element in an iframe on the page
Inputs: iframeSelector (required), selector (required), value (required).
playwright_patchC
Perform an HTTP PATCH request
Inputs: url (required), value (required).
playwright_postC
Perform an HTTP POST request
Inputs: url (required), value (required), headers, token.
playwright_press_keyC
Press a keyboard key
Inputs: key (required), selector.
playwright_putC
Perform an HTTP PUT request
Inputs: url (required), value (required).
playwright_save_as_pdfC
Save the current page as a PDF file
Inputs: outputPath (required), filename, format, margin, +1 more.
playwright_screenshotC
Take a screenshot of the current page or a specific element
Inputs: name (required), downloadsDir, fullPage, height, +4 more.
playwright_selectC
Select an element on the page with Select tag
Inputs: selector (required), value (required).
playwright_upload_fileC
Upload a file to an input[type='file'] element on the page
Inputs: filePath (required), selector (required).
start_codegen_sessionC
Start a new code generation session to record Playwright actions
Inputs: options (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 32 tools
Most tools have distinct purposes, with clear separation between navigation, interaction, HTTP requests, and code generation functions. However, some overlap exists between playwright_click and playwright_iframe_click, and between playwright_fill and playwright_iframe_fill, which could cause minor confusion about when to use the iframe variants versus regular versions.
Excellent naming consistency throughout. All tools follow a clear snake_case pattern with 'playwright_' prefix for browser operations and descriptive verb_noun combinations. The three codegen tools also follow a consistent pattern with 'codegen_session' suffix.
32 tools is quite large for an MCP server, bordering on heavy. While Playwright is a comprehensive browser automation library, this many tools may overwhelm agents and could potentially be consolidated (e.g., HTTP methods could be a single tool with method parameter).
The tool surface provides comprehensive coverage of Playwright's core functionality including navigation, element interaction, iframe handling, HTTP requests, debugging (console logs), file operations, PDF/screenshot generation, and code generation. No obvious gaps exist for typical browser automation workflows.
Maintenance
Related MCP Connectors
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Cloud browser, web extraction, screenshots, and remote CDP tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.8-
- AlicenseNot gradedqualityDmaintenanceA 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.19Apache 2.0
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Puppeteer, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.728,579 npm1MIT
- 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.3113,875 npmMIT