mcpField
Y
Yab, Yet Another Browser

Yab, Yet Another Browser

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

关于 Yab, Yet Another Browser

Yab, Yet Another Browser 是一款 Mac WebKit 浏览器,让 Agent 使用已登录的标签页、网页和浏览器操作。其 MCP 服务可在本地使用现有 Cookie 和审批设置,同时不向 Agent 暴露已保存的密码。

主要功能

  1. 01打开并控制浏览器标签页
  2. 02以文本或快照读取网页
  3. 03点击、输入并填写表单
  4. 04使用现有登录状态和 Cookie
  5. 05敏感操作需经审批

适用场景

  1. 01在已登录的浏览器中阅读网页
  2. 02使用已保存的个人资料填写表单
  3. 03在审批控制下执行浏览器操作
  4. 04将浏览任务委派给 Mac

MCP 相关

MCP 服务通过 stdio 将客户端通信转交给 Yab,并提供其浏览器工具。远程模式可通过 stdio 为另一台电脑上的助手桥接 JSON-RPC。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"com-yetanotherbrowser-yab": {
"command": "npx",
"args": [
"-y",
"yab-mcp"
]
}
}
}
启动命令npx -y yab-mcp

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

安装包
npmyab-mcp0.2.1

工具

69

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

参数类型必填说明
tabstring是标签页 ID,由 `open` 或 `tabs` 提供

详细介绍

yab-mcp

Yab(Yet Another Browser)为 Claude Code、Codex、Cursor 及任何 MCP 客户端提供的 MCP 服务。

Yab(Yet Another Browser)是一款适用于 Mac 的免费 WebKit 浏览器。借助此服务,任何 Agent 都能在你的 Mac 上使用一个真实浏览器:就是你已登录的那个浏览器。你的 Agent 会在你的标签页旁边打开自己的标签页,以文本形式读取网页,点击、输入并填写表单,使用的是你的登录信息、Cookie 和 IP。无需云端浏览器、调试端口或配置 Chrome,而且完全免费。点击“发送”“付款”“删除”等按钮时,操作会等待你在 Yab 中的卡片上确认,除非你在 Yab 的设置中选择了“绕过”:确认权由浏览器掌握,而非模型。保存的密码由 Yab 填入,绝不会显示给 Agent。Agent 的标签页位于屏幕外的窗口中,只有在你要求时才会显示在前台。Yab 关闭时,首次调用会在后台打开它,不显示窗口或 Dock 图标;闲置半小时后会自动退出。yab serve 会让它以这种方式持续运行。

下载 Yab · 开发者指南 · 手册

远程助手(0.2.0 预览版)

在助手自己的电脑上运行 npx yab-mcp login --client dots。 当 Yab 的连接流程提供 nonce 时,使用该值添加 --nonce。 命令会打印代码并立即返回;用户在 Yab 中允许连接后,后台进程会保存连接。 Mac 上的 Yab 会在“设置”>“AI”>“助手”中显示八位代码。 用户在此处允许连接后,选择由谁来执行任务:

  • 直接控制浏览器: 将助手的 MCP 服务配置为使用命令 npx,参数为 ["-y", "yab-mcp", "--remote"]。助手会使用自己的模型/账户,自行调用 open、 snapshot、click、type 等工具。 --remote 通过 stdio 桥接 JSON-RPC;它不接受自然语言提示词,也不会启动 Yab 模型运行。 调用 task MCP 工具仍会委派任务。
  • 委派任务: npx yab-mcp task "Find a table for Friday" 会启动一个独立 Agent,使用 Mac 上 Yab 中为“任务”选择的模型。ChatGPT(通过 Codex) 会消耗用户的 ChatGPT 额度;Claude 则会使用用户的 Claude 计划。 如果你打算使用该计划(包括从仅限 shell 的机器人调用),请选择此模式。 命令会打印会话 ID 并返回;运行 npx yab-mcp status SESSION 查看 下一次更新;Mac 重新连接后,运行 npx yab-mcp status 查看最新任务。 重复查询,直到显示已完成。

