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 应用调用外部工具的标准方式——在这里,工具就是“浏览器”。
工作原理
- 你的 AI 应用使用
npx @browsermcp/mcp@latest启动 MCP 服务器。该服务器为你的用户账户生成一个 守护进程(后台进程)。 - AI 应用向服务器发送
browser工具调用,服务器将其转发给守护进程。 - 守护进程使用 Playwright(一个浏览器自动化库)驱动 Chrome 的标签页,但它不直接与 Chrome 通信——而是通过扩展进行。
- 扩展是一个轻量级继电器,使用 Chrome 的
chrome.debuggerAPI 实际控制浏览器。它只接受来自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 chromiumpnpm 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)。
相关
- 项目
- 项目
- 项目
- 项目