使用说明
陈mcp
第一台MCP服务器 Zen浏览器.从Claude Code、Cursor或任何MCP客户端自动化Zen。
没有硒。没有剧作家。没有浏览器驱动程序。只有WebSocket。
设置(2分钟)
1.通过远程调试启动Zen
/Applications/Zen.app/Contents/MacOS/zen --remote-debugging-port 9222
专业建议:添加
alias zen='open /Applications/Zen.app --args --remote-debugging-port 9222'到您的shell配置。那就跑吧zen.
2.添加到克劳德代码
# Option A: npm (recommended)
npm install -g zen-mcp
# Option B: Clone
git clone https://github.com/sh6drack/zen-mcp.git && cd zen-mcp && npm install
增添 ~/.claude/mcp_servers.json:
{
"mcpServers": {
"zen-browser": {
"command": "zen-mcp"
}
}
}
如果你克隆而不是npm安装,使用
"command": "node", "args": ["/absolute/path/to/zen-mcp/server.mjs"]
增添 ~/.claude/settings.json:
{
"permissions": {
"allow": ["mcp__zen-browser__*"]
}
}
就这样 启动一个新的Claude Code会话 zen_* 工具可用。
20工具
浏览
| 工具 | 它做什么 |
|---|---|
zen_navigate |
转到URL |
zen_list_pages |
列出所有打开的选项卡 |
zen_select_page |
切换到选项卡 |
zen_new_tab |
打开新选项卡 |
zen_close_tab |
关闭选项卡 |
看
| 工具 | 它做什么 |
|---|---|
zen_snapshot |
带选择器的页面结构(过滤器:全部/交互式/表单) |
zen_screenshot |
截图 |
zen_get_page_text |
获取页面标题、URL和文本 |
zen_get_form_fields |
列出所有带有标签和值的表单字段 |
互动
| 工具 | 它做什么 |
|---|---|
zen_click |
单击元素 |
zen_fill |
在输入或文本区域中键入 |
zen_select_option |
选择下拉选项 |
zen_check |
切换复选框或单选框 |
zen_press_key |
键盘输入(Enter、Tab、Ctrl+A等) |
zen_fill_form |
一次填写多个字段 |
zen_scroll |
滚动页面或至某个元素 |
效用
| 工具 | 它做什么 |
|---|---|
zen_evaluate |
在页面中运行JavaScript |
zen_wait |
等待N毫秒 |
zen_wait_for |
等待文本或元素出现 |
zen_reconnect |
强制重新连接到Zen |
运作原理
Claude Code ──stdio/MCP──> zen-mcp ──WebSocket/BiDi──> Zen Browser
陈议员发言 WebDriver BiDi (W3C标准)直接通过WebSocket。表单填充使用本机值设置器 input/change 事件调度,使React、Vue和Angular应用程序正常工作。
什么有效
- 导航、点击、填写表单 --坚如磐石,处理React/Vue/Angular
- 屏幕截图和页面阅读 --可靠的内容提取
- 选项卡管理 --打开、关闭、在选项卡之间切换
- JavaScript评估 --在页面上下文中运行任何代码
- 键盘输入 --快捷键、Enter、Tab、修饰符组合
已知限制
- Zen继承了Firefox的WebDriver BiDi实现,该实现仍在成熟。一些在Chrome中工作的高级BiDi命令可能还不可用。
- 僵尸会话只能通过重新启动Zen来清除(BiDi session.end是连接作用域)。zen-mcp检测到这一点,并告诉您该怎么做。
- 不支持文件上传或拖放(BiDi规范限制)。
结构可靠性
- 自动重新连接 如果WebSocket下降,则采用指数回退
- 僵尸会话恢复 当前一个客户端崩溃时
- 连接重试 (3次后退尝试)
- 干净关闭 在SIGINT/SIGTERM上防止孤立会话
故障排除
| 问题 | 修复 |
|---|---|
| “无法连接到Zen浏览器” | 使用启动Zen --remote-debugging-port 9222 |
| “最大活动会话数” | 重新启动Zen: killall zen && zen |
| 连接持续中断 | 使用 zen_reconnect 强制建立新的联系 |
配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
ZEN_DEBUG_PORT |
9222 |
Zen的远程调试端口 |
需求
- Zen浏览器
- Node.js 20+
测试
node test-e2e.mjs # 21 tests, needs Zen running
许可证
麻省理工学院