browser-mcp

browser-mcp

Agent-native browser control MCP server that enables AI agents to browse and interact with web pages via accessibility tree snapshots and ref ID-based commands.

Category
访问服务器

README

Browser MCP

Derived from internal Hermes project.

Agent-native browser control MCP server — 让任何支持 MCP 的 AI agent 都能浏览网页。

为什么需要这个?

现有的浏览器 MCP(Playwright、Puppeteer)是给程序员写代码用的底层 API。这个 MCP 是给 LLM agent 用的:

  • Accessibility tree snapshot — agent "看到"的是可读的 DOM 树,不是原始 HTML
  • Ref ID 交互click("@e5") 就行,不用写 CSS 选择器
  • 本地运行 — 不需要云端浏览器,不需要 API key
  • 开箱即用 — 13 个工具覆盖浏览器操作 + 网络调试 + 测试用例录制

工作原理

MCP 客户端 (Claude Code / Cursor / ZCode ...)
        │  stdio
        ▼
browser-mcp (本仓库,Python MCP server)
        │  subprocess
        ▼
agent-browser CLI  ──►  本地 Chrome (headless 或 headed)

browser-mcp 是一层薄封装,把 agent-browser CLI 的能力以 MCP 工具的形式暴露给 LLM agent。agent 通过 ref ID 与页面交互,不用写选择器。

安装

前置依赖

需要 Python ≥ 3.10Node.js(用于安装 agent-browser)。

第 1 步:安装 agent-browser 并下载 Chrome

# 安装 CLI(需要 Node.js)
npm install -g agent-browser

# 下载它自带的 Chrome for Testing(首次安装必做)
agent-browser install

验证:

agent-browser --version
agent-browser open example.com && agent-browser snapshot -i
# 能看到页面的可交互元素列表,说明 agent-browser 就绪

第 2 步:安装 browser-mcp

git clone https://github.com/huaka1/browser-mcp.git
cd browser-mcp

# 建议用虚拟环境
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate

# 可编辑安装(同时注册 `browser-mcp` 命令行入口)
pip install -e .

验证:

browser-mcp --help               # 或:python -m browser_mcp.server

一键安装(让 Agent 帮你装)

不想手动跑命令?把下面这段 prompt 复制给你的 AI agent(Claude Code / Cursor / ZCode 等),它会自己执行安装、生成配置、并引导你验证。

请帮我安装并配置 browser-mcp(一个让 AI agent 控制浏览器的 MCP server)。
按步骤执行,每步验证通过后再进入下一步;失败就停下来告诉我原因和修复建议。

【前提检查】
- 跑 `node --version`;失败就提示我装 Node.js(macOS: `brew install node`)
- 跑 `python3 --version` 确认 ≥ 3.10;失败就提示我装 Python 3.10+

【1. 安装浏览器引擎】
  npm install -g agent-browser
  agent-browser install              # 下载 Chrome for Testing,约 1-2 分钟
  验证:agent-browser open example.com && agent-browser snapshot -i
        能列出页面可交互元素即成功

【2. 克隆并安装 browser-mcp】
  git clone https://github.com/huaka1/browser-mcp.git ~/browser-mcp
  cd ~/browser-mcp
  python3 -m venv .venv
  source .venv/bin/activate          # Windows: .venv\Scripts\activate
  pip install -e .
  验证:`python -m browser_mcp.server` 能启动(或 browser-mcp 在 PATH 中)

【3. 生成 MCP 配置 — 关键:合并而非覆盖】
  - 用 `~/browser-mcp/.venv/bin/python` 的绝对路径作为 command
  - 定位我的 MCP 配置文件:优先当前项目 ./.mcp.json,其次 ~/.claude.json
  - 若文件已存在:解析 JSON,在 mcpServers 下新增 "browser" 键(保留其它配置)
  - 若不存在:新建文件,写入 {"mcpServers": { ... }}
  - browser 配置内容:
      "browser": {
        "command": "<venv python 绝对路径>",
        "args": ["-m", "browser_mcp.server"],
        "env": { "BROWSER_MCP_HEADED": "1" }
      }

