zen-mcp 是首个针对 Zen Browser 的 MCP 服务器,提供 20 个工具,让用户可以从 Claude Code、Cursor 或任何 MCP 客户端自动化操作 Zen 浏览器。它不依赖 Selenium、Playwright 或浏览器驱动,直接通过 WebSocket 使用 WebDriver BiDi(W3C 标准)协议。
主要用途 用于在 MCP 客户端中驱动 Zen Browser,完成浏览器自动化任务,例如页面导航、点击、表单填写、截图、页面读取、标签页管理与 JavaScript 执行等。
主要能力
- 导航、点击与表单填写:较为稳定,可处理 React、Vue、Angular 应用。表单填写采用原生 value setter 并派发 input / change 事件。
- 截图与页面读取:可靠的内容提取。
- 标签页管理:打开、关闭、切换标签页。
- JavaScript 执行:在页面上下文中运行任意代码。
- 键盘输入:支持快捷键、Enter、Tab 以及修饰键组合。
使用方式
- 启动带远程调试的 Zen:在 shell 配置中可加入别名 zen='open /Applications/Zen.app --args --remote-debugging-port 9222',之后直接运行 zen。
- 添加到 Claude Code:在 ~/.claude/mcp_servers.json 中配置;如果是从源码克隆而非 npm install,则使用 "command": "node", "args": ["/absolute/path/to/zen-mcp/server.mjs"]。并在 ~/.claude/settings.json 中添加相应配置。
- 启动新的 Claude Code 会话后,即可使用 zen_* 工具。
内置可靠性
- WebSocket 断开时采用指数退避自动重连。
- 上一个客户端崩溃后可进行僵尸会话恢复。
- 连接重试(最多 3 次,带退避)。
- 收到 SIGINT/SIGTERM 时干净关闭,防止产生孤立会话。
已知限制
- Zen 继承 Firefox 的 WebDriver BiDi 实现,该实现仍在成熟中,部分在 Chrome 中可用的高级 BiDi 命令可能尚不可用。
- 僵尸会话只能通过重启 Zen 清除(BiDi 的 session.end 是连接作用域的);zen-mcp 会检测到该情况并提示处理方法。
- 不支持文件上传和拖放(受 BiDi 规范限制)。
关于收费、价格、平台支持范围、具体性能效果等资料暂未提供。