两种模式都会保留助手已有的账户访问权限和审批设置。 连接令牌保存在 ~/.config/yab-mcp/auth.json(权限模式为 0600),或保存在 YAB_MCP_AUTH_FILE 指定的路径中。当主目录为只读时(部分机器人电脑上会如此), 令牌会保存在当前文件夹中以下第一个可写位置:/workspace/shared/.yab-mcp/、 /workspace/.yab-mcp/ 和 .yab-mcp/。如果电脑终止了等待用户点击“允许”的后台进程, 下一次调用 task、status 或 --remote 时会完成连接。 YAB_MCP_URL 用于选择测试服务;生产环境使用 https://yab-sync.21st.workers.dev。 直接运行 npx yab-mcp 会启动本地应用的 MCP 服务。

要求

  • 配备 macOS 15.4 或更高版本的 Mac。
  • 免费的 Yab:下载。Yab 会自动更新。
  • 在 Yab 中允许 Agent:设置 › AI › Agent › 允许 Agent 使用 Yab。在此之前,每次调用都会提示这一点。
  • Node.js 18 或更高版本,用于运行 npx。客户端也可以不通过 Node 直接运行 Yab:参见无需 Node。

Chrome 是你的主浏览器?Yab 仍可作为 Agent 使用的浏览器,通常会保持关闭状态。运行 yab import chrome,并在 Yab 中确认后,即可将 Chrome 的登录信息导入 Yab,让 Agent 少遇到一些登录页面。

已经在使用 Yab?“设置” › “开发者”可一键将 Yab 添加到 Claude Code 和 Codex;对于其他客户端,“复制配置”会提供相应的 JSON。无需使用此软件包。

安装

Claude Code

该插件包含工具和 Yab 的技能:

/plugin marketplace add yetanotherbrowser/yab-mcp
/plugin install yab@yab-mcp

在 Shell 中运行:claude plugin marketplace add yetanotherbrowser/yab-mcp,然后运行 claude plugin install yab@yab-mcp。

仅安装工具:

claude mcp add --scope user yab-browser -- npx -y yab-mcp

如果你已在 Yab 的 Settings › Developers 中将 Yab 添加到 Claude Code,请跳过此步骤:否则会出现重复的工具。

Codex

插件、工具和技能:

codex plugin marketplace add yetanotherbrowser/yab-mcp
codex plugin add yab@yab-mcp

或者,仅将工具添加到 ~/.codex/config.toml:

[mcp_servers.yab-browser]
command = "npx"
args = ["-y", "yab-mcp"]
tool_timeout_sec = 900
default_tools_approval_mode = "approve"

tool_timeout_sec 允许调用等待最长 15 分钟,以便 Yab 向你提问;该插件保留 Codex 默认的 5 分钟。default_tools_approval_mode 可避免 Codex 在每次调用 Yab 工具前都询问;不过,在发送、付款和删除前,Yab 仍会征求你的同意。如果也希望 Codex 询问,请省略此项。

Cursor

添加到 Cursor

或者将其添加到 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "yab-browser": {
      "command": "npx",
      "args": ["-y", "yab-mcp"]
    }
  }
}
VS Code
code --add-mcp '{"name":"yab-browser","command":"npx","args":["-y","yab-mcp"]}'

或者添加到 .vscode/mcp.json:

{
  "servers": {
    "yab-browser": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "yab-mcp"]
    }
  }
}
Windsurf(Devin Desktop)

在 ~/.config/devin/mcp_config.json 中配置(较旧的 Windsurf 版本使用:~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "yab-browser": {
      "command": "npx",
      "args": ["-y", "yab-mcp"]
    }
  }
}
Claude Desktop

从 Releases 下载 yab-mcp-<version>.mcpb 并打开:Claude Desktop 会将其安装为扩展。或者将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "yab-browser": {
      "command": "npx",
      "args": ["-y", "yab-mcp"]
    }
  }
}
其他客户端

使用相同的 mcpServers 条目:命令为 npx,参数为 -y yab-mcp,通过 stdio 通信。

不使用 Node

