实测对比

Playwright MCP vs Chrome DevTools MCP:同一表单实测对比

我们让两个浏览器 MCP 服务器在同一个本地表单上各跑 5 次:文本字段、文件上传、两个 iframe、一个只能由真人完成的步骤,以及重启。下面说明哪些通过了、哪些失败了,以及哪些只是在文档中读到的。

简要结论

  • 当两个服务器自己启动 Chrome 时,都填好了每个字段、上传了文件,并能在同源 iframe 和跨站 iframe 中操作,各自 5 次中 5 次成功。
  • 连接到一个真人已经打开的 Chrome 时,Playwright MCP 直接填好了打开着的表单。Chrome DevTools MCP 1.10.1 能在那里点击,但每次运行都必须先重新加载一次页面,才能填写字段。
  • Chrome DevTools MCP 自己启动的 Chrome 报告 navigator.webdriver = true;Playwright MCP 启动的 Chrome 报告 false。在你自己启动的 Chrome 中,两者都报告 false。
  • 如果你想要干净、可重复的运行和更短的工具列表,选 Playwright MCP。如果你要调试自己的 Web 应用(性能跟踪、Lighthouse、网络),或想和智能体共用你日常使用的 Chrome,选 Chrome DevTools MCP。

测试结果

每个单元格表示 5 次中通过的次数。测试日期 2026年9月30日,Google Chrome 154.0.8037.92,@playwright/mcp 0.0.83,chrome-devtools-mcp 1.10.1,第三列为 agent-browser 0.38.1。

模式 1:工具自己启动 Chrome

每个工具用一个全新的配置文件夹启动无头 Chrome,打开测试页面并在页面上登录,填写表单并点击提交,但不勾选真人步骤。

主题Playwright MCPChrome DevTools MCPagent-browser
可从快照访问两个 iframe5 次中 5 次5 次中 5 次5 次中 5 次
已填写文本、邮箱、下拉框、单选框、复选框和多行文本框5 次中 5 次5 次中 5 次5 次中 5 次
拒绝允许文件夹之外的上传(默认)5 次中 5 次5 次中 5 次未测量
上传文件完整到达(名称、大小、SHA-256)5 次中 5 次5 次中 5 次5 次中 5 次
在同源 iframe 中输入和点击5 次中 5 次5 次中 5 次5 次中 5 次
在跨站 iframe 中输入和点击5 次中 5 次5 次中 5 次5 次中 5 次
表单接受了除真人步骤外的所有内容5 次中 5 次5 次中 5 次5 次中 2 次
使用同一配置文件重启后保留登录5 次中 0 次5 次中 5 次5 次中 5 次
browser_close 并重启后保留登录5 次中 5 次未测量未测量
隔离模式启动时没有旧登录5 次中 5 次5 次中 5 次5 次中 5 次
navigator.webdriver 报告为 false5 次中 5 次5 次中 0 次5 次中 0 次

模式 2:工具连接到真人正在使用的 Chrome

我们自己用独立的配置文件和本地调试端口启动 Chrome。一个代替真人的替身打开页面、登录并输入产品名称。然后工具连接上来,填写其余部分后停下;替身勾选真人步骤并提交;最后工具读取结果。

主题Playwright MCPChrome DevTools MCPagent-browser
找到真人的标签页及其登录状态5 次中 5 次5 次中 5 次5 次中 5 次
在页面原样状态下填写字段5 次中 5 次5 次中 0 次5 次中 5 次
重新加载一次后填写字段未测量5 次中 5 次未测量
上传文件完整到达(名称、大小、SHA-256)5 次中 5 次5 次中 5 次5 次中 5 次
在同源 iframe 中输入和点击5 次中 5 次5 次中 5 次5 次中 5 次
在跨站 iframe 中输入和点击5 次中 5 次5 次中 5 次5 次中 0 次
真人勾选真人步骤并提交5 次中 5 次5 次中 5 次5 次中 0 次
智能体读取到提交结果5 次中 5 次5 次中 5 次5 次中 0 次
智能体的网络日志显示了表单 POST5 次中 5 次5 次中 5 次5 次中 0 次
服务器重启后重新连接到同一标签页5 次中 5 次5 次中 5 次未测量
navigator.webdriver 报告为 false5 次中 5 次5 次中 5 次5 次中 5 次

