mcpField
Z
Zamery Browser

Zamery Browser

本地服务
github.com浏览器自动化01 周前更新

关于 Zamery Browser

Zamery Browser 是本地 MCP 服务,可让 Agent 操作现有 Firefox 会话中已选定的标签页,包括已登录页面。用户按标签页或分组授权,并设定操作权限和有效时长。

主要功能

  1. 01使用已共享的 Firefox 标签页和分组
  2. 02查看页面快照和上下文
  3. 03点击、填写、输入和发送按键
  4. 04创建并管理获准使用的标签页
  5. 05请求用户接管和控制权交接
  6. 06阻止填写凭据字段

适用场景

  1. 01操作 Firefox 中已登录的页面
  2. 02限制 Agent 访问指定标签页
  3. 03让用户接管正在操作的页面
  4. 04核查结果不确定的浏览器操作

MCP 相关

该 MCP 服务通过标准输入输出连接 Firefox Companion,并经由 Native Messaging 主机通信。它提供浏览器状态、上下文、快照、交互、标签页、分组和控制权交接工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"maemreyo-zamery-browser": {
"command": "npx",
"args": [
"-y",
"@zamery/browser-mcp"
]
}
}
}
启动命令npx -y @zamery/browser-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@zamery/browser-mcp0.1.2

工具

15

收录的工具列表 · 更新于 2 周前

参数类型必填说明
browser_instance_idstring否仅在连接了多个 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 Browser v0.2.3 和经 Mozilla 签名并公开发布的 Companion 0.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。

访问方式

  1. Agent 调用 browser_status。即使 Firefox 尚未连接或没有共享任何内容,该工具也始终可用,并会说明该向你请求什么。如果 Firefox 已连接但没有共享任何内容,Agent 可以调用一次 browser_request_access,请求你关注。该请求不包含标签页、标签页组、操作或时长选项,也不会授予任何权限。
  2. Firefox 会显示工具栏徽标;如果你启用了可选通知,还会显示一条通用操作系统通知。打开 Zamery Browser 面板,选择本地 Agent、标签页或标签页组、Agent 可执行的操作以及授权时长(本次会话,或 1–30 天)。
  3. Agent 调用 browser_contexts / browser_snapshot。设置 claim=true(默认值)的快照会取得写入控制权;随后可使用返回的短引用(e1、e2……)调用 browser_click、browser_fill、browser_type、browser_key。
  4. 你可以随时从面板中接管控制权。在默认的 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。