让客户端直接指向应用。这是 Yab 的 Copy Config 提供的配置:

{
  "mcpServers": {
    "yab-browser": {
      "command": "/Applications/yab.app/Contents/MacOS/yab",
      "args": ["mcp"],
      "env": { "YAB_CLI": "1" }
    }
  }
}

yab-mcp 的工作方式

  1. 它会查找 Yab:如果设置了 YAB_APP,则优先使用;否则使用 yab 命令运行的应用(~/.local/bin/yab),然后查找 /Applications 和 ~/Applications 中的 yab.app,最后使用 Spotlight(mdfind,bundle id 为 dev.serafim.fast)。
  2. 它会在 YAB_CLI=1 环境变量下运行 yab.app/Contents/MacOS/yab mcp。客户端直接与 Yab 通信:stdin 和 stdout 会直接传递,信号也会转发,退出代码会返回。
  3. 如果找不到 Yab,或当前系统不是 Mac,它会改为运行一个简短的内置服务。该服务会根据快照列出 Yab 的工具,并在每次调用时说明如何获取 Yab。

它没有依赖,也不会自行发出网络请求。运行 npx yab-mcp --help 可查看它在哪里找到了 Yab。

工具

这些工具来自 Yab 的实际 tools/list,由 scripts/snapshot.mjs 生成。实际运行的应用才是最终依据:较新的版本可能会列出更多工具。

Yab 0.0.18 列出了 69 个工具。部分工具只有在启用其所需功能后才会显示,具体情况已注明。

