mcpField
V
vmos-edge-control-api

vmos-edge-control-api

github.com/vmos-devクラウド・DevOps372 回インストール11 週間前に更新
リポジトリ

vmos-edge-control-api について

VMOS Edge Android Control APIを通じて、単一のAndroidクラウド端末を操作するスキルです。画面の確認や端末操作を行うエージェント向けに、利用可能な接続経路に応じた「観察・計画・操作・検証」の手順を定めています。

主な機能

  1. 01接続情報に応じたAPI経路の選択
  2. 02エンドポイントの検出と詳細確認
  3. 03スクリーンショットとアクセシビリティ情報による確認
  4. 04タップ、スワイプ、文字入力、アプリ操作
  5. 05重要な操作後の再確認

活用シーン

  1. 01クラウド端末の画面確認とコントロールの特定
  2. 02Androidクラウド端末でのアプリ起動やインストール
  3. 03端末のブラウザーでのページ表示と内容確認

MCP 対応

MCPは必須ではなく、任意の接続手段です。このスキルは、エージェントがVMOS Edge Android Control APIでクラウド端末を操作する手順を示します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vmos-dev/vmos-edge-skills --skill vmos-edge-control-api

インストール後、Claude Code で/vmos-edge-control-apiを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

api-reference.md
claude-code.md
cursor.mdc
prompt.md
README.md
references/
activity-and-package.md
api-reference.md
app-installation.md
browser-search-and-reading.md
connection-and-discovery.md
input-control.md
observation.md
system-and-device.md
ui-node.md

詳細

VMOS Edge Android Control

VMOS Edge Android Control API を通じて単一の Android クラウド端末を制御する必要がある場合に、このスキルを使用します。MCP は任意の経路であり、前提条件ではありません。

接続先

  • ユーザーが host_ip または cloud_ip を明示している場合は、ユーザーが指定した値を優先します
  • ユーザーが IP を明示していない場合は、まずローカルに cbs_go プロセスが存在するか確認します。存在する場合は、デフォルトで host_ip=127.0.0.1 とします
  • ユーザーが IP を明示しておらず、ローカルに cbs_go も存在しない場合は、host_ip、cloud_ip、またはホストが既知のシナリオでは db_id を提示するようユーザーに案内します
  • 現在のセッションに vmos-edge-container-api もインストールされている場合:
    • ホストルーター http://{host_ip}:18182/android_api/v2/{db_id} を使用します
    • container API の POST /container_api/v1/get_db または GET /container_api/v1/get_android_detail/{db_id} を通じて、対象の db_id を必ず取得します
  • 現在のセッションに vmos-edge-control-api のみがインストールされている場合:
    • デフォルトではクラウド端末への直接接続 http://{cloud_ip}:18185/api を優先します
    • LAN モードが有効になっているクラウド端末のみサポートします
  • 現在のセッションに vmos-edge-control-api のみがインストールされており、現在の経路で host_ip を使用する場合:
    • ユーザーが db_id を指定している場合は、http://{host_ip}:18182/android_api/v2/{db_id} を直接使用します
    • db_id がない場合は、db_id または vmos-edge-container-api が不足していることを明確に伝えます
  • 直接接続 http://{cloud_ip}:18185/api/base/version_info が接続できない、タイムアウトする、または 5xx を返す場合は、現在のクラウド端末で Control API が公開されていないか、LAN モードが有効になっていないことを明確に伝えます

基本的な手順

  • 常に Observe -> Plan -> Act -> Verify に従います
  • 初回接続時は、まず /base/version_info を確認します
  • /base/version_info が正常に返れば、現在の環境は Control API に対応していると見なします。応答を取得できなかった場合に限り、現在の環境が非対応であるか、インターフェースが公開されていないと伝えます
  • ローカルで cbs_go を確認する際は、pgrep -x cbs_go >/dev/null 2>&1 のような正確な一致を優先します
  • 次に /base/list_action で機能を確認します:
    • コストを抑えてデバイスがサポートするインターフェースを確認する場合は、まずインターフェース一覧を取得します
    • 特定のインターフェースの詳しい使い方が必要な場合は、paths を指定して検索し、detail を付けます
  • 観察の優先順位:
    • スクリーンショットインターフェース screenshot/format、screenshot/raw、screenshot/data_url
    • /accessibility/dump_compact
    • /accessibility/node の操作を伴わないクエリ
    • /display/info、/activity/top_activity、/package/list
  • 観察方針:
    • 視覚的なレイアウト、アイコン、色、ポップアップによる遮蔽、座標クリック位置を確認する必要がある場合は、スクリーンショットを優先します
    • テキスト、階層、bounds を低コストで取得する場合、または /accessibility/node につなげる場合は、dump_compact を優先します
    • 両方を使用できる場合は、まずスクリーンショットで画面を把握し、その後 dump_compact / node で構造化して位置を特定します
    • スクリーンショットをユーザーに表示する場合:まず bash/exec の curl -o でスクリーンショットを workspace ディレクトリ(例:~/.openclaw/workspace/)に保存し、次に read ツールでそのファイルを読み込んでモデルに画像を認識させます
    • 画像を返す場合は、screenshot/format または screenshot/raw をファイルに保存することを優先します。screenshot/data_url のみ使用できる場合は、base64 をデコードしてから保存します
    • テキストの返信に MEDIA: と書いたり、base64 / data_url を直接貼り付けたりしないでください。これらは画像としてレンダリングされません
    • 画像を Telegram などのメッセージチャネルに転送する必要がある場合は、message --media <パス> ツールを使って送信します
  • 旧バージョンのアクセシビリティのエクスポート/検索インターフェースをデフォルトの手順に含めないでください
  • 操作の優先順位:
    • まずスクリーンショット、dump_compact、または /accessibility/node に基づいて操作を計画します
    • 構造化されたノードの特定/操作には /accessibility/node を優先します
    • クリック/スワイプには /input/click、/input/swipe、/input/scroll_bezier を優先します
    • テキスト入力には /input/text を優先します
    • アプリの起動には /activity/start を優先します。初回起動時の許可が必要な場合は /activity/launch_app を優先します
    • ブラウザー/ウェブのシナリオでは、指定したブラウザーを開くために /activity/start_activity を優先します。ブラウザーのパッケージ名には mark.via を優先し、利用できない場合は com.android.chrome を使用します
    • インストールには /package/install_sync または /package/install_uri_sync を優先します
    • Settings の読み取り/変更には /system/settings_get、/system/settings_put を優先します
  • 重要な操作のたびに再度観察し、複数の操作をまとめて実行しないでください
  • 専用インターフェースがない場合に限り、/system/shell を検討します

必読の参考資料

  • まず references/api-reference.md の索引を確認し、必要なモジュールの reference ファイルのみを開きます
  • 必要に応じて /base/list_action で機能を確認してから、インターフェースの詳細を調べるか判断します
  • 正確なパス、フィールド、リクエスト例が必要な場合に限り、該当モジュールの reference を読みます
  • タスクが「サードパーティアプリのインストール、ダウンロード、起動」の場合は、references/app-installation.md も読みます
  • タスクが「クラウド端末のブラウザーで検索、ウェブページを開く、ウェブページの内容を抽出」の場合は、references/browser-search-and-reading.md も読みます

安全上の境界

  • アプリの削除、データの消去、システム設定、権限の変更、shell 操作を行う前に、ユーザーの意図を確認します
  • 明示的な要求がない場合は、タイムゾーン、言語、国、Google の状態、デバイス情報、位置情報、センサーを変更しないでください

コメント