【4. 收尾】
  告诉我重启 MCP 客户端以加载新配置。
  重启后引导我调用 browser_navigate 打开 https://example.com 做最终验证——
  返回页面快照即代表安装链路打通。

提示:prompt 里默认开启有头模式(BROWSER_MCP_HEADED=1),方便你看到浏览器在干什么。如果旧 daemon 还在 headless 跑导致看不到窗口,让 agent 执行 agent-browser close --all 后重试即可。

配置 MCP 客户端

在你的 MCP 客户端配置里添加一个 browser server。最简单的方式是直接用 Python 模块启动:

{
  "mcpServers": {
    "browser": {
      "command": "/你/克隆的路径/browser-mcp/.venv/bin/python",
      "args": ["-m", "browser_mcp.server"],
      "env": {
        "BROWSER_MCP_HEADED": "1"
      }
    }
  }
}

仓库里有一份现成模板 .mcp.json.example,复制成 .mcp.json 后改路径即可。

command 一定要指向你本机的 venv python 绝对路径,否则 MCP 客户端找不到 browser_mcp 包。如果用的是全局 pip install,可以直接写 "command": "browser-mcp"、去掉 args

各客户端配置文件位置

客户端 配置文件
Claude Code ~/.claude.json(全局)或项目 .mcp.json
Cursor / Windsurf 各自的 MCP 设置面板
ZCode 项目 .mcp.json

配置完成后重启客户端,确认 browser_* 工具已加载。

想看到浏览器窗口(有头模式)

默认 headless,看不到浏览器在干什么。设环境变量即可显示窗口:

"env": {
  "BROWSER_MCP_HEADED": "1"
}

⚠️ agent-browser 是 daemon 模式,--headed 只在 daemon 首次启动时生效。如果之前已经有 headless daemon 在跑,新设的有头模式会被忽略。遇到这种情况,在终端跑 agent-browser close --all 关掉旧 daemon,再重新触发 MCP 工具调用即可。

首次验证

配置好后,让 agent 执行一个最简单的流程来确认链路通了:

  • 调用 browser_navigate 打开 https://example.com
  • 调用 browser_snapshot —— 应返回页面的可交互元素列表(链接、按钮 + ref ID)
  • 调用 browser_vision —— 应返回页面截图

三条都成功,说明安装完成。

工具列表

浏览器操作

工具 说明
browser_navigate 导航到 URL,返回页面快照
browser_snapshot 获取页面 accessibility tree + ref ID
browser_click 点击元素(通过 ref ID)
browser_type 在输入框中输入文本
browser_press 按键盘按键
browser_scroll 滚动页面
browser_back 浏览器后退
browser_vision 截图
browser_console 获取控制台输出 / 执行 JS
browser_get_images 列出页面图片

网络层调试

工具 说明
browser_get_network_logs 获取网络请求日志(支持 URL/方法/状态码/类型过滤)
browser_get_response_body 查看请求的完整详情(headers + response body)
browser_intercept_request 拦截/模拟/阻断请求(block ads, mock API)

测试用例录制(无感留痕 + 导出)

工具 说明
browser_list_steps 列出当前 session 缓冲区里已留痕的操作步骤
browser_export_steps 把操作步骤导出成 jsonl 测试用例,同时保存登录态

录制出的 jsonl 可让 agent 自己读回、用 role+name 重新定位元素重放,做无代码 E2E 回归。导出目录由 BROWSER_MCP_E2E_DIR 指定。

环境变量

变量 说明 默认
BROWSER_MCP_HEADED 1 显示浏览器窗口(非 headless) headless
BROWSER_MCP_DEBUG 1 启用调试日志
BROWSER_MCP_E2E_DIR jsonl 测试用例导出目录

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选