工具功能
devtools_comments读取已检查且非私密标签页中,用户撰写的元素评论。
devtools_console读取已检查且非私密标签页中记录的 Console 消息。
devtools_network读取标签页 Developer Tools 记录的已清理请求元数据。
devtools_trace读取 WebKit Performance 录制中的事件名称、持续时间和嵌套关系。
devtools_styles从 Developer Tools 读取当前选中元素匹配的样式和计算后的样式。
native_context读取 Yab 当前的设置、空间、标签页、邮件帐户、权限及此任务的原生操作。
native_actions列出原生 Yab 操作及其严格的参数架构、targetKind、撤销支持和权限要求。
native_apply执行用户明确要求的原生 Yab 操作:设置、空间、标签页、页面字体或连接 Gmail。
native_operation按 operationId 读取此任务的原生操作,或等待变更,最多等待指定秒数(0 到 10)。
native_undo按 changeId 撤销此任务的一项原生变更(或撤销最近一项可撤销的变更)。
tabs列出用户的网页浏览器 Yab 中打开的标签页,包括用户和 Agent 的标签页。
open在 Yab(用户的浏览器)中打开一个网页(URL),在新的 Agent 标签页中登录用户的网站,并显示在用户的标签页旁边。
spaces列出用户的空间:由一组标签页组成,其中有些以其他身份登录,并使用各自的 Cookie。
navigate将 Agent 标签页转到某个 URL,或返回、前进或重新加载。
snapshot以带有 ref id 的无障碍树形式读取浏览器标签页中的网页。
click按 ref 点击元素,就像真实鼠标点击一样。
type按 ref 替换字段中的文本(输入框、文本区域、编辑器);不提供 ref 时,则在当前焦点所在位置输入。
choose按选项的值或标签选择 <select> 中的选项。
press在当前焦点元素上按下按键,发送真实键盘事件。
hover将指针停留在元素上,就像鼠标操作一样;悬停时打开的菜单也会打开。
drag用鼠标拖动元素:拖到另一个元素上(to 为其 ref;被拖动的元素会落在它之前),或按 dx、dy 像素拖动。
dialog回答网页弹出的 alert、confirm 或 prompt:选择接受(OK)或不接受(Cancel),并为 prompt 输入文本。
scroll按 dy 像素滚动页面,或滚动 ref 所指元素周围的区域(列表会标记 scrolls);负数表示向上滚动。
run运行 JavaScript,通过相同工具操作标签页,并在一次调用中执行多个步骤。
text读取标签页中所有可见文本,用于阅读文章和结果。
screenshot截取标签页当前画面;当 snapshot 信息不足时使用。
wait等待标签页加载完成,或直到其文本包含 for。
eval在 Agent 标签页中运行 JavaScript(与网页自身的脚本隔离,但使用相同 DOM),并返回结果。
close关闭 Agent 标签页。
show将标签页置于用户面前,成为用户的标签页之一。
memory_search搜索从以往任务中了解到的用户信息,包括用户身份、帐户和网站、联系人及项目。
memory_read完整读取一页记忆:USER(用户身份)、MEMORY(工作方式)、TAXONOMY。
profile用户用于填写表单的个人资料:姓名、头衔、公司、职位、所在地、linkedin、x、github、网站、telegram。
form_answers用户在网页表单中填写的答案;表单提交后,不会保留问题内容。
remember保存信息,供之后的任务使用。
history用户的浏览历史。
watch关注某个讨论串中某人的回复:在 days 指定的天数内,每两小时检查一次。
suggest在新标签页字段下方以精简行的形式,将需要用户处理的内容交给用户。
boosts列出已保存的网站 boost 及其网站、权限和状态。
boost_read修改已保存的 boost 或此任务的试用版本之前,读取其文件。
skillsYab 的技能:Agent 使用特定网站(Gmail、GitHub、LinkedIn、Amazon 等)的方法,每项占一行。
skill按名称完整读取一项技能。
handoff请用户接管标签页、登录、通过验证码或输入代码,并等待用户表示已完成。
ask请用户选择:提出一个问题并提供最多四个选项(用户也可以自行填写),显示在标签页底部。
sign_in使用 Yab 为该网站保存的密码在此标签页登录(可能会先询问用户)。
autofill使用 Yab 为用户保存的信息填写此标签页中的表单。
upload将此 Mac 上的文件提供给网页(可能会先询问用户)。
download下载文件:点击 ref(下载链接或按钮),或使用标签页的 Cookie 获取 url。
pdf将标签页中的网页保存为 PDF,存放在任务文件夹中;返回文件路径。
fetch使用用户的 Cookie 读取 URL,无需标签页。
mail_triage已由 yab 在此 Mac 上整理的用户邮件。连接 Yab 中的 Gmail 帐户后列出(Settings › Mail)。
mail_search搜索用户所有邮件,不限时间。连接 Yab 中的 Gmail 帐户后列出(Settings › Mail)。
mail_read以文本形式读取用户邮件的一个讨论串,按时间从旧到新排列,并附上标签名称和每封邮件所带的文件。连接 Yab 中的 Gmail 帐户后列出(Settings › Mail)。
mail_file读取用户邮件讨论串中所带文件的文字内容。连接 Yab 中的 Gmail 帐户后列出(Settings › Mail)。
mail_draft在讨论串中撰写回复(thread)、转发讨论串中的最后一封邮件(thread, forward: true, to),或撰写新邮件。连接 Yab 中的 Gmail 帐户后列出(Settings › Mail)。
mail_send仅当用户明确要求发送这封邮件时,发送 yab 邮件页面中的邮件。连接 Yab 中的 Gmail 帐户后列出(Settings › Mail)。
mail_act像用户在 yab 邮件页面中那样整理邮件讨论串。连接 Yab 中的 Gmail 帐户后列出(Settings › Mail)。
mail_labels用户 Gmail 中的自定义标签及标签列表。连接 Yab 中的 Gmail 帐户后列出(Settings › Mail)。
mail_recall在此 Mac 上按邮件内容和用词搜索用户过去 5 年的所有邮件。启用 Agent 搜索所有邮件的权限后列出(Settings › Mail)。
mail_code从用户的 Gmail 中读取该标签页所属网站最近 minutes 分钟内发给用户的一次性验证码(默认值为 10)。启用 Yab 从 Gmail 读取登录验证码的权限后列出(Settings › Autofill)。
messages用户的 Messages(iMessage 和短信):不指定聊天时,列出用户的聊天,按最近时间排序,并显示每个聊天的最后一条消息。启用 Agent 使用 Messages 的权限后列出(Settings › AI › Agents)。
send_message通过 Messages 向电话号码或地址发送消息。启用 Agent 使用 Messages 的权限后列出(Settings › AI › Agents)。
messages_code读取用户 Messages 中最新的一次性验证码。启用 Agent 使用 Messages 的权限后列出(Settings › AI › Agents)。
name为此任务命名:任务拥有多个标签页后,这些标签页会归入用户标签页列表中的一个文件夹。
task将整个浏览器任务交给 Yab 自行运行的 Agent(Claude Code 或 Codex),并等待其答复。
task_status查看任务当前进度,以及任务完成后的答复。
task_stop停止任务。
task_steer立即调整正在运行的任务:任务会在下一步读取此指示。
task_queue为任务安排后续工作,待当前工作完成后执行。

