关于 Zamery Browser
Zamery Browser 是本地 MCP 服务,可让 Agent 操作现有 Firefox 会话中已选定的标签页,包括已登录页面。用户按标签页或分组授权,并设定操作权限和有效时长。
主要功能
- 01使用已共享的 Firefox 标签页和分组
- 02查看页面快照和上下文
- 03点击、填写、输入和发送按键
- 04创建并管理获准使用的标签页
- 05请求用户接管和控制权交接
- 06阻止填写凭据字段
适用场景
- 01操作 Firefox 中已登录的页面
- 02限制 Agent 访问指定标签页
- 03让用户接管正在操作的页面
- 04核查结果不确定的浏览器操作
MCP 相关
该 MCP 服务通过标准输入输出连接 Firefox Companion,并经由 Native Messaging 主机通信。它提供浏览器状态、上下文、快照、交互、标签页、分组和控制权交接工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
15收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| browser_instance_id | string | 否 | 仅在连接了多个 Firefox 配置文件时需要。 |
详细介绍
@zamery/browser-mcp
一个独立的 MCP 服务,可让本地 Agent(例如 Codex)使用你已在使用的 Firefox——包括你的登录状态——但仅限你选择共享的标签页和标签页组。
agent host (stdio) → @zamery/browser-mcp → BrowserProvider V2 + optional interfaces
→ @zamery/browser-firefox → Native Messaging host → Zamery Browser Companion → your Firefox
它不依赖 Pi 或 Zamery Workbench。它不会暴露原始 JavaScript/eval,Agent 也无法自行授予自己访问权限。
状态:稳定版
0.1.2,随 Zamery Browserv0.2.3和经 Mozilla 签名并公开发布的 Companion0.2.5一同发布。干净的已发布制品验收、真实配置文件签名验收以及 Official MCP Registry 发布均已通过。
安装
codex mcp add zamery-firefox -- npx -y @zamery/browser-mcp@latest
你还需要安装 @zamery/browser-firefox 中的 Firefox Companion 和原生主机(参见其 README)。
Official MCP Registry:io.github.maemreyo/zamery-browser。
Codex 配置方法(截图必需)
在经过测试的 Codex 配置中,模型无法接收内嵌的 MCP 图片,因此只能猜测截图内容。browser_screenshot 因此还会返回本地图片文件路径,模型必须使用图片查看器打开该文件。将 codex/AGENTS.snippet.md 添加到项目的 AGENTS.md 中(或将 codex/skill/zamery-browser 安装为 Codex 技能)。配置后,模型针对真实 Firefox 回答中性视觉问题的正确率为 3/3;未配置时为 0/2。
访问方式
- Agent 调用
browser_status。即使 Firefox 尚未连接或没有共享任何内容,该工具也始终可用,并会说明该向你请求什么。如果 Firefox 已连接但没有共享任何内容,Agent 可以调用一次browser_request_access,请求你关注。该请求不包含标签页、标签页组、操作或时长选项,也不会授予任何权限。 - Firefox 会显示工具栏徽标;如果你启用了可选通知,还会显示一条通用操作系统通知。打开 Zamery Browser 面板,选择本地 Agent、标签页或标签页组、Agent 可执行的操作以及授权时长(本次会话,或 1–30 天)。
- Agent 调用
browser_contexts/browser_snapshot。设置claim=true(默认值)的快照会取得写入控制权;随后可使用返回的短引用(e1、e2……)调用browser_click、browser_fill、browser_type、browser_key。 - 你可以随时从面板中接管控制权。在默认的
interactive模式下,使用已取得控制权的页面也会将控制权交还给你。启用明确的后台控制后,普通使用同一共享页面只会使 Agent 的旧快照失效;它可以重新获取快照并继续操作。在明确的用户控制处于启用状态时,Agent 无法操作,只能请求你恢复控制权。
Agent 永远不会填写登录、一次性验证码和付款字段:这些字段在快照中会标记为 CREDENTIAL,且写入操作会被拒绝;请使用 browser_handoff(request_user_takeover)。
工具
| 工具 | 用途 |
|---|---|
browser_status | 查看连接、访问权限、过期时间、控制权归属以及后续操作。 |
browser_request_access | 在尚未授予权限时,请求 Firefox 提醒用户注意。此操作不会授予、扩大或恢复访问权限,也不会确认访问权限。 |
browser_contexts | 查看与 Agent 共享的标签页。 |
browser_snapshot | 查看共享标签页的控件(不包含表单值和隐藏控件),默认还会显示写入声明。 |
browser_click / browser_fill / browser_type / browser_key | 执行合成 DOM 操作(isTrusted=false)。需要写入声明和最新观察结果。 |
browser_handoff | 执行 request_user_takeover(请求用户接管)、resume(仅发送请求)、claim(声明控制权)或 release(释放控制权)。 |
browser_mutation_status | 根据操作的 request_id 查询操作结果。 |
browser_tab | 创建、导航、重新加载、激活或关闭自己拥有的标签页(仅限已获准的操作)。 |
browser_groups、browser_group | 查看和更改与您共享的 Firefox 标签页组。 |
每项变更操作都带有稳定的 request_id。超时或响应丢失后,结果可能为 outcome_unknown:Agent 不得使用新 ID 重试,而应查询 browser_mutation_status 并检查页面。
配置(环境)
| 变量 | 含义 |
|---|---|
ZAMERY_BROWSER_MCP_STATE_DIR | 稳定使用者 ID 的存储位置(默认值为 ~/Library/Application Support/Zamery/browser-mcp)。 |
ZAMERY_BROWSER_MCP_CONSUMER_ID | 覆盖使用者 ID([A-Za-z0-9._:-]{8,128})。 |
ZAMERY_BROWSER_MCP_BROWSER_INSTANCE_ID | 连接了多个 Firefox 配置文件时,指定其中一个。 |
ZAMERY_BROWSER_MCP_PROVIDER | 提供方允许列表选择器;目前仅支持 firefox。不接受任意模块路径。 |
使用者 ID 会将授权绑定到此安装,因此重启 MCP 进程或 Agent 后,仍可沿用同一授权。它是同一 OS 用户范围内的路由密钥,不是经过身份验证的标识。
信任边界
本地 Firefox 桥接程序信任已登录的 OS 用户。同一用户的其他进程也能与桥接程序通信,但仍需要您在 Firefox 中为其自己的使用者 ID 创建的授权。页面内容(标题、URL、控件名称)均为不可信数据,并在工具输出中标注为此类数据。
许可证
Apache-2.0。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。