Chrome DevTools MCP:用自然语言搞定浏览器自动化与调试

本文深入探讨 Chrome DevTools MCP,这是一个能让你通过自然语言控制 Chrome 浏览器的工具。我们将介绍其安装、核心功能(如自动化、调试和前端构建),并展示如何将其集成到 AI 编码助手中,彻底改变前端开发与测试的工作流。

阅读时长: 6 分钟
共 2520字
作者: eimoon.com

写过浏览器自动化脚本的朋友,估计都和 Selenium 或 Puppeteer 的 CSS 选择器搏斗过。有时候,一个微小的前端改动,就能让整个脚本挂掉,维护起来相当头疼。如果我们能直接用大白话告诉浏览器“点一下那个登录按钮”,然后它就照做,那该多好?

Chrome DevTools 团队推出的 MCP (Model Context Protocol) 服务器,就把这个想法变成了现实。它像一个翻译官,把你用自然语言下达的指令,转换成浏览器能听懂的自动化操作。这背后由 Puppeteer 驱动,整个过程都在你自己的机器上运行,安全又可靠。

这篇文章,我们就来聊聊怎么把这个工具用起来,看看它如何通过对话的方式,帮你搞定浏览器自动化、调试,甚至辅助前端开发。

Chrome DevTools MCP 是个什么东西?

简单来说,Chrome DevTools MCP 是一个本地服务,它为你的 AI 编码助手(比如 Claude、Cursor 等)提供了一套控制 Chrome 浏览器的工具集。当你对 AI 助手说“打开某个网站并截图”时,助手会调用 MCP 服务器提供的 navigate_pagetake_screenshot 工具来完成这个任务。

Chrome DevTools MCP 架构图

它内置了 26 个工具,覆盖了六大类操作:

  • 输入自动化: clickfill_formhover 等。
  • 导航: navigate_pagenew_pageclose_page 等。
  • 调试: evaluate_scriptlist_console_messagestake_screenshot 等。
  • 网络: list_network_requestsget_network_request
  • 性能: 性能追踪与分析相关工具。
  • 模拟: 模拟不同的 CPU、网络环境或页面尺寸。

有了这些工具,你就能用聊天的方式完成很多之前需要写代码才能做的事情,比如:

  • 端到端测试用户流程:模拟用户注册、登录、浏览、下单等完整操作。
  • 快速调试:不用手动打开 DevTools,直接问 AI “页面有没有报错?”,它会帮你检查控制台和网络请求。
  • 迭代式构建前端:让 AI 写完一段代码后,自己截图检查 UI 效果,然后继续修改。
  • 网页数据提取:在页面上执行 JavaScript 脚本,抓取你需要的信息。

安装与设置

上手过程很简单,你只需要准备:

  • Node.js (v20.19 或更高版本) 和 npm。
  • 一个支持 MCP 的 AI 编程助手,这里我们以 Claude Code 为例。
  • Chrome 浏览器(Puppeteer 会自动处理,无需额外配置)。

如果你用的是 Claude Code,直接在终端里运行下面这行命令就行:

claude mcp add chrome-devtools npx chrome-devtools-mcp@latest

这行命令会把 Chrome DevTools MCP 注册到 Claude Code 中。npx 会自动下载并运行最新的包,非常方便。搞定之后,重启一下你的 AI 助手,让配置生效。

如果你用的是 Cursor、Cline 或其他工具,安装方式大同小异,具体可以参考 Chrome DevTools MCP 的 GitHub 页面上的说明。

装好后,我们来测试一下。对你的 AI 助手说:

导航到 demo.realworld.io 并截个图

如果一切顺利,你会看到 Chrome 浏览器被自动打开,加载了指定的网页,然后 AI 助手会给你展示一张截图。

核心功能实战

接下来,我们通过一些实际操作,看看这个工具到底有多好用。我们会用一个叫 Conduit (demo.realworld.io) 的演示网站来做实验。

基础浏览器自动化:告别选择器

过去,我们要点击一个链接,得先找到它的 ID 或者 XPath。现在,直接说就行了。

打开 demo.realworld.io

AI 会调用 navigate_page 工具,加载页面。

Conduit 网站首页

接着,我们来交互一下:

点击 “Sign in” 链接

