BrowserMCP/mcp

Browser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser

它是什么

Browser MCP 是一个桥接器,让 AI 编码助手(Claude Code、Cursor、VS Code、Codex、Claude Desktop 等)控制你自己的 Chrome 浏览器——使用你现有的登录状态、Cookie 和个人资料——在单独的标签页中。一切都在你的机器上本地运行;不会向云服务发送任何内容。

它由两部分组成:

  • 一个 Chrome 扩展(可在 Chrome 网上应用店获取,或从源码构建),充当浏览器的遥控器。
  • 一个 MCP 服务器(一个小的 Node.js 程序),由你的 AI 应用启动并与之通信。MCP(模型上下文协议)是 AI 应用调用外部工具的标准方式——在这里,工具就是“浏览器”。

工作原理

  1. 你的 AI 应用使用 npx @browsermcp/mcp@latest 启动 MCP 服务器。该服务器为你的用户账户生成一个 守护进程(后台进程)。
  2. AI 应用向服务器发送 browser 工具调用,服务器将其转发给守护进程。
  3. 守护进程使用 Playwright(一个浏览器自动化库)驱动 Chrome 的标签页,但它不直接与 Chrome 通信——而是通过扩展进行。
  4. 扩展是一个轻量级继电器,使用 Chrome 的 chrome.debugger API 实际控制浏览器。它只接受来自 127.0.0.1(你自己的机器)上的守护进程的连接。

安全模型

扩展被刻意设计为限制性的:

  • 配对:在计算机上首次使用时,扩展的弹出窗口会显示一个六位代码。你必须仅在验证该代码与 AI 应用显示的代码匹配后点击 允许。这可以防止任何随机的本地进程劫持你的浏览器。
  • 硬性规则:即使守护进程要求,扩展也拒绝打开隐身窗口、浏览器内部页面(如 chrome://)或扩展页面。当你按下弹出窗口中的 停止 时,它也会停止所有控制。
  • 仅限本地:扩展只与 127.0.0.1 上的守护进程通信——没有互联网流量。

组件(仓库布局)

文件夹 包 用途
packages/mcp @browsermcp/mcp MCP 服务器和守护进程
packages/protocol @browsermcp/protocol 扩展与守护进程之间的通信协议,包括配对
packages/extension-core @browsermcp/extension-core 扩展的浏览器控制逻辑:连接、配对、调试器继电器、标签页规则、徽章
apps/extension @browsermcp/extension 从该仓库构建的实际 Chrome 扩展,包括其弹出 UI

从源码构建

要求:Node.js 24+、pnpm(通过 corepack enable 启用)、以及 Chrome 或基于 Chromium 的浏览器(Edge、Brave、Arc 等)。不支持 Firefox,因为它缺少 debugger API。

git clone https://github.com/BrowserMCP/mcp.git browsermcp
cd browsermcp
pnpm install
pnpm build

然后通过 chrome://extensions(开发者模式 → 加载已解压的扩展程序)从 apps/extension/.output/chrome-mv3 加载未打包的扩展。自构建的扩展与网上应用店版本具有相同的 ID,因此你不能同时运行两者——如果你有商店版本,请禁用它。

要使用你构建的服务器而不是 npm 版本,请将你的 AI 应用的 MCP 配置指向本地文件:

{
  "mcpServers": {
    "browsermcp": {
      "command": "node",
      "args": ["/path/to/browsermcp/packages/mcp/dist/index.js"]
    }
  }
}

注意:npx @browsermcp/mcp@latest 也适用于自构建的扩展——它是同一个服务器,只是从该仓库发布。

更新

git pull
pnpm install
pnpm build

然后在 chrome://extensions 中重新加载扩展,如果 AI 应用从该文件夹运行服务器,则重启它们。如果一方对另一方来说太旧,扩展和服务器会发出警告。

开发

  • pnpm lint、pnpm format / pnpm format:fix — 代码风格(Oxlint、Oxfmt)
  • pnpm typecheck、pnpm test — TypeScript 检查和单元测试(Vitest)。服务器测试需要 Playwright 的 Chromium:pnpm --filter @browsermcp/mcp exec playwright-core install chromium
  • pnpm smoke — 以开发模式构建所有内容,在无头 Chromium 中加载扩展,并像 AI 应用一样通过服务器驱动它,使用随机端口和临时 BROWSER_MCP_HOME,这样它永远不会触及你真实的 Browser MCP 设置。截图保存在 apps/extension/.output/smoke/
  • pnpm --filter @browsermcp/extension build:dev — 在 apps/extension/.output/chrome-mv3-dev 的开发构建

许可证与商标

Apache-2.0。名称“Browser MCP”及其徽标是商标——如果你发布修改版本,必须重命名并更改图标(参见 TRADEMARKS.md)。

相关

  • 项目
  • 项目
  • 项目
  • 项目