浏览器CSS检查工具

为AI编程工具提供浏览器DevTools中的CSS可见性,帮助开发者调试和修复样式问题。

  • by betson-g
  • JavaScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 betson-uni/browser-inspector-mcp

使用说明

浏览器检查器mcp

为您的AI编码工具提供与浏览器DevTools中相同的CSS可见性。

调试原语,而不是测试工具——没有测试运行器,没有通过/失败。在你的人工智能编写CSS之前,让它看看浏览器中实际有什么——真实呈现的类名、完整的级联规则、获胜的原因以及原因。人类从DevTools获得的数据相同。零手动复制粘贴。当某些东西不起作用时,该工具会解释原因并指出可能的原因。

完整的文档和视觉效果→


TLDR — I know what I'm doing, just show me the setup

要求: Node.js 18+,一个兼容MCP的AI工具(Claude Code、Cursor、Windsurf、Cline等),一个正在运行的本地开发服务器。

配置 (添加到AI工具的MCP配置文件中):

{
  "mcpServers": {
    "browser-inspector": {
      "command": "npx",
      "args": ["-y", "browser-inspector-mcp"]
    }
  }
}

配置文件位置:

  • 克劳德代码: ~/.claude.json
  • 光标: ~/.cursor/mcp.json 或 .cursor/mcp.json
  • 风浪: ~/.codeium/windsurf/mcp_config.json
  • 其他:无论您的工具在何处读取MCP服务器配置

重启你的AI工具。首先,告诉你的AI你的开发服务器正在哪个URL上运行——浏览器会话将在对话的其余部分持续。

一个工具,四个行动: browser_inspect 和 action: "dom" (渲染DOM), "styles" (全CSS级联), "diff" (验证之前/之后), "screenshot" (视觉快照)。或者只是描述你需要什么——克劳德选择了正确的行动。

首次使用时,Puppeteer会下载Chromium(约170MB)。

Teach me — I'm new to this, walk me through everything

在你开始之前——你需要什么

这个工具连接了你需要已经设置好的两件事:一个人工智能编码工具和一个你正在积极工作的网络项目。以下是每件事的含义以及如何获得它们。


1.Node.js(运行此工具的引擎)

Node.js是一个让你的计算机在浏览器之外运行JavaScript的程序。npm和npx——用于安装和运行此工具的命令——包含在Node.js中。

你已经有了吗? 打开终端(Mac)或命令提示符(Windows),然后键入:

node --version

如果你看到一个版本号,比如 v20.11.0你很好。如果你遇到错误,你需要安装它。

安装它: 下载自 nodejs.org --获取LTS版本(标记为“推荐给大多数用户”的版本)。运行安装程序。就这样


2.人工智能编码工具

这是您在要求AI编写或修复代码时键入的工具。此MCP服务器适用于以下任何一种情况——您只需要一个:

工具 它是什么 获取它
克劳德代码 Anthropic的AI在你的终端 claude.ai/code
光标 AI优先的代码编辑器(如内置AI的VS code) cursor.com
帆板运动 Codeium的AI代码编辑器 codeium.com/windsurf
克莱恩 VS Code的AI编码扩展 VS Code扩展市场
继续 开源AI编码助手 continue.dev

如果你还没有,也不确定从哪里开始:试试 光标。如果你有设计背景,它的学习曲线最平缓。


3.什么是MCP(一句话)

MCP(模型上下文协议)是一种标准方式,可以让人工智能工具访问额外的功能,比如浏览器、数据库或文件系统。这个工具就是这些功能之一。您只需在AI工具中添加几行配置即可安装它,它就会自动显示在AI的工具箱中。


4.本地运行的web项目

此工具在实时浏览器中检查CSS。这意味着您需要在计算机上运行一个web项目,通常是您正在积极开发的React、Vue或类似应用程序。

当您在本地运行项目时,它会在以下地址打开 http://localhost:5173 或 http://localhost:3000。这是您将为该工具提供的URL。

如果您没有本地项目,此工具将没有任何可检查的内容。它专为活跃的开发工作流程而设计,而不是用于检查实时公共网站。


如何安装

