跳转到内容

Chrome DevTools MCP

该容器包含一个预配置的 Chrome DevTools MCP 服务器,为 Claude Code 提供无头浏览器自动化功能。无需额外设置,即可浏览网页、截取屏幕截图、检查 DOM 并与页面元素交互。

入口脚本会启动一个持久的无头 Chrome,并在端口 9222 上开启远程调试。chrome-devtools-mcp MCP 服务器在 Claude Code 设置中注册,并通过 --browserUrl 连接到这个共享浏览器。所有会话共享同一个浏览器实例和 Cookie 存储——登录状态、Cookie 和认证信息在各项目间持久保留。

工具描述
navigate_page导航到指定 URL 并等待页面加载完成
take_screenshot捕获当前页面的 PNG 截图
take_snapshot获取页面的无障碍树快照
click点击页面上的元素
type在输入框中输入文本
hover悬停在元素上
scroll滚动页面或特定元素
evaluate在页面上下文中执行 JavaScript
get_console_logs获取控制台日志消息
get_page_info获取页面元数据(标题、URL 等)

浏览器栈使用四个协同工作的组件:

  1. Playwright Chromium — 在构建时通过 npx playwright install --with-deps chromium 安装的 ARM64 兼容 Chromium 二进制文件
  2. Chrome 符号链接 — 将 Puppeteer 预期的路径(/opt/google/chrome/chrome)桥接到 Playwright 二进制文件
  3. 共享 Chrome 进程 — 由 chrome-browser.sh--remote-debugging-port=9222 启动,崩溃时自动重启
  4. 全局 MCP 注册settings.json--browserUrl=http://localhost:9222 注册 chrome-devtools-mcp

Google Chrome 没有 ARM64 的 .deb 安装包,而 Ubuntu 24.04 的 chromium-browser apt 包会重定向到 snap(在容器中无法使用)。Playwright 捆绑的 Chromium 是 ARM64 容器中唯一可靠的选择。

在容器内确认设置是否正常工作:

Terminal window
# Chrome 二进制文件响应
/opt/google/chrome/chrome --version
# 符号链接正确
ls -la /opt/google/chrome/chrome
# 远程调试已激活
curl http://localhost:9222/json/version
# 自检包含 Chrome 检查
claude-self-test

ENABLE_VNC=true 时,入口脚本会在启动 Chrome 之前启动 VNC 栈。chrome-browser.sh 脚本检测到 DISPLAY 已设置后,会在虚拟显示器上以有界面模式运行 Chrome,这样您就可以在 VNC 查看器中看到浏览器。

打开 http://localhost:6080/vnc.html 查看虚拟显示器。详情请参阅远程显示(noVNC)

请参阅故障排除 — Chrome DevTools MCP,获取常见问题的解决方案,包括远程调试失败、配置文件锁定错误和 MCP 工具重复等问题。