运行截图

Playwright MCP 填写后的本地测试表单整页截图
Playwright MCP,模式 1:所有字段、文件和两个 iframe 均已填写;提交只因未勾选的真人步骤而被拦下。截图由工具自身截取。
Chrome DevTools MCP 填写后的本地测试表单整页截图
Chrome DevTools MCP,模式 1:所有字段、文件和两个 iframe 均已填写;提交只因未勾选的真人步骤而被拦下。截图由工具自身截取。

测试方法

  • 日期 2026年9月30日,macOS 上的 Google Chrome 154.0.8037.92。版本已固定:@playwright/mcp 0.0.83,chrome-devtools-mcp 1.10.1,agent-browser 0.38.1。
  • 表单是 127.0.0.1 上的本地测试页面;跨站 iframe 来自另一个端口上的 localhost。没有涉及任何真实网站、账号、个人浏览器配置文件或付款。
  • 一个小脚本通过 MCP 与每个服务器通信,方式与智能体的客户端完全相同:快照、填写表单、上传、点击、读取控制台和网络。元素引用取自每个工具自己的快照。没有语言模型参与决策,因此每次运行都遵循相同的步骤。
  • 每个场景对每个工具运行 5 次。表格统计通过的运行次数。
  • 模式 2 中的真人是一个向标签页发送普通 DevTools Protocol 命令的脚本。它只是替身,并非真人。为了排除它是 Chrome DevTools MCP 填写失败的原因,我们还直接用测试 URL 启动 Chrome,完全不使用脚本:结果相同。
  • agent-browser 通过其主要界面命令行驱动,而不是通过它的 MCP 模式。

本测试未覆盖的内容

  • 真实的 CAPTCHA、机器人检测以及第三方网站上的真实登录。
  • Firefox 和 WebKit、两个项目的浏览器扩展,以及 Chrome 的自动连接对话框。
  • 性能跟踪、Lighthouse 和内存工具。
  • 由语言模型选择步骤:真实智能体需要多少 token 和轮次取决于模型。
  • Windows 和 Linux。

值得注意的发现

两者都拒绝来自允许文件夹之外的上传

我们第一次上传的文件来自项目文件夹,两个服务器默认都拒绝了。Playwright MCP 允许工作区根目录,客户端未指定根目录时允许其工作目录;Chrome DevTools MCP 在客户端未指定根目录时允许系统临时文件夹。从允许的文件夹上传时,文件每次都完整到达:名称、大小和 SHA-256 均一致。两个项目都在文档中说明了放宽此限制的参数。

Chrome DevTools MCP 无法填写连接前已打开的页面

在模式 2 中,Chrome DevTools MCP 找到了标签页及其登录状态,能点击按钮,也能在两个 iframe 中输入,但填写页面本身的字段时每次都以 “did not become interactive” 失败。智能体重新加载一次后,填写正常,其余测试也通过了。重新加载会丢失页面尚未保存的内容;我们的测试页面会恢复草稿,而很多真实表单不会。Playwright MCP 不需要重新加载。

navigator.webdriver 取决于由谁启动 Chrome

当 Chrome DevTools MCP 启动 Chrome 时,页面看到 navigator.webdriver = true,其自身文档把这一点列为某些登录失败的原因。Playwright MCP 启动的 Chrome 报告 false。当工具连接到我们自己启动的 Chrome 时,每个工具都报告 false。我们没有测试任何真实的机器人检测。

Playwright MCP 只有在 browser_close 之后才保留配置文件

即使使用持久化配置文件夹,如果客户端只是断开连接,服务器重启后登录状态就消失了。当智能体先调用 browser_close 时,每次运行都保留了登录。Chrome DevTools MCP 无需调用 close,每次运行都保留了配置文件。

agent-browser 在连接模式下漏掉了跨站 iframe

作为第三列,agent-browser 在自己启动浏览器时填好了每个字段、文件和两个 iframe;它的提交点击每次都报告已完成,但页面只在部分运行中收到。连接到运行中的 Chrome 时,它的快照显示了同源 iframe,却没有跨站 iframe,等待后再拍第二次快照也一样,因此无法完成表单。

