BrowserTools MCP

把你要调试的真实 Chrome 会话中的控制台、网络、截图和 Lighthouse 数据流式提供给任意兼容 MCP 的 AI 编码客户端。

Star 数
★ 7.3k
最近更新
4 天前
License
MIT
主语言
TypeScript

30 秒速览

可在哪里用
通用 · 跨平台Claude Code
开始前需要
Node.js 22.19 或更高版本Chrome(或其他 Chromium 内核浏览器)用于审计通过 chrome://extensions 加载的 Chrome 扩展Shell / 命令行网络访问本地文件系统MCP Server
典型场景
前端开发者复现登录态下的线上问题时,让 Cursor 里的 AI 直接读取当前页面的控制台报错,而不必复制粘贴日志。
主要局限
安装是两步:既配 MCP 服务器,又要手动加载 Chrome 扩展并每次先打开 DevTools。

这个 Agent 能做什么,适合哪些场景?

BrowserTools MCP 由两部分组成:一个通过 npx 启动的 MCP 服务器(@agentdeskai/browser-tools-mcp),以及一个需要手动加载到 Chrome 的扩展。它不启动新的自动化浏览器,而是通过 DevTools 扩展附着在你已登录的真实 Chrome 会话上,采集控制台日志、XHR/fetch 网络请求、元素选择、页面信息、截图和本地存储,并以 16 个工具、3 个内置提示和若干 MCP resource 的形式暴露给 Cursor、Claude Code、Windsurf、Cline、Zed、Gemini CLI 等客户端。2.0 版本把原来的三个进程合并为一个,只绑定 127.0.0.1,要求每次运行生成的 token 鉴权,并在数据离开浏览器前清洗 Authorization、Cookie、JWT 和云厂商密钥等凭据。它另外提供 Lighthouse 可访问性、性能、SEO 和最佳实践审计,审计由独立浏览器进程执行且默认不触达内网与云元数据地址。运行时要求 Node.js 22.19 或更高版本,项目以 MIT 协议开源。

扩展在你打开 DevTools 的标签页上开始采集,并把遥测数据发给本地连接器;MCP 服务器随后向客户端暴露工具:getConsoleLogs、getConsoleErrors、getNetworkLogs、getNetworkErrors、getSelectedElement、getPageInfo、getConnectionStatus、listBrowserTabs、takeScreenshot、refreshBrowser、getBrowserStorage、wipeLogs,以及 runAccessibilityAudit、runPerformanceAudit、runSEOAudit、runBestPracticesAudit。每个有 DevTools 的标签页独立计数和保留数据,工具默认作用于最近打开 DevTools 的“当前标签页”,也可传 tabId 或 allTabs 指定范围,每个结果都会附上 tabId、url 和 otherTabs。整段历史数据通过 browser-tools://console/{tabId|all}、browser-tools://network/{tabId|all}、browser-tools://har/{tabId|all}、browser-tools://screenshot/{name}、browser-tools://audit/{reportId} 等 MCP resource 提供,工具用 resource_link 引用,避免撑爆上下文。读日志的工具支持 limit、offset 和关键词过滤,结果按最新优先返回并同时给出 total 与 returned。审计会启动一个独立 Chromium 浏览器,把完整的 Lighthouse 报告保存到截图目录下的 audits/ 中(保留最近 20 份)。

  1. 前端开发者复现登录态下的线上问题时,让 Cursor 里的 AI 直接读取当前页面的控制台报错,而不必复制粘贴日志。
  2. 调试需要鉴权或 Cookie 的后台页面时,使用已登录的 Chrome 会话而非新建 Playwright/Chrome DevTools MCP 的干净配置。
  3. 排查接口 4xx/5xx 和慢请求时,用 getNetworkLogs 或 getNetworkErrors 按 URL、请求体和状态过滤,必要时拉取 HAR 资源做完整分析。
  4. 在提交前跑一轮 runAccessibilityAudit 或 runPerformanceAudit,拿到 Core Web Vitals 与无障碍问题清单。
  5. Next.js 项目做 SEO 检查时,调用内置的 nextjsSeoAudit 提示配合 runSEOAudit 走系统化流程。
  6. 多个标签页同时开着时,用 listBrowserTabs 定位并指定 tabId,避免截图或日志取错页面。

如何安装或部署这个 Agent?

需要 Node.js 22.19 或更高版本,先确认版本:

node --version

在你的 MCP 客户端配置里加入服务器(以通用 mcpServers 格式为例):

{
  "mcpServers": {
    "browser-tools": {
      "command": "npx",
      "args": ["-y", "@agentdeskai/browser-tools-mcp@latest"]
    }
  }
}

Windows 上若客户端找不到 npx,改成:

{
  "mcpServers": {
    "browser-tools": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@agentdeskai/browser-tools-mcp@latest"]
    }
  }
}