你不需要预先安装任何东西。当您配置AI工具时(下一步),它将下载并运行 browser-inspector-mcp 第一次需要时,使用名为 npx.

它第一次运行时,还将下载一个名为Chromium(~170MB)的浏览器。这是该工具用于检查您的页面的无头浏览器——它在后台不可见地运行,与您的常规Chrome或Safari无关。


如何配置你的AI工具

您需要将一小段配置(JSON块)添加到计算机上的文件中。JSON只是一种结构化的文本格式。该块看起来像这样:

{
  "mcpServers": {
    "browser-inspector": {
      "command": "npx",
      "args": ["-y", "browser-inspector-mcp"]
    }
  }
}

您将其添加到的文件取决于您使用的AI工具。在下面找到你的。

重要提示: 如果配置文件中已经有其他内容,则您是在添加它,而不是替换它。请参阅下面的示例。


克劳德代码

文件位置: ~/.claude.json

这 ~ 指您的主文件夹。在Mac上,这是 /Users/yourname/。文件可能还不存在——如果不存在,请创建它。

打开终端并运行:

open -e ~/.claude.json

这将在TextEdit中打开文件。如果文件不存在,请创建一个新文件并粘贴:

{
  "mcpServers": {
    "browser-inspector": {
      "command": "npx",
      "args": ["-y", "browser-inspector-mcp"]
    }
  }
}

如果文件已包含内容,请查找 "mcpServers" 部分并添加 "browser-inspector" 阻止它。不要删除已经存在的内容。

保存文件,然后 退出并重新打开Claude Code.


光标

文件位置: ~/.cursor/mcp.json (适用于您的所有项目) 或 .cursor/mcp.json 在特定项目文件夹内(仅适用于该项目)

在光标中,转到: 设置→ MCP --通常有一个UI可以直接添加MCP服务器,这比手动编辑文件更容易。如果您更喜欢编辑文件,请在上面添加相同的JSON块。

重新启动游标 保存后。


帆板运动

文件位置: ~/.codeium/windsurf/mcp_config.json

打开文件,添加相同的JSON块,保存,然后 重新启动Windsurf.


Cline(VS代码扩展)

在安装了Cline的VS Code中:打开Cline侧栏→ 单击设置图标→ 查找“MCP服务器”→ 使用以下命令添加新服务器 npx 和args ["-y", "browser-inspector-mcp"].


其他工具(Continue、OpenCode、Codex等)

任何与MCP兼容的工具都接受相同的配置块。找到您的工具存储MCP服务器配置的位置,并将其添加到那里。


如何使用它

配置后,工具将自动可用。你不用直呼他们的名字,只要描述一下你正在做什么。

开始会话: 告诉你的AI你的开发服务器运行在哪个URL上:

I'm working on the dashboard at http://localhost:5173 — the button styles aren't applying correctly.

AI将使用它需要的工具。浏览器会话在整个对话中保持打开状态——你只需要提到一次URL。

AI在幕后做什么:

You:  "The icon in the panel header isn't picking up the brand color"

AI:   → browser_inspect(action="dom", selector=".panel-header")
        sees the real rendered class names, finds the icon is <span class="panel__header-icon">
      → browser_inspect(action="styles", selector=".panel__header-icon", properties=["color"])
        sees there's an explicit color rule on the icon overriding the parent
      → fixes the right rule, first try

没有DevTools。没有复制粘贴。没有来回。


这解决了问题

通常会发生什么

你要求你的AI工具修复一个样式问题。它读取源文件,写入CSS更改并应用它。您可以检查浏览器。还是错了。AI再次尝试。还是错了。几轮之后,你自己打开DevTools,找到实际的元素,复制HTML,将其粘贴回聊天中——只有这样,人工智能才能理解它实际处理的是什么。

手动复制粘贴步骤?这就是这个工具缩小的差距。

为什么它一直在发生

AI读取源文件。浏览器呈现不同的东西。

Ant Design、Material UI和Radix等现代组件库在运行时生成自己的类名——这些名称不会出现在源代码的任何地方。你的JSX说 <Menu>。浏览器呈现 ant-dropdown-menu-item-containerAI为以下对象编写CSS ant-menu-item 因为这就是它在源头上发现的。这条规则从不适用。

