让 AI 真正接管 Chrome:Chrome DevTools MCP 上手指南
Google 官方开源的 chrome-devtools-mcp 完整介绍:安装、核心工具、性能分析、内存排查与最佳实践。
title: 让 AI 真正接管 Chrome:Chrome DevTools MCP 上手指南 date: 2026-10-23 tags: [MCP, Chrome, AI编程, 前端调试, 性能优化] description: Google 官方开源的 chrome-devtools-mcp 完整介绍:安装、核心工具、性能分析、内存排查与最佳实践。
让 AI 真正接管 Chrome:Chrome DevTools MCP 上手指南
一句话总结:它是 Google Chrome DevTools 团队开源的 MCP 服务器,让你的 AI 编码助手不再靠"猜"页面长什么样,而是直接打开 Chrome、点按钮、录性能、看网络请求、翻内存堆。
一、这是什么
Chrome DevTools MCP(包名 chrome-devtools-mcp)是 Google LLC 维护的开源项目,2025 年 9 月首次发布,目前 GitHub 已收获 5 万+ star,npm 版本迭代频繁。
它提供三种使用形态:
| 形态 | 说明 |
|---|---|
| MCP Server | 标准形态,被 Claude Code、Cursor、VS Code/Copilot、Antigravity、Gemini CLI 等客户端调用 |
| CLI | chrome-devtools 命令行工具,不经过 MCP 也能直接操控浏览器 |
| Skills / Plugin | 附带 7 个技能包,教 Agent 如何正确使用这套工具 |
底层技术栈是 Puppeteer + Chrome DevTools Protocol。和"打开一个干净无头浏览器截个图"的简单自动化不同,它复用了 DevTools 的完整能力:性能 trace、网络面板、Console、堆快照、Lighthouse、设备模拟。
二、为什么值得关注
1. 官方血统,长期可维护
由 Chrome DevTools 团队直接维护,承诺跟进最新版 Extended Stable Chrome。相比社区 Playwright MCP,它在"浏览器内部机制"上有天然的信息优势。
2. 不只是自动化,而是"调试"
大多数浏览器 MCP 解决的是"帮我点一下这个按钮"。Chrome DevTools MCP 解决的是:
- 这个页面为什么 LCP 是 4.2 秒?
- 这个请求为什么返回 401,Cookie 里带了什么?
- 内存为什么一直涨,是哪个对象被谁持有着?
- 这次改动的无障碍评分掉了几分?
3. 操作是"自动等待结果"的
基于 Puppeteer 的可靠自动化,点击、填写会自动等待元素可用,不需要你自己写 sleep(2000)。
三、安装
前置要求
- Node.js LTS(
^20.19.0 || ^22.12.0 || >=23) - Chrome 稳定版或更新版本
- npm
在 Claude Code 中安装
方式一:只装 MCP
claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
方式二:装成 Plugin(MCP + 全部 Skills,推荐)
/plugin marketplace add ChromeDevTools/chrome-devtools-mcp
/plugin install chrome-devtools-mcp@chrome-devtools-plugins
安装后重启 Claude Code,用 /skills 确认技能已加载。
[!NOTE] ✏️ Note 两种方式二选一。如果之前用 CLI 装过 MCP,再装 Plugin 前请先移除旧配置,避免重复。
在 Cursor / VS Code / 其他客户端中安装
通用 JSON 配置:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}
Codex CLI:
codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
[!TIP] 💡 Tip Windows 下如果不通过
cmd /c npx启动会失败,Codex 用户需要把startup_timeout_ms调到 20 秒左右并把PROGRAMFILES等环境变量传进去。Claude Code 直接用上面的命令即可。
四、第一次跑通
配置完成后,在对话里输入:
Check the performance of https://developers.chrome.com
正常的话,你会看到 Chrome 被拉起,自动打开页面并录制性能 trace,最后返回包含 LCP、INP、CLS 等指标的分析结果。
[!IMPORTANT] ❗ Important MCP 服务器启动时不会立刻打开浏览器,只有当客户端真正调用需要浏览器的工具时才会启动 Chrome。
五、核心工作流
1. 页面自动化:snapshot 是钥匙
所有点击、填写操作都不靠 CSS 选择器,而是靠 take_snapshot 返回的无障碍树文本快照里的 uid:
1. 用户要求"帮我在这个页面搜索 MCP"
2. Agent 调用 take_snapshot → 拿到带 uid 的页面结构
3. Agent 调用 fill({ uid: "输入框的uid", value: "MCP" })
4. Agent 调用 click({ uid: "搜索按钮的uid" })
这样做的好处是:元素定位跟随可访问性语义而不是脆弱的 DOM 结构,同时也比截图省 token。
[!TIP] 💡 Tip 填表单时,官方明确建议用
fill_form一次填完多个字段,而不是连续调用多次fill—— 更快、更可靠,还能减少对话轮次。
2. 性能分析:trace + insight
performance_start_trace({ reload: true, autoStop: true, ignoreCache: true })
trace 结束后会给出 Performance Insight,例如:
DocumentLatency—— 主文档加载慢在哪LCPBreakdown—— 最大内容绘制被什么拖住了
需要深挖时,用 performance_analyze_insight 传入 insight 名称和 set id 取详情。
[!NOTE] ✏️ Note 如果启用了
reload或autoStop,一定要先用navigate_page把页面导航到目标 URL,再开始录制。
3. 调试网络与 Console
list_network_requests:列出最近导航以来的请求,可按资源类型过滤,还能includePreservedRequests看最近 3 次导航的历史get_network_request:查看请求头(包括Cookie)和响应头(包括Set-Cookie),请求/响应体太大时可以落盘list_console_messages/get_console_message:带 source map 的堆栈,能直接定位到源码行
排查"登录之后接口 401"这类问题时特别顺手:先看 Console 有没有报错,再看请求头里 Cookie 到底带没带上。
4. 内存排查
内存分类下有 14 个工具,围绕堆快照展开:
take_heapsnapshot生成快照get_heapsnapshot_retaining_paths查谁在持有对象get_heapsnapshot_dominators找支配者compare_heapsnapshots两次快照对比,定位泄漏增长点get_heapsnapshot_duplicate_strings查重复字符串
配合自带的 memory-leak-debugging skill,可以直接让 Agent 走完整套流程。
5. 无障碍与质量审计
lighthouse_audit({ device: "mobile", mode: "navigation" })
覆盖无障碍、SEO、最佳实践以及 agentic browsing 评分,会列出失分项和对应的 DOM 节点,完整报告保存到磁盘。
[!WARNING] ⚠️ Warning
lighthouse_audit不包含性能项。性能必须用performance_start_trace系列工具测。
六、工具速查表
当前版本(1.12.x)共 60 个工具:
| 分类 | 数量 | 常用工具 |
|---|---|---|
| 输入自动化 | 10 | click、fill、fill_form、hover、press_key、upload_file、handle_dialog、drag |
| 导航 | 6 | navigate_page、new_page、close_page、select_page、list_pages、wait_for |
| 性能 | 3 | performance_start_trace、performance_stop_trace、performance_analyze_insight |
| 网络 | 2 | list_network_requests、get_network_request |
| 调试 | 9 | take_snapshot、take_screenshot、evaluate_script、get_css_styles、lighthouse_audit、screencast_start/stop |
| 内存 | 14 | take_heapsnapshot、compare_heapsnapshots、get_heapsnapshot_retaining_paths 等 |
| 扩展 | 5 | 安装、卸载、重载扩展,触发扩展 action |
| PWA | 4 | 安装、启动、卸载 PWA |
| WebMCP / 三方工具 / WebAuthn | 5 | 实验性能力 |
| 模拟 | 2 | emulate、resize_page(设备、网络、CPU 模拟) |
七、CLI 模式:不开 AI 也能用
全局安装后,可以像使用普通浏览器自动化工具一样:
npm i chrome-devtools-mcp@latest -g
chrome-devtools navigate_page 1 --url "https://developers.chrome.com"
chrome-devtools take_screenshot 1 --filePath screenshot.png
chrome-devtools stop
这在写 CI 脚本或 Shell 自动化时很好用,也方便先脱离 AI 验证环境是否正常。
八、进阶配置
1. 连接你正在用的 Chrome(保留登录态)
默认情况下,MCP 会用独立配置目录启动一个全新的 Chrome。如果你希望它接管已经打开、已经登录的浏览器:
- Chrome ≥ 144 中访问
chrome://inspect/#remote-debugging开启远程调试 - 启动参数加上
--autoConnect
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--autoConnect"]
}
}
}
也可以在 Chrome 启动时开调试端口,用 --browserUrl=http://127.0.0.1:9222 手动连接——沙箱环境里让 MCP 连沙箱外的浏览器时,用这个方式。
2. 默认配置目录
- Windows:
%USERPROFILE%\.cache\chrome-devtools-mcp\chrome-profile - Linux / macOS:
~/.cache/chrome-devtools-mcp/chrome-profile
目录不会自动清空,登录态可以跨次复用,但同一时间只能有一个浏览器占用。多会话并行时建议加 --isolated,每次用临时目录,关闭后自动清理。
3. 常见启动参数
| 参数 | 作用 |
|---|---|
--headless |
无头模式,CI 必备 |
--isolated |
临时用户目录,结束后清理 |
--slim |
只暴露 navigate、evaluate、screenshot 三个工具 |
--viewport=1280x720 |
指定视口 |
--channel=canary / beta / dev |
切换 Chrome 通道 |
--allowedUrlPattern / --blockedUrlPattern |
URL 白名单 / 黑名单 |
--no-performance-crux |
不向 CrUX API 发送 trace URL |
--no-usage-statistics |
关闭匿名使用统计 |
--categoryMemory=false 等 |
按分类关闭整组工具 |
4. 上下文优化:什么时候该用 --slim
60 个工具的 schema 会占用可观的上下文。如果你的需求只是"打开网页、跑点 JS、截个图",加 --slim 就够了;如果只需要性能或调试,可以用 --category* 参数精准裁剪。
九、隐私与安全
这是必须认真对待的部分:
- 它能读写浏览器里的任何数据。不要把装有网银、邮箱、公司后台的浏览器直接暴露给不受信任的 MCP 客户端。
- 只官方支持 Chrome 和 Chrome for Testing。Edge、Brave 等 Chromium 系可能能用,但出问题不保证修复。
- 性能工具会向 Google CrUX API 发送页面 URL 以获取真实用户数据,用
--no-performance-crux可关闭。 - 匿名使用统计默认开启(工具成功率、延迟、环境信息),用
--no-usage-statistics或环境变量CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS=1关闭。 - 某些网站会拒绝被 WebDriver 控制的浏览器登录(比如 Google 账号)。这是浏览器端的限制,不是工具缺陷,用
--autoConnect接管手动打开的浏览器可以绕开。 - 想进一步收紧权限时,用
--allowedUrlPattern限定可访问域名,并把--filesystemRoot限定在工作目录内。
十、常见问题
Q:装好了,但 AI 一直不调用它? A:部分客户端的模型对 MCP 工具不会主动触发,需要在提示里明确写"使用 chrome-devtools 工具"。装 Plugin 版附带 skills 后,触发率会明显提升。
Q:一个 MCP 服务器能同时服务多个会话吗?
A:可以。默认开启了 page id 路由,每个会话通过 pageId 操作自己的标签页。想彻底隔离,加 --isolated 让每个会话开自己的临时配置目录。
Q:默认启动的 Chrome 没有我的登录态怎么办?
A:两种办法:一是手动在那个 profile 里登录一次(配置目录会保留);二是用 --autoConnect 接管你日常使用的 Chrome。
Q:性能和 Lighthouse 有什么区别? A:Lighthouse 负责无障碍 / SEO / 最佳实践;性能必须用 trace 工具,能拿到更细的 Core Web Vitals breakdown。
Q:Windows 上截图或启动失败?
A:确认通过 npx -y chrome-devtools-mcp@latest 启动、Chrome 版本不低于稳定版,并检查路径里是否有中文或空格导致参数解析异常。仍失败时查看 --logFile 指定的日志。
十一、和同类方案怎么选
| 方案 | 适合场景 |
|---|---|
| chrome-devtools-mcp(官方) | 开发调试、性能优化、QA 自动化、内存泄漏排查 |
| hangwin/mcp-chrome(社区扩展方案) | 让 AI 操作你日常使用、已登录的浏览器 |
| Playwright MCP | 跨浏览器(Firefox/WebKit)自动化测试、端到端脚本 |
| 浏览器自带 DevTools | 人工排查,不可被 AI 调用 |
简单原则:
- 要专业调试和性能:选官方 chrome-devtools-mcp
- 要带着登录态操作网站:选 hangwin/mcp-chrome,或给官方版加
--autoConnect - 要多浏览器兼容测试:选 Playwright 系
结语
Chrome DevTools MCP 最打动人的地方,不是"能自动点按钮",而是把 Chrome 二十年积累的调试能力以工具的形式交到了 AI 手里。当模型能自己录 trace、自己看网络请求、自己分析堆快照时,"帮我看看这个页面为什么慢"就不再需要你在 DevTools 面板里手动翻半天。
先从 Check the performance of <你的站点> 开始试一次,你会明白我在说什么。
参考链接