mcpField
C
cli-anything-browser

cli-anything-browser

github.com/hkudsエージェントワークフロー57.6k604 回インストール5 週間前に更新
リポジトリ

cli-anything-browser について

cli-anything-browserは、DOMShell MCPサーバーを使うブラウザー自動化CLIで、エージェントによるWeb操作を想定しています。アクセシビリティツリーをファイルシステム風のパスでたどり、ページ移動、検索、操作を行います。

主な機能

  1. 01ページの表示、再読み込み、履歴移動
  2. 02アクセシビリティツリーのパスでページを探索
  3. 03ページ内テキストの検索
  4. 04要素のクリックとテキスト入力
  5. 05JSON出力と常駐デーモンモード

活用シーン

  1. 01ページを閲覧して構造を確認
  2. 02ログイン要素を探してクリック
  3. 03Webフォームに入力
  4. 04複数段階のエージェント操作で接続を再利用

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) を使って Web ページを操作できます。

インストール

前提条件
  1. Node.js と npx (DOMShell MCP サーバー用):

    # Install Node.js from https://nodejs.org/
    npx --version
    
  2. DOMShell 拡張機能 を備えた Chrome/Chromium:

    • Chrome に拡張機能をインストールします
    • CLI を使用する前に Chrome が起動していることを確認してください
  3. Python 3.10+

CLI のインストール
cd browser/agent-harness
pip install -e .

コマンドグループ

page — ページナビゲーション
  • page open <url> — URL に移動します
  • page reload — 現在のページを再読み込みします
  • page back — 履歴を 1 つ戻ります
  • page forward — 履歴を 1 つ進みます
  • 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] は最初のボタンです
  • .. で 1 つ上の階層に移動します
  • / はルートを表します

エージェント向けのガイダンス

解析用の 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() の戻り値を確認してください。

効率化のためのデーモンモード

複数のコマンドを実行するエージェントのワークフローでは、デーモンモードを使用してください:

  1. デーモンを開始: cli-anything-browser session daemon-start
  2. コマンドを実行: 各コマンドが MCP 接続を再利用します
  3. デーモンを停止: cli-anything-browser session daemon-stop

これにより、コマンドごとに発生する 1〜3 秒のコールドスタートのオーバーヘッドを回避できます。

リンク

セキュリティに関する考慮事項

重要: この CLI を AI エージェントとともに使用する場合は、以下のセキュリティに関する考慮事項に注意してください:

URL の制限

ブラウザハーネスは移動前にすべての URL を検証します:

  • スキームの明示が必須: URL には http:// または https:// スキームを含める必要があります (example.com のようなスキームなしの URL は拒否されます)
  • ブロックされるスキーム: 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 プロファイルを使用する

コメント