微信扫码
添加专属顾问
我要投稿
微软Playwright MCP服务器,为大型语言模型提供浏览器自动化的新利器。 核心内容: 1. Playwright MCP服务器的创新功能与优势 2. Playwright在现代Web应用测试中的角色 3. Playwright多浏览器支持、执行模式和调试工具详解
通过基于 Playwright 的 Claude MCP 服务器解锁大型语言模型的强大 Web 交互功能。这种创新的解决方案通过结构化的可访问性快照实现网页之间的LLMs无缝通信 - 无需屏幕截图或可视化模型 。
https://github.com/microsoft/playwright-mcp
https://www.npmjs.com/package/@playwright/mcp
Playwright
是由 Microsoft 开发的开源浏览器自动化工具,使测试人员和开发人员能够跨多个浏览器和平台自动与 Web 应用程序进行交互。与传统的自动化工具不同,Playwright
专为现代 Web 应用程序而设计,支持动态内容、实时交互,甚至网络监控,帮助团队更快、更高效地测试应用程序。
在现代软件开发中,自动化浏览器测试已变得不可或缺,可确保 Web 应用程序在不同的浏览器和环境之间平稳运行。如果您使用过 Playwright
,您就会了解它在自动化 Web 交互方面的强大功能。但是,当多个测试脚本、调试工具或自动化服务需要同时与同一个 Playwright
实例交互时,Playwright
多客户端协议 (MCP) 服务器将发挥作用。
Playwright
无缝支持 Chromium、Firefox 和 WebKit,确保与主要浏览器的兼容性。这意味着可以在不同的浏览器上执行单个测试脚本,从而减少冗余工作并确保一致的用户体验。
Playwright
可以在无头模式(无 UI)下运行以加速测试执行,使其成为 CI/CD 管道的理想选择。它还支持用于调试和交互式测试的 headed 模式,使开发人员能够直观地检查测试运行。
Playwright
的最大优势之一是它能够同时执行多个测试。并行执行减少了整体测试运行时间,使其成为需要频繁快速测试的大型应用程序的理想解决方案。
Playwright
包含内置工具,可显著简化调试失败测试的过程。它提供:
Playwright
支持广泛的用户交互,包括:
Playwright MCP 服务器是基于 Playwright 的 MCP 服务器,使测试人员和开发人员能够跨多个浏览器和平台自动与 Web 应用程序进行交互。此服务器允许大型语言模型 ()LLMs 通过结构化的辅助功能快照与 Web 页面进行交互,而无需依赖屏幕截图或视觉调整的模型。它提供以下核心功能:
非常适合自动化测试、数据抓取、SEO 竞争对手分析、AI 智能代理等。如果您希望 AI 更智能地处理 Web 任务或需要高效的自动化工具,请尝试 Playwright MCP Server。
在 光标设置 中,切换到 MCP 选项卡,单击右上角的 添加新的全局 MCP 服务器
按钮,然后输入以下配置:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp"
]
}
}
}
如果您不想全局启用它,请将上述配置添加到项目根目录中的 .cursor/mcp.json
文件中。
⚠️ 注意:官方文档建议使用 npx @playwright/mcp@latest
命令,但它在配置过程中可能会导致错误:
$ npx @playwright/mcp@latest
node:internal/modules/cjs/loader:646 throw e; ^
Error: Cannot find module '/Users/cnych/.npm/_npx/9833c18b2d85bc59/node_modules/yaml/dist/index.js' at createEsmNotFoundErr (node:internal/modules/cjs/loader:1285:15) at finalizeEsmResolution (node:internal/modules/cjs/loader:1273:15) at resolveExports (node:internal/modules/cjs/loader:639:14) at Module._findPath (node:internal/modules/cjs/loader:747:31) at Module._resolveFilename (node:internal/modules/cjs/loader:1234:27) at Module._load (node:internal/modules/cjs/loader:1074:27) at TracingChannel.traceSync (node:diagnostics_channel:315:14) at wrapModuleLoad (node:internal/modules/cjs/loader:217:24) at Module.require (node:internal/modules/cjs/loader:1339:12) at require (node:internal/modules/helpers:135:16) { code: 'MODULE_NOT_FOUND', path: '/Users/cnych/.npm/_npx/9833c18b2d85bc59/node_modules/yaml/package.json'}
将 npx @playwright/mcp@latest
替换为 npx @playwright/mcp
。
配置后,您应该会在 Cursor Settings 的 MCP 选项卡中看到 Playwright MCP 服务器已成功配置:
# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp"]}'
For VS Code Insiders
安装后,Playwright MCP 服务器将立即可供 VS Code 中的 GitHub Copilot 代理使用。
你可以向 args
添加参数来自定义浏览器:
--browser <browser>
: Options:--browser <browser>
:选项:chrome
、firefox
、webkit
、msedge
chrome-beta
、chrome-canary
、chrome-dev
msedge-beta
、msedge-canary
、msedge-dev
chrome
--cdp-endpoint <endpoint>
:连接到现有的 Chrome DevTools 协议端点--executable-path <path>
:指定自定义浏览器可执行文件路径--headless
:以 headless 模式运行(默认为 headed)--port <port>
:设置 SSE 传输侦听端口--user-data-dir <path>
: 自定义用户数据目录--vision
:开启截图交互模式Playwright MCP 在以下位置创建专用的浏览器配置文件:
%USERPROFILE%\AppData\Local\ms-playwright\mcp-chrome-profile
~/Library/Caches/ms-playwright/mcp-chrome-profile
~/.cache/ms-playwright/mcp-chrome-profile
在会话之间删除这些目录将清除浏览状态。
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--headless"
]
}
}
}
对于无头或 IDE 工作进程的 Linux 系统,您可以使用 SSE 传输启动服务器。首先,使用以下命令启动服务器:
npx @playwright/mcp --port 8931
然后配置 MCP 客户端:
{
"mcpServers": {
"playwright": {
"url": "http://localhost:8931/sse"
}
}
}
服务器运行并连接到代理后,代理可以调用 MCP 提供的特定工具来控制浏览器。可用工具取决于服务器是在快照模式还是图像模式下运行。
这是默认模式,使用辅助功能快照来实现最佳性能和可靠性。提供的 MCP 工具主要使用辅助功能树进行作。典型的工作流程包括:
browser_snapshot
获取辅助功能树的当前状态。browser_click
或 browser_type
等交互工具,提供目标元素的 ref。Playwright MCP 提供了一套用于浏览器自动化的工具。以下是所有可用的工具:
-browser_drag:拖放元素
- 参数:
startElement (string):要拖动的元素的描述
startRef (string):页面快照中的精确源元素引用
endElement (string):要放置到的目标元素的描述
endRef (string):页面快照中的精确目标元素引用
对于基于屏幕截图的视觉交互,请使用以下命令启用它:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp",
"--vision"
]
}
}
}
Vision 模式提供依赖于从屏幕截图中获取的坐标的 MCP 工具。典型的工作流程包括:
browser_screenshot
捕获当前视图。browser_click
或 browser_type
等交互工具。Vision Mode 提供了一套用于基于屏幕截图的视觉交互的工具。以下是所有可用的工具:
除了配置文件和通过 IDE 自动启动之外,Playwright MCP 还可以直接集成到您的 Node.js 应用程序中。这提供了对服务器设置和通信传输的更多控制。
import { createServer } from"@playwright/mcp";
// Import necessary transport classes, e.g., from '@playwright/mcp/lib/sseServerTransport';
// Or potentially implement your own transport mechanism.
asyncfunctionrunMyMCPServer() { // Create the MCP server instance const server = createServer({ // You can pass Playwright launch options here launchOptions: { headless: true, // other Playwright options... }, // You might specify other server options if available });
// Example using SSE transport (requires appropriate setup like an HTTP server) // This part is conceptual and depends on your specific server framework (e.g., Express, Node http) /* const http = require('http'); const { SSEServerTransport } = require('@playwright/mcp/lib/sseServerTransport'); // Adjust path as needed
const httpServer = http.createServer((req, res) => { if (req.url === '/messages' && req.method === 'GET') { res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', }); const transport = newSSEServerTransport("/messages", res); // Pass the response object server.connect(transport); // Connect the MCP server to this transport
req.on('close', () => {
// Handle client disconnect if necessary
server.disconnect(transport);
});
} else {
res.writeHead(404);
res.end();
}
});
httpServer.listen(8931, () => { console.log('MCP Server with SSE transport listening on port 8931'); }); */
// For simpler non-web transport, you might use other mechanisms // server.connect(yourCustomTransport);
console.log("Playwright MCP server started programmatically.");
// Keep the server running, handle connections, etc. // Add cleanup logic for server shutdown.}
这种自定义方法允许精细控制、自定义传输层(超越默认机制或 SSE),并将 MCP 功能直接嵌入到更大的应用程序或代理框架中。
Microsoft Playwright MCP 为 AI 代理提供了一种强大而有效的方式LLMs来与 Web 交互。通过在默认快照模式下利用浏览器的辅助功能树,它提供了一种快速、可靠且文本友好的浏览器自动化方法,非常适合导航、数据提取和表单填写等常见任务。可选的视觉模式可作为需要与视觉元素进行基于坐标的交互的方案的后备方案。
Playwright MCP 通过 npx 进行简单安装,深度集成到 Cursor 等 Claude MCP 客户端中,以及灵活的配置选项(包括无头作和自定义传输),是一款多功能工具,可供开发人员构建下一代 Web 感知 AI 代理。通过了解其核心概念和可用工具,您可以有效地使您的应用程序和代理能够在广阔的 Internet 上导航和交互。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-05-09
2024-07-23
2024-07-07
2025-02-12
2024-07-01
2024-06-24
2024-06-23
2024-10-20
2024-06-08
2025-04-21
2025-04-13
2025-04-11
2025-04-03
2025-03-30
2025-03-28
2025-03-26
2025-03-13