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 等) |
浏览器栈使用四个协同工作的组件:
- Playwright Chromium — 在构建时通过
npx playwright install --with-deps chromium安装的 ARM64 兼容 Chromium 二进制文件 - Chrome 符号链接 — 将 Puppeteer 预期的路径(
/opt/google/chrome/chrome)桥接到 Playwright 二进制文件 - 共享 Chrome 进程 — 由
chrome-browser.sh以--remote-debugging-port=9222启动,崩溃时自动重启 - 全局 MCP 注册 —
settings.json以--browserUrl=http://localhost:9222注册 chrome-devtools-mcp
Google Chrome 没有 ARM64 的 .deb 安装包,而 Ubuntu 24.04 的 chromium-browser apt 包会重定向到 snap(在容器中无法使用)。Playwright 捆绑的 Chromium 是 ARM64 容器中唯一可靠的选择。
在容器内确认设置是否正常工作:
# Chrome 二进制文件响应/opt/google/chrome/chrome --version
# 符号链接正确ls -la /opt/google/chrome/chrome
# 远程调试已激活curl http://localhost:9222/json/version
# 自检包含 Chrome 检查claude-self-test有界面模式(VNC)
Section titled “有界面模式(VNC)”当 ENABLE_VNC=true 时,入口脚本会在启动 Chrome 之前启动 VNC 栈。chrome-browser.sh 脚本检测到 DISPLAY 已设置后,会在虚拟显示器上以有界面模式运行 Chrome,这样您就可以在 VNC 查看器中看到浏览器。
打开 http://localhost:6080/vnc.html 查看虚拟显示器。详情请参阅远程显示(noVNC)。
请参阅故障排除 — Chrome DevTools MCP,获取常见问题的解决方案,包括远程调试失败、配置文件锁定错误和 MCP 工具重复等问题。