Mac 上有哪些数据会离开

  • 此软件包:不会。它会读取几个文件,并让 Spotlight 查找 Yab,然后启动它。npx 会从 npm 注册表下载此软件包。
  • 你的 Agent 与 Yab 之间:没有数据会离开 Mac。yab mcp 通过 Yab 文件夹中的套接字与浏览器通信,只有你的 macOS 用户可以打开该文件夹。
  • 发往你的 Agent 所用的大模型:你的 Agent 使用这些工具读取的内容,包括网页,以及在你允许的情况下读取的邮件和消息,都会发送给你的 Agent 所用大模型的提供商(Anthropic、OpenAI 或其他提供商),并使用你的账号;这与你提供给它的其他任何内容一样。task 工具会让 Yab 使用你自己的方案运行 Claude Code 或 Codex,因此同样适用。
  • Yab 本身:它会访问 yetanotherbrowser.com 检查更新,使用随机安装 ID 统计活跃天数(在 Settings › About › Share daily activity 中可关闭),并且仅在你同意时发送崩溃报告。同步默认关闭;开启后会进行端到端加密。Yab 无需账号,我们的服务器不会看到你的浏览记录。邮件会由 Google 直接发送到你的 Mac。
  • 网站会收到浏览器通常会发送的内容。
隐私政策

Yab 的隐私政策见 yetanotherbrowser.com/privacy。简而言之:

  • 收集:yab-mcp 不收集任何内容。Yab 会在你的 Mac 上保存标签页、历史记录、密码和邮件。
  • 使用与存储:Yab 保存的内容会留在你的用户文件夹和 macOS 钥匙串中。如果你开启同步,同步只会存储端到端加密的记录。
  • 共享:Yab 无人会获取你的网页或邮件。Agent 读取的内容会发送给该 Agent 的提供商,如上所述。
  • 保留:Mac 上的数据会一直保留,直到你删除。同步数据会一直保留,直到你在 Settings › Sync 中删除。Yab 自身的更新和每日活跃记录不会保存 IP 地址;网站主机的请求日志最多保留一天。
  • 联系方式:[email protected],或在 Yab 中选择 Send Feedback。

故障排除

  • “Yab 中的 Agent 已关闭”:开启 Settings › AI › Agents › Let agents use Yab。
  • “此 Mac 上未安装 Yab”:安装 Yab,打开一次,然后重启 MCP 服务(在 Claude Code 中:/mcp)。
  • “当前运行的 Yab 版本较旧”:退出 Yab,然后重新打开,使运行中的应用与磁盘上的版本一致。
  • Yab 安装在其他位置:在服务的环境中设置 YAB_APP=/path/to/yab.app。

开发

npm test                 # node --test, no dependencies
npm run snapshot         # new src/tools.json and README tool list from the Yab on this Mac
npm run pack:mcpb        # dist/yab-mcp-<version>.mcpb for Claude Desktop
npm run links            # the Cursor and VS Code install links

npm run snapshot 只会向 Yab 发送 initialize 和 tools/list,绝不会调用工具。发布和目录列表见:PUBLISHING.md。

许可证

MIT,详见 LICENSE。Yab 本身免费但不开源;此仓库是其面向 Agent 的开源部分。

评论

支持 Markdown

第一次接触 MCP?

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

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