使用Chrome DevTools MCP服务器与Claude Code结合,以实现浏览器自动化和网页交互功能的文档。
此设置允许Claude Code通过模型上下文协议(MCP)与Chrome浏览器进行交互。Chrome DevTools MCP服务器提供了以下工具:
npm install -g @modelcontextprotocol/server-chrome-devtools
或者使用npx(无需安装):
npx @modelcontextprotocol/server-chrome-devtools
在配置文件~/.config/claude/claude_desktop_config.json中添加MCP服务器:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-chrome-devtools"
]
}
}
}
如果全局安装了,可以使用:
{
"mcpServers": {
"chrome-devtools": {
"command": "mcp-server-chrome-devtools"
}
}
}
MCP服务器通过Chrome DevTools协议连接到Chrome。需要启动带有远程调试功能的Chrome:
macOS:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
Linux:
google-chrome --remote-debugging-port=9222
Windows:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=222
配置完成后,重启Claude Code以加载MCP服务器。
Chrome DevTools MCP提供以下工具(所有工具名前缀为mcp__chrome-devtools__):
list_pages - 列出所有打开的浏览器标签页select_page - 通过索引选择特定标签页new_page - 打开一个新标签页并指定URLnavigate_page - 导航当前标签页到指定URLnavigate_page_history - 在历史记录中前进或后退close_page - 关闭标签页resize_page - 调整浏览器窗口大小take_snapshot - 获取页面文本快照,并为元素分配UIDtake_screenshot - 捕获页面或元素的截图evaluate_script - 在页面上下文中执行JavaScriptclick - 点击元素(通过快照中的UID)fill - 填写输入字段fill_form - 一次性填写多个表单字段hover - 将鼠标悬停在元素上drag - 拖放元素upload_file - 通过文件输入上传文件handle_dialog - 处理浏览器警告/确认/提示框list_network_requests - 获取自上次导航以来的所有网络请求get_network_request - 根据URL获取特定请求详情emulate_network - 模拟网络条件(3G、4G、离线)performance_start_trace - 开始性能记录performance_stop_trace - 结束记录并获取结果performance_analyze_insight - 获取详细的性能洞察emulate_cpu - 限制CPU以进行测试list_console_messages - 获取控制台日志、警告和错误wait_for - 等待特定文本出现在页面上列出并选择页面:
list_pages → select_page(0)
导航到URL:
navigate_page("https://example.com")
拍摄快照以查看页面结构:
take_snapshot → 返回所有可交互元素的UID
与元素交互:
click(uid="1_28")
fill(uid="1_86", value="搜索词")
监控网络活动:
list_network_requests → 查看所有API调用和加载的资源
1. navigate_page("https://news.ycombinator.com")
2. take_snapshot
3. 阅读头条新闻并决定点击什么
4. click(uid_of_interesting_article)
5. take_snapshot以阅读文章
1. navigate_page("https://x.com")
2. take_snapshot
3. fill(uid_of_tweet_box, "您的推文内容")
4. click(uid_of_post_button)
1. navigate_page("http://localhost:3000")
2. take_screenshot以进行视觉比较
3. 使用测试数据填写表单
4. 点击提交按钮
5. wait_for("成功消息")
6. list_console_messages以检查错误
1. performance_start_trace(reload=true, autoStop=true)
2. 等待跟踪完成
3. performance_analyze_insight("LCPBreakdown")
4. 获取详细的Core Web Vitals数据
wait_for等待导航或交互后的内容加载。list_console_messages检查控制台消息以调试问题。close_page关闭已完成的标签页,以保持浏览器整洁。--remote-debugging-port=9222运行wait_foremulate_network进行测试这是一个真实的会话示例:
所有这些都是通过Claude Code使用自然语言命令完成的,而MCP服务器则在后台处理浏览器自动化。