在线咨询
专属客服在线解答,提供专业解决方案
声网 AI 助手
您的专属 AI 伙伴,开启全新搜索体验
首页 / 博客 / 正文

GitHub爆火的Playwright MCP!教你解锁浏览器自动化神器

最近,微软推出的 Playwright MCP Server 让浏览器自动化接入大模型编程成为可能,其一经发布便迅速走红。根据 GitHub 热门排行,microsoft/playwright-mcp 在月度榜单中位列第5位,拥有2万颗星标。Playwright MCP 能为 LLM 提供强大的浏览器操作能力,短时间内就获得了社区关注。本文将全面介绍 Playwright MCP 的背景、原理以及在 Cursor 编辑器中的集成和使用方法。

 

Playwright 是什么

Playwright 是微软开发的现代化端到端测试框架,专为浏览器自动化设计。它支持 Chromium、Firefox 和 WebKit 等所有主流浏览器内核,可在 Windows、Linux 和 macOS 上运行,还支持无头模式和本机移动设备仿真。与传统方案相比,Playwright 提供了更快更可靠的执行速度,内置诸如代码生成(Codegen)、元素定位工具和可视化调试器等特性,极大提升了自动化测试和爬虫开发的效率。例如,Playwright 可以通过可访问性树(accessibility tree)来精确定位页面元素,并提供同步/异步的丰富 API,让开发者无需关心浏览器底层细节,就能进行网页交互和数据获取。

 

安装与配置 Playwright MCP

要使用 Playwright MCP,首先需要在本地安装它。Playwright MCP Server 已经发布到 npm 上,可以直接使用 npx 命令安装运行,无需全局安装。例如,在配置文件中添加如下 MCP 服务器定义即可启动(一般位于 ~/.codex/config.toml、.cursor/mcp.json 等位置):


{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

这段配置会让 MCP 启动命令为 npx @playwright/mcp@latest,下载并运行最新版本的 Playwright MCP Server。除了使用 npx,还可以将其安装为全局包或项目依赖,但 npx 方式最为简便。安装时请确保已安装 Node.js 环境,并且机器上有对应的浏览器可执行文件(Playwright 默认会在首次运行时自动下载 Chromium、Firefox 和 WebKit 的引擎)。

启动 MCP Server 后,可以通过命令行参数或 JSON 配置文件进一步定制行为。例如:

  • –browser :指定浏览器(可选值 chrome, firefox, webkit, msedge 等),默认启动 Chromium。
  • –caps vision,pdf:启用附加功能,如视觉模式或 PDF 生成。
  • –headless:无头模式运行浏览器(默认有头模式),如果需要界面可不传此参数。
  • –output-dir :指定输出目录,用于保存截图、PDF 等文件。
  • –device :模拟指定移动设备环境,例如 “iPhone 15″。
  • –allow-hosts、–allow-origins、–block-origins:限制可访问的域名或来源,提升安全性。

另外,Playwright MCP 支持将所有参数写入一个 JSON 配置文件,然后以 –config path/to/config.json 方式加载。配置文件的结构类似如下(此示例展示了常用字段):


{
  "browser": {
    "browserName": "chromium",
    "launchOptions": {
      "headless": true,
      "executablePath": "/usr/bin/chromium"
    },
    "contextOptions": {
      "viewport": {"width":1280,"height":720}
    }
  },
  "server": {
    "port": 8931,
    "host": "0.0.0.0"
  },
  "capabilities": ["vision","pdf"],
  "outputDir": "./mcp-output",
  "network": {
    "allowedOrigins": ["*"],
    "blockedOrigins": []
  }
}

上述配置会让 MCP 服务器监听在指定端口,并将浏览器运行在无头模式下,将截图、PDF 等输出保存到 ./mcp-output 目录。

 

常用工具(tools)调用方式及解释

Playwright MCP 定义了一系列以 browser_ 开头的工具(tool),模型可以调用这些工具来完成具体动作。下面列举其中常用的几类工具:

  • 页面交互:browser_navigate(URL) 跳转网页,browser_click(selector) 点击元素,browser_type(selector, text) 输入文本,browser_hover(selector) 悬停元素,browser_select_option(selector, option) 选择下拉选项等。
  • 视觉交互:browser_screen_click(x, y) 在页面坐标点击,browser_screen_move_mouse(x, y) 移动鼠标到坐标,browser_screen_type(text) 在视觉模式下输入文本,适用于无法通过快照模式定位时的操作。
  • 快照与截图:browser_snapshot() 获取当前页面的结构化可访问性快照(供后续交互使用);browser_take_screenshot() 捕获当前视窗截图;browser_screen_capture() 整页截图(视觉模式)。快照会以 JSON 树形式返回,以便模型识别界面元素位置。
  • 键盘操作:browser_press_key(key) 模拟按键,如 Tab、Enter 等。
  • 文件与导出:browser_file_upload(selector, filePath) 将本地文件上传到页面(例如上传控件);browser_pdf_save() 将当前页面保存为 PDF 文件。
  • 标签页管理:browser_tab_list() 列出所有标签页;browser_tab_new(URL) 新开标签页并可指定地址;browser_tab_select(index) 切换到指定索引的标签页;browser_tab_close() 关闭当前标签页。
  • 导航控制:browser_navigate_back() 后退;browser_navigate_forward() 前进。
  • 其他:browser_wait(ms) 等待指定毫秒(最多10秒);browser_close() 关闭浏览器;browser_install() 安装或更新在配置中指定的浏览器版本。

模型给出指令时,会输出相应的 JSON 结构如 {"tool": "browser_navigate", "args": ["https://example.com"]} 由 MCP 执行。开发者可在提示语里直接描述操作目的(如“打开页面并点击登录按钮”),MCP 客户端会将其转换为上面列表中的工具调用,从而完成对浏览器的控制。相较于图片识别方式,Playwright MCP 默认使用“快照模式”,基于结构化数据交互,无需图像模型即可精确定位并操作元素。

 

Cursor 中的接入与使用方法

Cursor 是一款支持 AI 编程的 IDE,它内置了对 MCP 服务的支持。要在 Cursor 中使用 Playwright MCP,需要先添加一个新的 MCP Server。具体步骤如下:

  • 打开 Cursor 的设置(Settings),选择 MCP 标签页。
  • 点击右上方的 Add new global MCP server 按钮。此操作会自动打开 Cursor 配置目录下的 mcp.json 文件,或者弹出添加对话框。
  • 在配置文件中添加 Playwright MCP 的内容。
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}

