关于 Browser Automation
Browser Automation 是一个用于日常网页操作的 MCP 服务,适合需要观察或复用浏览器状态的用户。它提供可见的浏览器会话,并通过页面快照、截图和交互工具处理网页任务。
主要功能
- 01网页导航与标签页管理
- 02读取页面文本和无障碍快照
- 03点击、填写、键盘输入与滚动
- 04截图及导出 PDF
- 05持久化浏览器会话与手动登录
适用场景
- 01浏览网页并检查页面标题与内容
- 02在管理页面中填写表单或点击控件
- 03完成登录后继续使用同一浏览器会话
- 04将网页保存为截图或 PDF
MCP 相关
提供 MCP 服务,供 MCP 客户端调用浏览器导航、观察、交互、文件和会话管理工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @mindstone/mcp-server-browser-automationAGENT_BROWSER_SESSION_NAMESession name for browser persistenceAGENT_BROWSER_SHOW_WINDOWSet to 'false' to run the browser headless. Default is visible (true).AGENT_BROWSER_AUTOSAVE_INTERVAL_MSPeriodic session autosave interval in ms (agent-browser >=0.31.2). Default 0 (off).MCP_WORKSPACE_PATHWorkspace directory for browser_pdf outputs and browser_upload sources. Defaults to os.tmpdir() when unset.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
21收录的工具列表 · 更新于 今天
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要导航到的 URL(http://、https:// 或 about:blank) |
详细介绍
@mindstone/mcp-server-browser-automation
可供观察的浏览器控制:打开页面、登录、浏览页面、填写表单、截取屏幕截图,并保留可重复使用的浏览器会话。
最适用于实用的网页任务:用户需要查看、批准或重复使用浏览器状态,而不是运行完整的浏览器测试套件。
状态
- 版本: 0.2.3 · npm
- 身份验证: 无(
server.json) - 工具: 21(导航、观察、交互、会话、文件)
- 功能范围: 浏览器自动化
- 机器可读:
STATUS.json
为什么要开发它
Microsoft 的 Playwright MCP 是用于广泛浏览器自动化和测试的可靠选择。这个连接器有意保持精简,并提供更高的可见性。
当助手需要以便于用户跟进的方式处理普通网站时,可以使用它:打开真实浏览器,让用户完成登录,浏览管理界面、填写表单、截取屏幕截图,并在之后回到同一会话。它的重点是建立信任并满足日常使用需求,而不是提供所有浏览器测试功能。
交互示例
主机调用的工具:
browser_navigate— 在配置的浏览器会话中打开 URL。browser_get_page_info— 返回当前 URL 和页面标题。browser_screenshot— 截取 PNG 屏幕截图。
响应(节选):
{
"ok": true,
"url": "https://example.com/",
"title": "Example Domain"
}
要求
- Node.js 20+
- npm
PATH中有agent-browserCLI,或者可使用npx,以便服务自动安装它。
一键安装
点击按钮后,主机将提示你填写:AGENT_BROWSER_SESSION_NAME、AGENT_BROWSER_SHOW_WINDOW。
Claude Desktop / Claude Code / Goose / Continue.dev 手动配置(浏览器自动化)
{
"mcpServers": {
"Browser Automation": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-browser-automation"
],
"env": {
"AGENT_BROWSER_SESSION_NAME": "mcp",
"AGENT_BROWSER_SHOW_WINDOW": "true"
}
}
}
}
快速开始
npx
npx -y @mindstone/mcp-server-browser-automation
或者全局安装:
npm install -g @mindstone/mcp-server-browser-automation
mcp-server-browser-automation
此服务需要 agent-browser CLI 二进制文件来控制浏览器。
二进制文件解析
- PATH 查找(首选):如果
agent-browser位于PATH中,则直接使用。 - npx 回退:如果找不到该二进制文件,服务会自动回退到
npx -y [email protected]。
安装 agent-browser
npm install -g agent-browser
也可以让 npx 回退方案自动处理(首次使用时需要下载,因此速度较慢)。
配置
无需 API 密钥或凭据。服务通过 agent-browser CLI 与浏览器通信。
| 变量 | 必需 | 描述 |
|---|---|---|
AGENT_BROWSER_SESSION_NAME | 否 | 用于浏览器持久化的会话名称(默认:mcp) |
AGENT_BROWSER_SHOW_WINDOW | 否 | 设置为 false 可在不显示浏览器窗口的情况下运行。默认显示窗口(true)。 |
AGENT_BROWSER_AUTOSAVE_INTERVAL_MS | 否 | 会话定期自动保存的间隔(毫秒)(需要 agent-browser 0.31.2 或更高版本)。默认值为 0(关闭),因为每次定期保存都会短暂打开一个标签页,使浏览器窗口显示在其他应用前方。浏览器关闭时仍会保存会话(browser_close)。设置的任何值都会原样传递;空值或非数字值将采用 CLI 的默认值 30 秒。agent-browser 守护进程启动时会读取此值,因此正在运行的守护进程会继续使用之前的设置,直到退出(例如,在 browser_close 后)。 |
MCP_WORKSPACE_PATH | 否 | 工作区目录,browser_pdf 会将文件写入此目录,browser_upload 会从此目录读取文件。默认为系统临时目录。请参阅安全说明。 |
MCP 主机配置
{
"mcpServers": {
"browser-automation": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-browser-automation"]
}
}
}
可用工具(21 个)
导航
- browser_navigate — 导航至 URL
- browser_back — 在浏览器历史记录中后退
- browser_forward — 在浏览器历史记录中前进
- browser_wait — 等待元素出现或等待指定时间
查看
- browser_snapshot — 获取包含交互元素引用的页面无障碍树
- browser_screenshot — 截取当前页面
- browser_get_page_info — 获取当前页面的 URL 和标题
- browser_get_text — 获取页面或单个元素的文本内容
- browser_pdf — 将当前页面保存为 PDF 到工作区目录中(除非设置
overwrite: true,否则不会覆盖现有文件)
交互
- browser_click — 使用 @ref 或 CSS 选择器点击元素
- browser_fill — 清空字段并填入文本
- browser_type — 逐字符输入文本(真实按键)
- browser_press_key — 按下键盘按键
- browser_scroll — 朝指定方向滚动页面
- browser_select — 从下拉菜单中选择选项
- browser_hover — 将鼠标悬停在元素上
- browser_upload — 将工作区文件上传到文件输入框(仅限普通文件;上传前会在私有区域暂存)
- browser_evaluate — 在页面上下文中执行 JavaScript(默认启用;
destructiveHint: true,因此主机可以要求确认 — 请参阅安全说明)
会话管理
- browser_tabs — 列出打开的标签页或切换到某个标签页
- browser_close — 关闭浏览器会话
- browser_authenticate — 打开可见浏览器以便手动登录
工作流
典型工作流使用无障碍快照来可靠地定位元素:
browser_navigate→ 打开页面browser_snapshot→ 查看带有 @ref ID 的交互元素browser_click/browser_fill→ 使用 @ref 引用进行交互browser_screenshot→ 进行视觉验证
安全说明
浏览器自动化的攻击面很大:agent-browser CLI 会控制真实的无头浏览器,加载你传入的 URL,运行页面端 JavaScript,并在多次运行之间持久保存 Cookie 和会话状态。部署前请阅读本节。
browser_evaluate 默认运行——主机确认是安全关卡
browser_evaluate 允许模型在页面上下文中执行任意 JavaScript——这在安全层面相当于让模型在刚刚导航到的网站上获得 shell。该工具会无条件注册(能力优先);安全保障由主机的工具审批层提供。该工具标记为 destructiveHint: true,因此 MCP 主机应要求用户在每次调用前明确确认。请勿将主机配置为自动批准此工具。
URL 协议拒绝列表
browser_navigate 和 browser_authenticate 仅接受 http: 和 https: URL(以及特殊地址 about:blank)。在调用底层 agent-browser CLI 之前,其他 URL 协议都会被拒绝:
file:— 可能会让页面读取本地文件系统路径chrome:和chrome-extension:— 浏览器内部页面和已安装的扩展javascript:— 等同于对当前文档调用eval()data:— 内嵌由攻击者控制的 HTML/JS 载荷view-source:— 会绕过渲染内容的同源策略about:— 特权内部页面(about:config、about:cache、about:debugging,……);仅允许about:blank
Cookie 和会话持久化
连接器会通过 AGENT_BROWSER_SESSION_NAME(默认值:mcp)指示 agent-browser 使用具名持久会话。所有 Cookie、localStorage 数据,以及通过 browser_authenticate 完成的任何登录,都会以该会话名存储在磁盘上,并在后续运行中重复使用。任何能够读取会话存储的主体——本地用户、以相同用户身份运行的其他工具或备份——也都能使用这些已登录会话。
如需覆盖会话名(例如,为每个项目保留独立配置文件),请在主机的 MCP 服务配置中明确设置 AGENT_BROWSER_SESSION_NAME。如需清除状态,请通过 browser_close 关闭浏览器,并删除由 agent-browser 管理的会话目录。
推荐的部署方式
- 让连接器使用独立的浏览器配置文件——为每个 MCP 主机指定专用的
AGENT_BROWSER_SESSION_NAME。请勿重复使用日常浏览器配置文件:连接器会读取并覆盖其所指向配置文件中的 Cookie,而且恶意页面可能会借用你在任意网站上的现有登录会话。 - 要求主机确认
browser_evaluate——该工具默认运行;每次调用都会在页面上下文中执行任意 JavaScript。 - 要求主机确认
browser_authenticate以及任何可能导航至已登录网站的流程——否则,抓取内容中的提示词注入可能会驱动浏览器访问用户已登录的网站。 - 返回的页面内容均封装为不可信内容——无障碍快照、页面文本、标题、URL、标签页列表以及
browser_evaluate的输出都来自任意网站,可能包含提示词注入尝试。连接器会使用<untrusted-content source="…">封装这些内容(并对闭合标签进行转义),以便主机和模型将其视为数据而非指令。请在你自己的处理流程中保留这种处理方式:不要移除这些封装,也不要仅凭页面文本触发不可逆操作。
文件工具的工作区沙箱
browser_pdf 写入 PDF 文件,browser_upload 读取文件,两者都受限于工作区目录:若设置了 MCP_WORKSPACE_PATH,则使用该路径;否则使用系统临时目录。使用前会对路径进行规范化,因此在 agent-browser CLI 运行前,会拒绝 .. 路径遍历、工作区外的绝对路径,以及指向工作区外的工作区内符号链接。显式设置 MCP_WORKSPACE_PATH,即可精确控制页面捕获文件的存放位置,以及模型可以附加到页面的文件。无法解析的 MCP_WORKSPACE_PATH 会触发安全失败:文件工具会拒绝运行,而不会退回到较弱的检查。
这两个工具都标记为 destructiveHint: true,因此宿主可以要求用户确认:对于文件输入发生变化时会立即提交的页面,browser_upload 可能触发即时远程上传;browser_pdf 则会写入本地文件。
其他加固措施:
- 暂存文件交接。 已验证的文件绝不会通过路径名重新打开。
browser_upload的源文件只打开一次(使用O_NOFOLLOW+O_NONBLOCK,因此验证后替换叶节点符号链接会导致操作失败,预置的 FIFO 也无法卡住打开操作),并会验证其为常规文件(拒绝目录、设备和 FIFO),通过设备号和 inode 将其绑定到新的受限解析结果(验证后若中间目录被替换,解析路径会改变,操作将以UPLOAD_SOURCE_CHANGED错误被拒绝),然后将其复制到 CLI 使用的全新私有暂存目录。browser_pdf会让 CLI 将文件写入全新的私有暂存目录,然后再将 PDF 安装到请求的路径:运行 CLI 前会固定目标目录的规范身份,并在安装前重新验证,因此若调用期间中间目录被替换为符号链接,操作将被拒绝;独占创建语义也会拒绝目标叶节点处已被植入的文件或符号链接,而不会通过它写入。 - 不会静默覆盖。 如果
file_path已存在,browser_pdf会返回FILE_EXISTS错误并拒绝操作,除非调用方显式传入overwrite: true。即便如此,若目标是目录,也会被拒绝(DESTINATION_IS_DIRECTORY)——覆盖删除仅使用不递归的裸unlink。 - 封装错误。
agent-browserCLI 的错误输出可能包含页面编写的文本;在发送给模型之前,会将其包裹在<untrusted-content>封装中(并对闭合标签进行转义以防止跳出封装),超时错误也不会回显命令的参数值。
许可证
FSL-1.1-MIT — Functional Source License,Version 1.1,未来转为 MIT 许可证。该软件将于 2030-04-08 转为 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。