浏览器#浏览器自动化

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。