然后克隆仓库,在 chrome://extensions 打开开发者模式,选择“加载已解压的扩展程序”,指向仓库中的 chrome-extension 目录。不需要再启动第二个服务器。安装后可用 doctor 自检:

npx @agentdeskai/browser-tools-mcp --doctor

如何使用这个 Agent?

在要检查的页面上按 F12 打开 Chrome DevTools,采集随即开始(BrowserTools 面板只用于设置和状态查看),然后让 AI 客户端调用工具,例如“检查控制台错误”或“对这个页面跑一次无障碍审计”。需要观察采集是否真的发生时,用 verbose 启动连接器:

npx @agentdeskai/browser-tools-server --verbose

常用参数包括端口、截图目录、工具白名单与审计来源放行:

npx @agentdeskai/browser-tools-mcp --port 3025 --screenshot-dir ./shots --only getConsoleErrors,getNetworkLogs --audit-allow-origin http://localhost:3000

多个客户端要共享同一浏览器会话时,先单独启动连接器,其他客户端会自动附着:

npx @agentdeskai/browser-tools-server

开发本项目时:

npm install
npm run build
npm test
npx playwright install chromium
npm run test:e2e

这个 Agent 有哪些优点和局限?

优点
  • 附着真实 Chrome 会话,绕开 Chrome 136 起对默认配置远程调试的限制,无需重建登录态。
  • 2.0 把三个进程合并为一个,只绑定 127.0.0.1,带每次运行的 token 鉴权,并清洗 Authorization、Cookie、JWT、云密钥等凭据。
  • 除日志和网络外还提供 Lighthouse 的性能、无障碍、SEO、最佳实践四类审计,这是纯自动化浏览器方案通常缺少的。
  • 大量历史数据走 MCP resource 而非直接内联,工具支持 limit/offset 和关键词过滤,并回传 total/returned 控制上下文体积。
  • 每个标签页独立采集与保留,结果附带 tabId、url 和 otherTabs,降低取错页面的风险。
  • 提供 --doctor 自检、--only/--exclude 工具白名单和 MIT 开源许可。
局限
  • 安装是两步:既配 MCP 服务器,又要手动加载 Chrome 扩展并每次先打开 DevTools。
  • 网络采集从 DevTools 打开那一刻才开始,页面加载早期的请求需要刷新页面才能捕获。
  • 默认控制台采集会触发 Chrome 的“正在调试此浏览器”横幅,需切换到 Wrap page console 模式规避。
  • Firefox 未经任何验证,截图依赖 DevTools 协议在 Firefox 上不可用;Arc 仅尽力支持且未做无头验证。
  • 审计会另起浏览器进程,最长约一分钟,且对内网/本地来源有放行规则,需要额外理解。
  • 从 1.x 升级必须迁移:1.2.x 存在关键漏洞,旧版还会绑定 0.0.0.0 并扫描私有网段。

这个 Agent 与同类方案有什么区别?

README 明确对比了 Chrome DevTools MCP 与 Playwright MCP 这类基于 CDP 的自动化服务器:它们驱动全新的自动化浏览器,适合写测试,但由于 Chrome 136 起禁止对默认配置远程调试,调试已登录的真实应用时需要重建鉴权状态;BrowserTools MCP 通过 DevTools 扩展附着现有会话,并额外提供 Lighthouse 级别的性能、无障碍和 SEO 数据。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
BrowserTools MCP 当前 81 · 表现良好 — ★ 7.3k 4 天前 TypeScript Claude Code
JS Reverse MCP 82 · 表现良好 MCP 服务器免费 ★ 3k 1 个月前 TypeScript Codex · Claude Code
Interceptor 57 · 缺口较多 命令行工具免费 ★ 557 6 天前 TypeScript Codex · Claude Code · Claude.ai
OpenTabs 49 · 缺口较多 命令行工具免费 + 模型费 ★ 989 2 个月前 TypeScript Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
表现良好
81/ 100 五分制 4.1 / 5
信任安全 22/29
可靠稳定 12/14
适用触发 15/18
规范维护 15/18
有效结果 12/13
证据核验 5/8
查看各维度的扣分理由
信任安全22 / 29 · 3.8/5

README 与 SECURITY.md 明确记录 2.x 的权限收敛:仅绑定 127.0.0.1、拒绝非回环地址、HTTP 需 per-run token、WebSocket 仅接受扩展 Origin、移除 AppleScript 路径、截图名白名单化,并称有 connector-security 回归测试,属较充分的 least_privilege 证据(3)。但破坏性/外部动作(refreshBrowser、wipeLogs、审计启动独立浏览器)依赖 MCP 客户端审批,仓库未提供自身确认机制,故 user_confirmation 仅 2。数据流透明(红字、双次脱敏、headers 默认关闭、storage 值默认隐藏)证据充分(3)。敏感数据处理有 best-effort 红字与测试佐证(3)。依赖安全仅见 CI 的 npm audit --audit-level=moderate,未见锁文件或具体依赖清单,故 2。外部效应方面审计浏览器有 SSRF/元数据地址防护,但 --audit-allow-private-network 与 --no-redact 属高风险开关,仅文档警示,故 2。回滚仅 1.x→2.x 迁移说明,无运行时撤销/恢复机制,故 1。来源归属有 MIT 版权与 GHSA 编号,但发布者身份未验证,故 2。

