Chrome DevTools MCP 调试指南——让 AI 打开 F12 调试你的网页
整理日期: 2026-06-03
简介
Chrome DevTools MCP 是 Google Chrome DevTools 团队官方出品 的 MCP 服务器。它让 AI 编程助手能够直接操控 Chrome 浏览器的开发者工具——就像人类开发者按下 F12 打开 DevTools 面板一样。
它的核心价值不是”操作浏览器”(那是 Playwright MCP 的领域),而是调试和诊断——读取 Console 日志、分析网络请求、录制 Performance Trace、检查代码覆盖率、审计可访问性。这些能力是所有”纯自动化”方案(如 Playwright、Puppeteer)完全做不到的。
官方资源:
- GitHub:
ChromeDevTools/chrome-devtools-mcp - 首次发布: 2025 年 9 月
- 工具数量: 29 个(截至 2026 年 6 月)
- 底层引擎: Puppeteer + Chrome DevTools Protocol (CDP)
前置要求
| 依赖 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >= 18 | 通过 npx 运行 MCP 服务器 |
| Google Chrome | 较新版本 | 需要支持 CDP(Chrome DevTools Protocol) |
| AI CLI | Claude Code / Gemini / Cursor 等 | 支持 MCP 协议 |
一、安装与配置
1.1 在 Claude Code 中安装
1 | # 推荐方式 |
1.2 在 Hermes Agent 中配置
编辑 ~/.hermes/config.yaml:
1 | mcp_servers: |
1.3 运行模式
Chrome DevTools MCP 支持两种运行模式:
模式一:自动启动浏览器(推荐新手)
MCP 服务器会自动启动一个新的 Chrome 实例并连接。无需额外操作。
1 | claude mcp add chrome-devtools -- npx chrome-devtools-mcp@latest |
模式二:连接已有 Chrome(推荐调试已部署应用)
1 | # 1. 先启动 Chrome 并开启远程调试端口 |
💡 模式二的优势:可以连接已登录状态的真实浏览器,直接在已部署的页面上进行调试和性能分析。
1.4 验证安装
1 | claude mcp list |
二、29 个工具的完整清单
Chrome DevTools MCP 提供 29 个工具,分为 7 大类。以下是完整清单:
2.1 🔍 页面导航与基础操作(4 个)
| 工具名 | 功能 | 说明 |
|---|---|---|
browser_navigate |
导航到指定 URL | 基础页面跳转 |
browser_click |
点击元素 | 通过 CSS 选择器 |
browser_set_input_value |
设置输入框值 | 填入文本 |
browser_screenshot |
页面截图 | 支持全页截图 |
⚠️ 与 Playwright 的区别:Chrome DevTools 的页面操作能力有限,自动化交互不如 Playwright 流畅。
2.2 📋 Console 日志(2 个)⭐ 核心能力
| 工具名 | 功能 | 说明 |
|---|---|---|
console_read_log |
读取 Console 日志 | 获取所有 console.log/warn/error 输出 |
console_list_breakpoints |
列出断点列表 | 查看已设置的断点 |
典型场景:调试 JS 报错
1 | claude "打开 https://example.com,读取 Console 日志,看看有没有报错" |
AI 内部执行:
1 | 1. browser_navigate(url: "https://example.com") |
2.3 🌐 网络请求分析(4 个)⭐ 核心能力
| 工具名 | 功能 | 说明 |
|---|---|---|
network_start_recording |
开始记录网络请求 | 开启网络监听 |
network_stop_recording |
停止记录 | 关闭网络监听 |
network_get_requests |
获取已记录的请求列表 | 请求的 URL、状态码、耗时等 |
network_get_response_body |
获取指定请求的响应体 | 查看接口返回的原始数据 |
典型场景:排查接口返回错误
1 | claude "打开 https://example.com/login,开始录制网络请求,然后试试用错误的密码登录,看看登录接口返回了什么" |
AI 执行过程:
1 | 1. network_start_recording() |
2.4 ⚡ 性能分析(3 个)⭐ 唯一能力(Playwright 无法提供)
| 工具名 | 功能 | 说明 |
|---|---|---|
performance_start_trace |
开始录制性能 Trace | 记录页面加载和交互的详细性能数据 |
performance_stop_trace |
停止录制 | 停止录制并生成 Trace 报告 |
performance_get_trace |
获取 Trace 数据 | 返回 JSON 格式的性能数据 |
典型场景:分析页面加载慢的原因
1 | claude "分析 https://example.com 的加载性能,找出加载瓶颈" |
AI 执行过程:
1 | 1. performance_start_trace() |
💡 Performance Trace 是 Chrome DevTools MCP 独有的杀手级能力。其他所有浏览器 MCP 方案都无法提供类似的功能。
2.5 📊 代码覆盖率(2 个)⭐ 唯一能力
| 工具名 | 功能 | 说明 |
|---|---|---|
coverage_start |
开始记录代码覆盖度 | 追踪页面使用了哪些 CSS/JS |
coverage_stop |
停止记录并获取报告 | 返回未被使用的代码比例 |
典型场景:找出未使用的 CSS/JS
1 | claude "启动代码覆盖度监控,打开 https://example.com,然后告诉我哪些 CSS 和 JavaScript 从未被使用" |
2.6 🎨 元素与样式检查(8 个)⭐ 核心能力
| 工具名 | 功能 | 说明 |
|---|---|---|
dom_inspect_element |
检查元素 | 获取元素的 DOM 树结构 |
dom_get_element_style |
获取元素计算样式 | 最终生效的 CSS 属性和值 |
dom_get_element_box_model |
获取盒模型 | content、padding、border、margin 各区域大小 |
dom_get_element_accessibility_info |
获取无障碍信息 | ARIA 属性、角色、名称等 |
dom_get_layout_shift_info |
获取布局偏移信息 | CLS(Cumulative Layout Shift)相关 |
dom_get_sourcemap_info |
获取 Source Map | 编译代码到源代码的映射 |
dom_get_js_properties |
获取 JS 属性 | DOM 元素上绑定的 JavaScript 属性 |
dom_list_event_listeners |
列出事件监听器 | 元素上注册的所有事件 |
典型场景:排查布局问题
1 | claude "检查 https://example.com 首页的导航栏,为什么它在移动端布局错位了?获取它的计算样式和盒模型" |
2.7 ♿ 可访问性审计(6 个)⭐ 唯一能力
| 工具名 | 功能 | 说明 |
|---|---|---|
a11y_start_audit |
开始可访问性审计 | 运行 Lighthouse 可访问性检查 |
a11y_get_audit_results |
获取审计结果 | 列出所有违反可访问性规则的项目 |
a11y_get_contrast_issues |
获取颜色对比度问题 | 文本和背景色对比度不足的问题 |
a11y_get_keyboard_navigation_issues |
获取键盘导航问题 | Tab 顺序、焦点管理等 |
a11y_get_aria_issues |
获取 ARIA 属性问题 | 错误使用或遗漏的 ARIA 属性 |
a11y_get_label_issues |
获取标签问题 | 表单元素缺少标签的问题 |
典型场景:网站无障碍合规检查
1 | claude "对 https://example.com 进行一次完整的可访问性审计,列出所有需要修复的问题" |
三、实战案例:完整调试工作流
场景:解决”页面加载慢 + 接口报错 + 布局错位”
假设你遇到了一个页面同时存在性能问题、接口错误和布局问题。Chrome DevTools MCP 是唯一能一站式调试三种问题的方案。
1 | claude "帮我调试 https://example.com/dashboard 页面: |
AI 的完整执行链路:
1 | 阶段一:性能分析 |
四、在 Hermes 中同时配置两个浏览器 MCP
Playwright MCP + Chrome DevTools MCP 各有所长,互不冲突。最佳方案是两个都装。
1 | # ~/.hermes/config.yaml |
使用场景选择:
| 需求 | 谁上场 |
|---|---|
| “帮我抓取这个页面数据” | Playwright |
| “页面报错了帮我查一下” | Chrome DevTools |
| “登录这个网站做个操作” | Playwright |
| “分析为什么这个页面加载慢” | Chrome DevTools |
| “截图看看 UI 效果” | 都可以 |
| “检查接口返回什么” | Chrome DevTools |
| “自动化表单填写” | Playwright |
| “检查可访问性问题” | Chrome DevTools |
| “多标签页操作” | Playwright |
| “前端性能优化分析” | Chrome DevTools |
五、Chrome DevTools MCP vs Playwright MCP 完整对比
1 | 能力 Chrome DevTools MCP Playwright MCP |
一句话总结:
Playwright MCP = AI 的手,帮你操作浏览器
Chrome DevTools MCP = AI 的眼睛,帮你看懂浏览器里发生了什么
六、常见问题
Q1:Chrome DevTools MCP 启动后报 “No Chrome found”
原因:系统中没有安装 Chrome 或系统找不到 Chrome 可执行文件。
解决:
1 | # 安装 Chrome for Testing(推荐) |
Q2:连接已有 Chrome 时提示 “Connection refused”
原因:Chrome 没有开启远程调试端口,或端口被防火墙阻挡。
解决:
1 | # 确保启动 Chrome 时添加了 --remote-debugging-port 参数 |
Q3:Performance Trace 数据过大
Trace 数据可能非常大(10MB+)。建议缩短录制时间或只录制关键操作。
1 | claude "录制 3 秒的性能 Trace,只关注页面初始加载阶段" |
Q4:Console 日志读取不全
原因:Console 日志可能在页面加载过程中被清除。
解决:确保在网络请求记录开始后再执行操作,或者在页面加载完后立即读取 Console。
Q5:不支持 Firefox 或 Safari
Chrome DevTools MCP 仅支持 Chrome。这是设计限制,因为它底层依赖 Chrome DevTools Protocol(CDP),这是 Chrome 独有的协议。
如果需要在 Firefox/Safari 上调试,可以考虑使用各自浏览器的开发者工具,或使用 Playwright MCP(支持多浏览器)。
七、最佳实践
1 | ## 调试工作流建议 |
八、总结
Chrome DevTools MCP 是 Web 开发者调试工具箱中的重要补充。它让 AI 能够做到人类开发者最常做的事情——打开 F12 开始调试。
| 核心能力 | 应用场景 | 独有性 |
|---|---|---|
| Console 日志 | 错误排查、日志分析 | 与 Playwright 重叠 |
| 网络请求分析 | 接口调试、性能分析 | 深度优于 Playwright |
| Performance Trace | 性能瓶颈定位 | 唯一 |
| 代码覆盖度 | 优化打包体积 | 唯一 |
| 元素检查 | 布局问题诊断 | 唯一 |
| 可访问性审计 | 无障碍合规 | 唯一 |
一句话总结: 需要操作浏览器用 Playwright MCP,需要调试浏览器用 Chrome DevTools MCP。真正的王者方案是两个都装。
本文基于最新会话讨论内容整理,部分信息参考 Google Chrome DevTools MCP 官方文档。