自建扩展需 Node.js 24 以上并用 corepack enable 启用 pnpm;自建扩展不会自动更新,需手动 pull、build 并在 chrome://extensions 重载;同一配置文件里若同时启用商店版和自建版扩展,会作为两个浏览器连接服务器,需关掉其一。
mcp
BrowserMCPApache-2.0活跃维护一个 MCP 服务器,让 Claude、Cursor 等 AI 应用直接操控你的浏览器,实现网页自动化操作。
Browser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
npx @browsermcp/mcp@latest需要 Chrome 或其他 Chromium 浏览器(Edge、Brave、Arc 等);Firefox 无 debugger API,不支持。README 未提及显存或 GPU 要求。
让 AI 应用通过 MCP 控制你自己的 Chrome,复用已登录站点和配置文件,全程在本机运行
一个 MCP 服务器,让 Claude、Cursor 等 AI 应用直接操控你的浏览器,实现网页自动化操作。
核心能力
- 每个 AI 应用启动 MCP 服务并转发 browser 工具调用
- 守护进程用 Playwright 经扩展驱动浏览器标签页
- 扩展通过 chrome.debugger 中继,仅连本机 127.0.0.1
- 首次使用需在弹窗核对六位配对码并点 Allow
- 扩展强制限制:禁无痕、禁浏览器与扩展页面
容易踩的坑
暂无 release 数据(可能没有发版,或尚未同步)。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Browser MCP
Browser MCP lets AI apps (Claude Code, Cursor, VS Code, Codex, Claude Desktop…) use your own Chrome: your signed-in sites, your profile, in tabs of their own. Everything runs on your computer.
- Website and docs: browsermcp.io, docs
- Extension: Chrome Web Store, or build it yourself
- MCP server:
@browsermcp/mcpon npm
How it works
Each AI app runs the MCP server (npx @browsermcp/mcp@latest), a small process that starts one daemon per user and forwards the app's browser tool calls to it. The daemon drives the browser's tabs with Playwright, through the extension: a thin chrome.debugger relay that only talks to the daemon on 127.0.0.1, and only after you click Allow in its popup once per computer, having checked that its six-digit code matches the one your AI app shows. The extension enforces its own rules whatever the daemon asks: no incognito tabs unless you turned on Allow in Incognito for the extension in Chrome, no browser or extension pages, and nothing while you've pressed Stop.
| Folder | Package | |
|---|---|---|
packages/mcp | @browsermcp/mcp | The MCP server and the daemon (README) |
packages/protocol | @browsermcp/protocol | The protocol between the extension and the daemon, including pairing |
packages/extension-core | @browsermcp/extension-core | The extension's browser control: the connection, pairing, the debugger relay, the rules about tabs, tab groups, the badge |
apps/extension | @browsermcp/extension | The extension built from this repo: browser control and its popup |
Build it yourself
You need Node.js 24 or later, pnpm (corepack enable) and Chrome or another Chromium browser (Edge, Brave, Arc…). Firefox has no debugger API, so Browser MCP doesn't work there.
The Chrome Web Store version updates itself. A build you load yourself doesn't: you update it by hand (see Updating).
-
Build the extension and the server:
git clone https://github.com/BrowserMCP/mcp.git browsermcp cd browsermcp pnpm install pnpm build -
Open
chrome://extensions, turn on Developer mode, click Load unpacked and pickapps/extension/.output/chrome-mv3. It's called "Browser MCP (self-built)". If the Chrome Web Store's Browser MCP is installed in the same profile, turn it off, or both would connect to the server as two browsers. Other Chrome profiles with Browser MCP connect too: agents can use tabs in each. -
In your AI app's MCP config, run the server you built instead of the one on npm:
{ "mcpServers": { "browsermcp": { "command": "node", "args": ["/path/to/browsermcp/packages/mcp/dist/index.js"] } } }npx @browsermcp/mcp@latest(the docs' setup) works with this extension too: it's the same server, published from this repo. -
Restart the AI app and ask it to do something in the browser. The first time, the extension's popup asks you to Allow the server on this computer: check that its code matches the one the AI app shows.
Every build of this extension has the same ID (imlplcjlhgpajopdbpbngiadkcmdbgob, from the key in apps/extension/extension-key.ts), which the server accepts besides the Chrome Web Store's. A build with another key needs its ID in BROWSER_MCP_EXTENSION_IDS (comma-separated) in the server's environment, or on a line of ~/.browsermcp/dev-extension-ids.
Updating
Only for a self-built extension: the Chrome Web Store version updates itself.
git pull
pnpm install
pnpm build
Then click the reload button on "Browser MCP (self-built)" in chrome://extensions, and restart your AI apps if they run the server from this folder. The extension and the server tell you when the other side is too old for them.
Development
pnpm lint,pnpm format(pnpm format:fixfixes it): Oxlint and Oxfmt.pnpm typecheck,pnpm test: TypeScript and the unit tests (Vitest) of every package. The server's tests run Playwright's Chromium: install it once withpnpm --filter @browsermcp/mcp exec playwright-core install chromium.pnpm smoke: builds the extension in development mode and the server, loads the extension in headless Chromium and drives it through the server as an AI app would, on random ports and a temporaryBROWSER_MCP_HOME, so it never touches your own Browser MCP. Screenshots and the daemons' logs go toapps/extension/.output/smoke/(--out <dir>elsewhere, e.g. for runs at once); a failed section names the step or check that failed, its error and the last call's output, and screenshots the open pages.pnpm --filter @browsermcp/extension build:dev: a development build (apps/extension/.output/chrome-mv3-dev).
Contributing and security
See CONTRIBUTING.md for how to report bugs and send changes, and SECURITY.md to report a vulnerability privately.
License
Apache-2.0. Building it for yourself or your team is fine, and so is saying that your tool is compatible with Browser MCP or built on its code. If you publish a modified extension or server (to a browser extension store, npm or anywhere else others install it from), please give it another name and icon, and don't present it as the official Browser MCP or as endorsed by it, so people can tell the two apart. Keep the LICENSE and say what you changed.