还有第二个问题:即使人工智能瞄准了正确的元素,它也无法确认其变化是否到位。CSS是否适用?有什么东西覆盖了它吗?是 font-weight 是已经大胆了,还是只是看起来如此?没有DevTools,每个答案都是猜测。

这有三种表现方式

问题1——阅读食谱,而不是菜肴

裁缝研究西装的原始设计图案——平纸模板。他们知道每一个接缝。但他们面前的西装是由其他人修改的。模式不是建造出来的。

这是AI读取CSS源文件。它正在读取原始模式。浏览器呈现了一些不同的东西。人工智能不断改变错误的接缝。

检查员是试衣间。在触摸它之前,你先检查一下实际建造的东西。

问题2——调整航空遮阳帘

你在后院调整电视天线。里面有人在看照片。每次你移动它,你都会大喊“好还是坏?”然后等待。每次调整都是一次往返。

这就是推-检查-推循环。AI做出了改变。你走到浏览器。你看。你回来并键入你所看到的。每个循环都是一次往返,拿着天线的人和看屏幕的人之间没有直接联系。

这个工具就是铁丝。AI会自动检查结果,无需你来回走动。

问题3——治疗错误的病人

医生看到一个面色苍白、疲惫不堪的人。如果不检查它们,他们就会认为缺铁并相应地开出处方。六周后,一切都没有改变。一直都是甲状腺。

AI会查看屏幕截图中显示为粗体的文本。它假设 font-weight 设置得很高。它试图覆盖它。但值是400——文本就是以这种大小呈现的。人工智能在会话中解决了一个不存在的问题。

开药前先检查一下。计算出的值就是检查值。


给谁的

使用AI编码工具的设计师 --Cursor、Claude Code、Windsurf、Cline。你通过视觉进行思考和验证。打开DevTools并将HTML粘贴回聊天中是一个令人不快的上下文切换,会打断你的流程。这完全消除了这一步。

前端工程师 他们希望他们的AI配对程序员能够自己完成循环——检查、更改、验证——而不需要浏览浏览器实际渲染的内容。

设计系统贡献者 使用运行时类名与源不匹配的组件库。Ant Design、Material UI、Radix、Shadcn——任何浏览器构建与JSX不同结构的地方。

任何调试CSS的人 谁曾说过“为什么这不适用?”并希望人工智能可以只看浏览器而不是猜测。


与克劳德-铬一起工作

人类学 claude --chrome 集成允许Claude Code在您的实时浏览器中导航、单击、填写表单和截图。浏览器检查器mcp做了一些不同的事情:它读取CSS级联——哪条规则获胜,它来自哪里,为什么一种样式不适用。

他们从事不同的工作。一个好的工作流程:使用 claude --chrome 要导航到要检查的状态,请使用浏览器检查器mcp调试CSS。这两种工具都不能取代另一种。


该工具使用哪个Chrome?

该工具以两种模式之一运行并自动拾取:

托管(默认设置为零)。 什么都不做,该工具就会在幕后启动自己的无头Chrome。非常适合在没有任何配置的情况下检查任何公共URL或本地开发服务器。视口是固定的1440×900。

附(选择加入-更丰富)。 该工具连接到您控制的真实可见的Chrome浏览器:您的真实视口、真实的客户端路由,您可以登录到您的应用程序,以便它检查经过身份验证的有状态页面。有一个重要的问题值得提前了解:

Chrome不会让任何东西调试你的日常配置文件。 自Chrome 136(一款经过深思熟虑的 安全更改),the --remote-debugging-port 除非Chrome是 也 使用单独的配置文件目录启动。因此,附加模式无法将主Chrome浏览器与现有标签页一起使用——它使用 专用调试Chrome 你设置了一次。把它想象成你的第二个Chrome浏览器:在那里登录一次你的应用程序,它就会保持登录状态。

设置一次,让它运行,工具会自动连接:

macOS

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
  --remote-debugging-port=9222 \
  --user-data-dir="$HOME/.chrome-debug-profile"

Linux

google-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-debug-profile"

视窗

