mcpField
C
cli-anything-browser

cli-anything-browser

github.com/hkudsAgent 工作流57.6k604 次安装5 周前更新
代码仓库

关于 cli-anything-browser

cli-anything-browser 是通过 DOMShell MCP 服务执行浏览器自动化的命令行工具,面向需要用 Agent 操作网页的工作流。它以类似文件系统的无障碍树路径浏览页面,并提供导航、搜索和交互命令。

主要功能

  1. 01打开、刷新和切换网页
  2. 02按无障碍树路径浏览页面
  3. 03搜索页面文本
  4. 04点击元素并输入文本
  5. 05支持 JSON 输出和持久守护进程

适用场景

  1. 01浏览网页并检查页面结构
  2. 02搜索登录入口并点击按钮
  3. 03填写网页表单
  4. 04在多步 Agent 操作中复用连接

MCP 相关

该 CLI 使用 DOMShell MCP 服务进行浏览器自动化。守护进程模式可让后续命令复用 MCP 连接。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hkuds/cli-anything --skill cli-anything-browser

安装后在 Claude Code 中输入/cli-anything-browser确认已加载。

详细介绍

cli-anything-browser

一个使用 DOMShell 的 MCP 服务进行浏览器自动化的命令行界面。使用文件系统命令浏览网页:ls、cd、cat、grep、click。

安装

前置条件
  1. Node.js 和 npx(用于 DOMShell MCP 服务):

    # Install Node.js from https://nodejs.org/
    npx --version
    
  2. Chrome/Chromium 以及 DOMShell 扩展:

    • 在 Chrome 中安装扩展
    • 使用 CLI 前确保 Chrome 正在运行
  3. Python 3.10+

安装 CLI
cd browser/agent-harness
pip install -e .

命令组

page — 页面导航
  • page open <url> — 导航到 URL
  • page reload — 重新加载当前页面
  • page back — 在历史记录中后退
  • page forward — 在历史记录中前进
  • page info — 显示当前页面信息
fs — 文件系统命令(无障碍树)
  • fs ls [path] — 列出路径下的元素
  • fs cd <path> — 切换目录
  • fs cat [path] — 读取元素内容
  • fs grep <pattern> [path] — 搜索文本模式
  • fs pwd — 打印工作目录
act — 操作命令
  • act click <path> — 点击元素
  • act type <path> <text> — 在输入框中输入文本
session — 会话管理
  • session status — 显示会话状态
  • session daemon-start — 启动持久守护进程模式
  • session daemon-stop — 停止守护进程模式

使用示例

基本导航
# Open a page
cli-anything-browser page open https://example.com

# Explore structure
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
cli-anything-browser fs ls

# Go back to root
cli-anything-browser fs cd /
搜索并点击
cli-anything-browser fs grep "Login"
cli-anything-browser act click /main/button[0]
表单填写
cli-anything-browser act type /main/input[0] "[email protected]"
cli-anything-browser act click /main/button[0]
JSON 输出
cli-anything-browser --json fs ls /
守护进程模式(更快的交互式使用)
# Start persistent connection
cli-anything-browser session daemon-start

# Run commands (uses persistent connection)
cli-anything-browser fs ls /
cli-anything-browser fs cd /main

# Stop daemon when done
cli-anything-browser session daemon-stop
交互式 REPL
cli-anything-browser

路径语法

DOMShell 为无障碍树使用类似文件系统的路径:

/                           — Root (document)
/main                       — Main landmark
/main/div[0]                — First div in main
/main/div[0]/button[2]      — Third button in first div
  • 数组索引从 0 开始:button[0] 是第一个按钮
  • 使用 .. 向上一级
  • 使用 / 表示根目录

面向 Agent 的指南

用于解析的 JSON 输出

所有命令都支持 --json 标志以输出机器可读的结果:

cli-anything-browser --json fs ls /

返回:

{
  "path": "/",
  "entries": [
    {"name": "main", "role": "landmark", "path": "/main"}
  ]
}
错误处理

CLI 针对常见问题提供清晰的错误消息:

  • 找不到 npx:从 https://nodejs.org/ 安装 Node.js
  • 找不到 DOMShell:运行 npx @apireno/domshell --version
  • MCP 调用失败:安装 DOMShell Chrome 扩展

在运行命令前检查 is_available() 的返回值。

使用守护进程模式提高效率

对于包含多个命令的 Agent 工作流,请使用守护进程模式:

  1. 启动守护进程:cli-anything-browser session daemon-start
  2. 运行命令:每条命令复用 MCP 连接
  3. 停止守护进程:cli-anything-browser session daemon-stop

这样可以避免每条命令 1-3 秒的冷启动开销。

链接

安全注意事项

重要:在将本 CLI 与 AI Agent 一起使用时,请注意以下安全注意事项:

URL 限制

浏览器工具链会在导航前验证所有 URL:

  • 必须显式指定协议:URL 必须包含 http:// 或 https:// 协议(不带协议的 URL 如 example.com 会被拒绝)
  • 阻止的协议:file://、javascript://、data://、vbscript://、about://、chrome:// 以及浏览器内部协议
  • 允许的协议:仅 http:// 和 https://(可通过 CLI_ANYTHING_BROWSER_ALLOWED_SCHEMES 配置)
  • 阻止私有网络:可通过 CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true 启用(默认禁用)
DOM 内容风险

无障碍树包含页面上所有可见和隐藏的元素。恶意网站可能会:

  • 构造带有操纵性文本的 ARIA 标签(例如,“忽略之前的指令”)
  • 利用 aria-hidden 元素注入用户不可见的内容
  • 创建误导导航的混乱 DOM 结构

缓解措施:与不受信任的网站交互时,请考虑:

  1. 使用 --json 标志输出结构化结果,更易于安全解析
  2. 在将 DOM 内容纳入提示词之前对其进行清理或过滤
  3. 将导航限制在受信任的域名内
私有网络访问

默认情况下,浏览器可以访问 localhost 和私有网络(192.168.x.x、10.x.x.x 等)。如需阻止:

export CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true
cli-anything-browser page open http://localhost:8080  # Will be blocked
会话隔离

多个浏览器会话共享同一个 Chrome 实例。Cookie 和身份验证状态可能会跨会话保留。对于敏感操作,请考虑:

  1. 使用 Chrome 的访客模式或无痕模式
  2. 在会话之间清除 Cookie
  3. 为不同的安全场景使用独立的 Chrome 配置文件

评论

支持 Markdown