主题官方原文实际意味着什么
Playwright MCP 文件访问By default access to file system is restricted to workspace root directories (or cwd if no roots are configured) only, and navigation to file:// URLs is blocked.从你的项目工作区上传文件,或用 --allow-unrestricted-file-access 启动服务器。
Chrome DevTools MCP 文件访问By default, file-writing tools are restricted to the OS temp directory when no roots are configured.如果客户端没有提供 MCP 根目录,就把要上传的文件放在临时文件夹,或添加 --filesystem-root。
Chrome DevTools MCP 登录Some accounts may prevent sign-in when the browser is controlled via WebDriver (the default launch mechanism for the Chrome DevTools MCP server).对于需要登录的网站,连接到你自己启动的 Chrome,而不是让服务器启动一个。
Playwright MCP 配置文件A persistent profile can only be used by one browser instance at a time同一工作区中的两个智能体需要 --isolated 或各自独立的配置文件夹。
Playwright CLICLI invocations are more token-efficient: they avoid loading large tool schemas and verbose accessibility trees into the model context对于上下文紧张的编程智能体,Microsoft 自己推荐使用其 CLI 加技能,而不是 MCP 服务器。
Chrome DevTools MCP 使用统计Google collects usage statistics (such as tool invocation success rates, latency, and environment information) to improve the reliability and performance of Chrome DevTools MCP.默认开启;如果不需要,添加 --no-usage-statistics。

有文档记载,未测试

以下差异来自各项目在查阅日期时的 README 和文档。我们没有测量它们。

主题Playwright MCPChrome DevTools MCP
浏览器通过 --browser 支持 Chrome、Firefox、WebKit 和 Edge。官方支持 Google Chrome 和 Chrome for Testing;其他 Chromium 浏览器可能可用。
你正在运行的浏览器用 --cdp-endpoint 连接调试端口,或使用带标签页选择和确认的 Playwright Extension。用 --browser-url 连接调试端口,或在 Chrome 144+ 中使用 --autoConnect,每次会话弹出权限对话框。
配置文件默认使用持久化配置文件;--isolated 将其保存在内存中;--storage-state 加载 Cookie 和存储。默认使用持久化配置文件;--isolated 使用结束后即删除的临时配置文件。
调试控制台和网络请求;跟踪、视频和存储工具按需开启。带洞察的性能跟踪、Lighthouse 审计、内存快照、带源映射堆栈跟踪的控制台、网络请求。
发送给厂商的数据README 未描述任何使用统计。使用统计默认开启(--no-usage-statistics);性能工具可能会在 CrUX API 中查询跟踪 URL(--no-performance-crux)。
不用 MCPMicrosoft 为编程智能体推荐 Playwright CLI 加技能。附带一个无需 MCP 即可使用的 CLI。
许可证Apache-2.0Apache-2.0

工具列表有多重

在打开任何页面之前,Playwright MCP 公布了 25 个工具、20.3 KB 的工具描述,Chrome DevTools MCP 公布了 30 个工具、25.7 KB(默认设置,通过 tools/list 测量)。智能体在整个会话中都要把这些文本带在上下文里。Chrome DevTools MCP 提供只有三个工具的 --slim;Playwright MCP 可通过 --caps 添加工具组。

该选哪一个

适合 Playwright MCP 的情况

  • 智能体应为每个任务启动一个干净的浏览器,无头运行或在 CI 中运行;
  • 你还需要 Firefox 或 WebKit;
  • 智能体要接手真人已经开始填写的表单,因为它无需重新加载就能填写已打开的页面;
  • 你希望智能体上下文中的工具列表更短。

适合 Chrome DevTools MCP 的情况

  • 你在调试自己的 Web 应用,希望在一处使用性能跟踪、Lighthouse、网络和控制台;
  • 你想通过自动连接与智能体共用日常使用的 Chrome;
  • 你只用 Chrome,并且偏好由 Chrome DevTools 团队维护的工具;
  • 你可以接受智能体在填写一个不是它打开的页面之前先重新加载。

agent-browser 呢?

agent-browser 是一个面向智能体的命令行浏览器工具,带有可选的 MCP 模式。它自己启动浏览器时填好了同一个表单,但连接到运行中的 Chrome 时漏掉了跨站 iframe。如果你的智能体用简短的 shell 命令比用 MCP 工具更顺手,值得一看。

Claude in Chrome vs Chrome DevTools MCP:区别与选择 →