AI 会自动定位并点击这个元素,跳转到登录页。

Conduit 登录页

填表单也一样简单,你可以一步步填,也可以一次性搞定。

用邮箱 test@example.com 和密码 testpass123 填写登录表单

AI 会调用 fill_form 工具,把信息填入对应的输入框。这整个过程,我们完全没碰过 HTML 代码。

已填写的登录表单

在编辑器里直接调试

这可能是最实用的功能之一了。当页面出问题时,我们不用再切到浏览器里去翻控制台。

比如,Conduit 首页的文章列表和标签一直显示 “Loading…"。

首页加载失败

我们可以直接问 AI:

检查一下当前页面的控制台有什么错误

AI 会使用 list_console_messages 工具,很快就找到了问题所在:

Error> Access to XMLHttpRequest at 'https://api.realworld.io/api/articles'
from origin 'https://demo.realworld.io' has been blocked by CORS policy
Error> Access to XMLHttpRequest at 'https://api.realworld.io/api/tags'
from origin 'https://demo.realworld.io' has been blocked by CORS policy

原来是 CORS(跨域资源共享)策略阻止了 API 请求。这个发现过程几乎是瞬时的。

控制台的错误通常和网络请求有关,我们可以继续深挖:

看看这个页面有哪些失败的网络请求?

AI 会调用 list_network_requests,然后告诉你:“有四个 API 请求失败了,其中两个是 307 重定向,另外两个直接报错 ERR_FAILED。”这在个场景下,问题定位就非常快了。

动态执行 JS 提取数据

evaluate_script 工具让你可以在当前页面上执行任意 JavaScript 代码。这对于数据提取或者检查页面状态非常有用。

看看首页上显示了多少篇文章

AI 会在后台运行一小段 JS:

const articles = document.querySelectorAll('.article-preview');
return articles.length;

然后返回结果:“页面上显示了 0 篇文章。看起来是 API 错误导致内容没有加载出来。”

你甚至可以提取更复杂的结构化数据:

获取页面标题和主标题的文本

AI 会执行:

return {
 pageTitle: document.title,
 mainHeading: document.querySelector('h1')?.textContent
};

返回结果:{pageTitle: "Home — Conduit", mainHeading: "conduit"}

实战:让 AI 自己构建并测试前端界面

AI 助手能写代码,但它们是“盲人”,看不到自己写的界面长什么样。通常我们需要手动截图,再把图片发给它,让它调整。

有了 Chrome DevTools MCP,这个循环就可以被打破。AI 可以自己写代码、自己运行、自己截图、自己检查、自己修改。

我们来试试让它构建一个基于 Streamlit 的 ChatGPT 克隆版。

用 Streamlit 构建一个 ChatGPT 克隆应用。界面要简洁,包含消息历史、文本输入框和 OpenAI API 集成。侧边栏需要有 API 密钥管理和聊天管理功能(如清空对话、新建对话)。在每一步都使用 Chrome DevTools MCP 来验证 UI。

AI 开始工作后,它会先创建一个带侧边栏的基础应用,然后立刻调用 take_screenshot 检查布局。

ChatGPT 克隆版初始界面

接着,它会测试聊天功能是否正常。

首次提问与回答

然后测试多轮对话的上下文记忆能力。

测试多轮对话

最后,它会通过 click 工具测试“清空对话”按钮的功能,并再次截图确认界面已重置。这整个过程,AI 就像一个真正的开发者一样,有自己的视觉反馈闭环,而我们只需要下达最初的指令。这的的却却改变了我们和AI协作的方式。

总结与展望

Chrome DevTools MCP 把浏览器自动化从繁琐的脚本编写,变成了一场自然的对话。

你可以从一些简单的任务开始尝试,比如让它帮你检查正在开发的网站有没有控制台报错,或者自动填充一些日常需要登录的表单。

当你熟练之后,可以尝试更复杂的组合任务:导航到页面 -> 填写表单 -> 提交 -> 截图确认结果 -> 检查网络请求是否成功。甚至可以利用性能分析和设备模拟工具,来测试你的网站在不同条件下的表现。

这只是一个开始。当这种能力与其他 MCP 服务器(如文件系统、数据库访问)结合时,我们就能构建出跨越多个系统的、真正强大的自动化工作流。

关于

关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计