使用 npx @playwright/mcp@latest 启动服务器。保存后可以在 Cursor 的 MCP 列表中看到名为 “playwright” 的服务已就绪。

配置完成后,再次打开 MCP 列表可以看到 Playwright Server 下的工具列表。例如,可以看到 browser_navigate、browser_click 等工具名称,以及 JSON args 字段(此处展示了 Cursor 的工具选择界面),表示 MCP 已成功集成。Cursor 会将用户的自然语言输入转换为工具调用,将结果输出到对话中,并在需要时展示浏览器截图或 DOM 快照。

MCPnpx

在 Cursor 的对话面板中,用户可以像对话一样给模型下达指令。比如输入 “请打开谷歌浏览器,打开bing首页”。工具调用后已自动打开必应页面。

请打开谷歌浏览器,打开bing首页

在对话面板中继续输入:“在bing搜索框输入声网,按回车键搜索后,搜索到声网网站,并进入网站”,模型会自动生成对应的工具调用并返回结果。

Playwright MCP

 

结语

Playwright MCP 为浏览器自动化引入了革命性的体验,但在实践中也有几点建议和注意事项:

  • 利用快照模式:默认的“快照模式”基于可访问性树进行操作,性能更佳且结构化,避免了纯像素识别的歧义问题。在大多数场景下,尽量使用 browser_snapshot、browser_click 等工具;仅在定位失败时再考虑视觉工具(如 browser_screen_click)。
  • 配置等待和权限:对于加载较慢的网页,可以适当增加超时时间(比如使用 –timeout-navigation 参数)。对于需要摄像头、剪贴板等权限的页面,可通过 –grant-permissions 预先授权,以免自动化操作被阻塞。
  • 限定访问范围:为安全起见,可使用 –allowed-hosts 和 –allowed-origins 等参数限制 MCP 服务器可访问的域名。这能防止模型访问未授权网站。
  • 浏览器管理:如果需多次运行测试,推荐调用 browser_close 关闭旧的浏览器实例,或使用 browser_tab_close 关闭多余标签页,保持环境干净。也可以使用 –isolated 模式启动 MCP,使每次对话都有独立会话上下文。
  • 验证工具调用:在 Cursor 或类似 IDE 中,可通过工具调用日志和快照结果查看工具执行情况,必要时调整提示语、添加更多上下文信息以提高可靠性。

总之,将 Playwright MCP 与 Cursor 集成后,我们可以用自然语言轻松驱动浏览器进行自动化操作,极大地简化了测试、爬取和浏览流程。在熟悉各种工具的功能与参数后,再配合准确的提示语,就能让 AI 模型成为强大的浏览器助手,自动为开发者“打工”而不是反过来。正如社区所言:“Playwright MCP 提供了强大的浏览器交互能力,结合大模型可以完成很多以前需要手动编码的事情”