"C:\Program Files\Google\Chrome\Application\chrome.exe" ^
  --remote-debugging-port=9222 ^
  --user-data-dir=%LOCALAPPDATA%\chrome-debug-profile

这 --user-data-dir 是 必需的 --没有它,Chrome 136+会默默地忽略调试端口,该工具会退回到托管模式。用一 稳定的 如上所示的路径(持久文件夹), 不 /tmp,它在运行之间被擦除,因此每次配置文件都会打开空白。提示:将命令别名为一个按键,并在工作时保持此Chrome打开。

如果调试Chrome未运行,该工具会先尝试连接,然后回退到托管模式 每个响应告诉您使用了哪种模式,所以你永远不会猜到你在看哪个Chrome。

环境变量

将这些设置在AI工具的MCP配置下( env 旁边的街区 command 和 args):

变量 默认值 它的作用
BROWSER_INSPECTOR_MODE auto auto 尝试附加然后回退。 attached 如果端口上无法访问Chrome,则会出现错误。 managed 仅使用内部无头Chrome(v2.x行为)。
BROWSER_INSPECTOR_PORT 9222 要连接的端口
BROWSER_INSPECTOR_HOST 127.0.0.1 主机名。很少需要改变。

一个工具,四个动作

dom --查看浏览器实际构建的内容

在AI编写任何CSS之前,它会调用这个。返回您指向的任何元素的实际渲染HTML——实际运行时类名、实际DOM结构。

这是试衣间。人工智能在触摸之前会检查实际构建的内容。

styles --查看每个CSS规则以及谁获胜

当没有显示样式更改时,这将返回元素的完整CSS级联:按顺序匹配的每个规则,它来自哪里(样式表+行号),以及哪些属性是活动的,哪些是覆盖的。

还可以遍历4个级别的祖先元素,并返回其布局关键的计算样式——溢出、大小、flex上下文。当约束不在元素本身上,而是在父元素上时很有用。

AI可以看到你的规则是否达到了元素,是否有什么东西覆盖了它,以及获胜规则的确切定义。

diff --确认实际发生的更改

风格比较之前/之后。第一次调用会保存快照。CSS更改后的第二次调用显示了哪些属性发生了更改以及更改了多少。如果没有什么变化,它明确地说。

这就是人工智能在不手动检查浏览器的情况下知道其修复工作的方式。

screenshot --任何元素的视觉快照

返回任何元素的裁剪截图。人工智能在线接收图像,可以看到它正在处理什么。

在附加模式下,屏幕截图完全反映了您所看到的内容——相同的视口、相同的状态、相同的一切。在托管回退模式下,屏幕截图在无头浏览器中以1440×900的分辨率呈现,因此它可能与您在当前窗口大小下在自己的Chrome浏览器中看到的不匹配。CSS数据操作(dom, styles, diff)在任一模式下返回准确的数据。

openInNewTab --附加模式的可选修改器

当该工具连接到您的Chrome浏览器并且您通过 url 这与任何打开的选项卡都不匹配,默认情况下,它会检查您的活动选项卡并添加警告。如果你想让该工具为特定的URL弹出一个新的标签页——比如,一个你想在不接触当前标签页的情况下检查的公共网站——通过 openInNewTab: true。仅适用于附加模式;否则忽略。


需求

  • Node.js 18或更高版本-- nodejs.org
  • MCP兼容的AI编码工具(Claude Code、Cursor、Windsurf、Cline、Continue、OpenCode、Codex或任何其他)
  • 您要检查的本地运行的web项目

适用于任何CSS方法——针对Tailwind JIT、CSS模块(Next.js)和Emotion进行了测试。


接下来会发生什么

  • 交互原语 — click, hover, type 因此,即使你没有在自己的浏览器中手动设置,人工智能也可以达到交互状态(打开菜单、聚焦环、悬停效果)。仔细限定范围,避免与通用浏览器自动化工具重叠。
  • 现场注射 --AI通过CDP直接写入浏览器,您可以立即看到更改,源文件只有在结果得到确认后才会被触摸。循环中没有文件保存或热重新加载。
  • 门户和影子DOM支持 --在父级之外渲染的组件库元素(下拉菜单、模态、工具提示)。

许可证

麻省理工学院