自己动手测试

测试页面是一个没有依赖的 Node.js 文件,只在你自己的机器上监听。

  1. 下载该文件,用 Node.js 18 或更高版本运行。
  2. 先打开一次 http://127.0.0.1:4461/ 查看页面;跨站 iframe 的加载地址是 http://localhost:4462/。
  3. 把下面任一 MCP 配置添加到你的智能体中,让它填写表单、上传任意一个小 PNG、填写两个 iframe,并在真人步骤前停下。
  4. 自己勾选真人步骤并提交,然后问智能体页面现在显示什么。

下载 browser-mcp-test.mjs

该文件提供表单、iframe 和一个本地回显端点,不会向其他任何地方发送数据。

工具自己启动 Chrome

Playwright MCP

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@playwright/mcp@0.0.83"
      ]
    }
  }
}

Chrome DevTools MCP

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@1.10.1",
        "--no-usage-statistics"
      ]
    }
  }
}

工具连接到你在端口 9222 上启动的 Chrome

Playwright MCP

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@playwright/mcp@0.0.83",
        "--cdp-endpoint",
        "http://127.0.0.1:9222"
      ]
    }
  }
}

Chrome DevTools MCP

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@1.10.1",
        "--browser-url=http://127.0.0.1:9222",
        "--no-usage-statistics"
      ]
    }
  }
}

LaunchRepo 的选择

  • LaunchRepo 的 playbook 是针对连接到你自己 Chrome 的 Chrome DevTools MCP 编写和测试的,因为提交到目录需要你的真实登录,而且你应该看到每一步。
  • 在你自己启动的 Chrome 中,本次测试的每个工具的 navigator.webdriver 都保持为 false,交接也正常:你在同一个标签页完成某一步,智能体读取结果。
  • 如果智能体连接时目录表单已经打开,请在你输入任何内容之前让它先重新加载页面,这样你填写的内容就不会丢失。

来源

官方页面和代码仓库于 2026年9月30日 查阅。引文逐字照录;测试结果为我们自己的测量。

常见问题

对编程智能体来说,Playwright MCP 和 Chrome DevTools MCP 哪个更好?
没有哪个在所有方面都胜出。在我们的测试中,两者自己启动 Chrome 时都通过了所有表单检查。Playwright MCP 还能填写真人已打开的页面,公布的工具列表也更短;Chrome DevTools MCP 则提供性能跟踪、Lighthouse 以及更深入的网络和控制台工具,用于调试你自己的应用。
Chrome DevTools MCP 能使用我已登录的 Chrome 吗?
能。使用 --autoConnect 时,在你允许远程调试并确认对话框后,它会连接到正在运行的 Chrome 144 或更高版本。也可以用远程调试端口和单独的配置文件夹启动 Chrome,再用 --browser-url 指向它;从 Chrome 136 起,默认配置文件会忽略该端口。
两者都能处理 iframe 吗?
能。在我们的运行中,两者在两种模式下都访问到了同源 iframe 和跨站 iframe,5 次中 5 次成功,并能在其中输入和点击。
为什么文件上传失败了?
两个服务器默认只从允许的文件夹读取文件:Playwright MCP 从工作区根目录或其工作目录读取,Chrome DevTools MCP 在客户端未指定根目录时从系统临时文件夹读取。把文件移到那里,或使用文档中说明的参数放宽限制。
这些工具能解 CAPTCHA 吗?
两者的文档都没有提到 CAPTCHA 功能,我们也没有测试真实的 CAPTCHA。请改为规划交接:智能体停下,你在同一个可见窗口中完成这一步,智能体再继续。在我们的连接测试中,这种交接对两个服务器都有效。
navigator.webdriver 会暴露智能体吗?
在我们的测试中,只有当 Chrome DevTools MCP 自己启动 Chrome 时它才为 true。Playwright MCP 启动的 Chrome 以及我们自己启动的任何 Chrome 都报告 false。网站是否对此作出反应取决于该网站;我们没有测试真实的机器人检测。

让你的智能体完成目录发布

LaunchRepo 为你的编程智能体提供经过测试的发布平台和目录 playbook。它通过 Chrome DevTools MCP 在你自己的 Chrome 中工作,最终提交是由它自行完成还是先询问你,由你决定。

查看价格