用途
chrome-dev-mcp 用于从同一个经过身份校验的 Chrome 浏览器中采集浏览器内部证据,包括页面快照(snapshot)、Console 消息、Network 请求、Performance 追踪、Lighthouse 结果和堆(heap)快照。它面向需要检查真实浏览器行为的智能体任务,例如在页面改动后验证界面、排查控制台错误或确认网络请求是否按预期发出。
主要能力
- 就绪检查:通过
zsh scripts/uxc-readiness.zsh执行一次真实的共享list_pages,并检查 UXC 信封与工具结果中的data.isError。 - 连接恢复:就绪检查返回
STATUS=ERROR时,可使用zsh scripts/ensure-connection.zsh --recover尝试恢复,并对同一就绪命令重试一次。 - 页面选择:从当轮
list_pages结果中按 URL 匹配并取得数字pageId,页面级调用均传入pageId,而不依赖select_page状态。 - 证据采集:可调用快照、脚本求值、网络请求列表与详情、页面导航等操作;截图等产物需写入运行时临时根目录,并始终传入
filePath。 - 验证流程:在重新加载或重复交互后,通过截图、Console 日志和 Network 请求三类证据判断改动是否完成。
使用方式
在技能目录下使用 zsh 运行辅助脚本(在 bash 下会因 A: unbound variable 中止)。无任务时运行 zsh scripts/uxc-readiness.zsh,成功仅回复 CHROME_DEV_MCP_READY;执行页面任务时运行 zsh scripts/uxc-readiness.zsh --private-result,并私密保留 list_pages 的 JSON 以选取 pageId。
命令示例:
chrome-dev-mcp-cli --timeout-ms 15000 take_snapshot pageId=3
chrome-dev-mcp-cli evaluate_script pageId=3 waitForStableDom=false 'function=() => document.title'
chrome-dev-mcp-cli list_network_requests pageId=3 pageSize=20 'resourceTypes:=["fetch","xhr"]'
chrome-dev-mcp-cli navigate_page pageId=3 type=url url='http://localhost:3000/x' timeout=30000
chrome-dev-mcp-cli <operation> -h
参数为 key=value 形式,数组和对象使用 key:=<json>;--timeout-ms 是全局标志,需放在操作名之前。若缺少 chrome-dev-mcp-cli,可运行 zsh scripts/setup-uxc-link.zsh 一次。调用方式为 Claude Code、Grok 和 Cursor CLI 中的 /chrome-dev-mcp,Codex 中的 $chrome-dev-mcp,在 Hermes 中预加载 chrome-dev-mcp。
适用场景
- 网页 UI 改动后的验证:截图查看最终界面、读取交互后的 Console 错误、检查应发出的 Network 请求及其状态。
- 诊断控制台与网络问题:仅针对已打开页面的 Console 或 Network 问题时,采集对应证据即可,无需截图。
- 通过共享浏览器会话支持多个智能体并行工作,同时避免独占冲突。
限制
- 调用由运行时串行化,同一标签页的多步写入没有跨智能体锁;若可能与其他智能体争用,应报告 UNVERIFIED。
- 禁止通过停止或重启守护进程、终止 UXC/Chrome/MCP 进程、扫描端口、读取
DevToolsActivePort、直接调用 uxc 或回退到 npx/@latest 来恢复连接,也不得用 Playwright、Computer Use 或原始 CDP 替代失败的连接。 link_contract_mismatch无法通过恢复修复,需从绑定的技能副本目录重新运行辅助脚本,且不应重新运行setup-uxc-link.zsh来重定向启动器。- 截图、快照、追踪、堆快照和保存的响应体只能写入
$(getconf DARWIN_USER_TEMP_DIR)对应的运行时临时根目录,/tmp、宿主临时目录和仓库路径会被拒绝。 - 缺失响应体不代表请求失败或无返回,失败、重定向或流式响应可能不保留响应体;不得为获取响应体重放有副作用的请求。
- 常规诊断应控制在约 90 秒工具时间内,超时或调用失败时应报告已有结果并将其余标记为 UNVERIFIED。