Playwright MCP:让智能体按结构操作浏览器
微软官方的浏览器自动化 MCP。智能体读取页面无障碍树来点击、填表、导航,不靠截图识别,普通文本模型就能稳定操作网页。
项目与安装文档
查看项目https://github.com/microsoft/playwright-mcp
让智能体操作网页,常见做法是截图再让视觉模型猜按钮在哪,慢,也容易点错。Playwright MCP 换了思路:它把页面的无障碍树(accessibility tree)交给模型,模型按元素引用去点击和输入,不需要视觉能力。它由微软 Playwright 团队维护,截至 2026-10-06 约 3.8 万 star。
能做什么
- 结构化快照:
browser_snapshot返回页面的无障碍树,后续browser_click、browser_type都按快照里的元素引用操作。 - 完整的浏览器动作:导航、前进后退、填表、选择下拉框、上传文件、处理弹窗、管理标签页。
- 按需开启的能力:
--caps可打开坐标点击(vision)、PDF 生成、DevTools、网络与存储等额外工具,默认不加载,避免占用上下文。 - 三种会话方式:默认持久化浏览器配置;
--isolated每次用内存中的临时配置;--extension通过浏览器扩展连接你已登录的 Chrome 或 Edge。 - 可选浏览器和设备:
--browser可选 Chrome、Firefox、WebKit 或 Edge 通道,--device、--mobile能模拟指定机型或通用移动设备,移动页面更轻,也顺带省 token。
适合谁
- 想让 Claude Code、Codex 或 Cursor 打开网页核对页面、跑一遍注册流程的开发者,不想为此截图再猜按钮位置。
- 做探索式测试、自愈测试或长时间自主网页任务、需要浏览器状态持续保留的团队。
接入方式
需要 Node.js 18 或更新版本。Claude Code 一条命令即可:
claude mcp add playwright npx @playwright/mcp@latest
也提供 Docker 镜像,目前只支持 headless Chromium:
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--init",
"--pull=always",
"mcr.microsoft.com/playwright/mcp"
]
}
}
}
其他客户端用通用配置:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
编辑点评
浏览器类 MCP 很多,这个是基准:官方维护、更新勤、工具描述清楚,按元素引用操作比坐标点击稳定得多。如果还要测手机 App 或 Electron 应用而不只是浏览器,WebdriverIO MCP 一个服务就能都覆盖。要注意三点。第一,项目自己说明,对上下文紧张的编程智能体,同团队的 Playwright CLI 加 Skills 更省 token,MCP 更适合需要保留浏览器状态的长任务。第二,默认配置会把登录状态存到磁盘,多个客户端同时用同一份配置会冲突,测试时建议加 --isolated。第三,项目明确说自己不是安全边界,智能体访问的页面要当成不可信输入来对待。许可证为 Apache-2.0。