可靠稳定12 / 14 · 4.3/5

README 与测试、CI 相互印证(多 tab 归属、截图预算、脱敏、审计 egress),自洽性较好(3)。依赖可用性仅声明 Node>=22.19 与 npx 安装,未提供锁文件,故 2。失败信息有 --doctor、--verbose、明确错误(unknown tab、AuditError 指名被拒主机),故 3。

适用触发15 / 18 · 4.2/5

面向 Cursor/Claude Code/Windsurf 等多 MCP 客户端,场景清晰(3)。能力边界在 Tools 表与 Known limits 中界定明确(3)。触发精度依赖 DevTools 打开即采集、当前 tab 语义,存在隐式触发与多 tab 歧义,故 2。环境适配覆盖多 OS CI 与多 Chromium 浏览器,但 Firefox 明确未验证、fake-IP 代理下审计失败,故 2。

规范维护15 / 18 · 4.2/5

README 结构清晰、分层(3)。安装步骤含 Windows 变体与 --doctor(3)。命名稳定性方面 2.0 为重写、1.x 有破坏性变更,故 2。示例有工具调用片段但无 FAQ,故 2。Known limits 详尽(3)。MIT 许可证完整(3)。版本化有 2.0 重写与迁移说明,但无 CHANGELOG 文件,故 2。维护责任有 SECURITY 报告渠道与 72 小时响应,但发布者未验证,故 2。

有效结果12 / 13 · 4.6/5

输出为结构化 schema、resource_link、分页与 total/returned,可用性高(3)。相对 CDP 自动化服务器的差异化价值(附着已登录会话、Lighthouse)明确(3)。成本方面审计需启动独立浏览器、最长一分钟,截图有字节预算,收益需权衡,故 2。

证据核验5 / 8 · 3.1/5

README 声明多可追溯到 SECURITY.md 与测试文件(GHSA、回归测试路径),但部分为断言无直接文件佐证,故 2。跨源印证存在(README/SECURITY/测试/CI),但未独立执行,故 2。事实与推断分离尚可,但 README 含营销性对比表述,故 2。

风险与缓解建议
  • 发布者身份未经验证,安装前应自行核实 npm 包与仓库归属。
  • 1.x 存在 CVSS 9.8 严重漏洞(GHSA-xvrv-w8pg-f25f),务必使用 2.x 并避免旧版本。
  • --no-redact 与 --audit-allow-private-network 会显著削弱安全边界,仅在明确知情时使用。
  • 脱敏为基于模式的最佳努力,非保证;自定义令牌形态可能泄漏。
  • Firefox 未验证,截图在 Firefox 不可用;fake-IP 代理下审计会失败。
  • 本评估为静态源码审阅,未执行任何测试,置信度低。
证据充分度:低 评估于 2026年10月20日 审查版本 349129ed6f87
查看完整评分方法 →

常见问题

它会不会把日志暴露给同一 Wi-Fi 上的人?
2.0 的连接器只绑定 127.0.0.1 并拒绝非回环地址,HTTP API 需要每次运行生成的 token,WebSocket 只接受浏览器扩展来源;README 说明 1.x 曾绑定 0.0.0.0 并扫描私有网段,该行为已移除。
使用它需要额外的模型 API 费用吗?
不需要。项目本身以 MIT 开源,MCP 服务器通过 npx 本地运行,不依赖任何厂商云服务;费用只取决于你所用 MCP 客户端自身的模型计费。
采集开始得太晚,页面首次加载的请求没记录到怎么办?
这是文档写明的限制:网络采集从 DevTools 打开时开始。打开 DevTools 后刷新页面即可捕获完整的一次页面加载。
大截图或超长日志会不会撑爆上下文?
截图受 screenshotMaxBytes 限制,默认 3 MB,超出会转 JPEG 再降采样,仍放不下则写到磁盘并返回路径;日志和网络历史通过 MCP resource 提供,读工具支持 limit/offset 与关键词过滤,并回传 total 与 returned。
审计能访问我内网的本地服务吗?
默认不能。链接本地和云元数据地址永不被审计;localhost 或私有网段的页面只有在已连接标签页中打开,或通过 --audit-allow-origin 放行时才会被审计,且每个请求(含重定向和子资源)都会再次校验。使用虚假 IP 代理时需显式加 --audit-allow-private-network。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents