mcpField
A
Agent Droid Bridge

Agent Droid Bridge

ローカル
github.com/Neverlow512開発ツール2224 週間前に更新

Agent Droid Bridge について

Agent Droid Bridgeは、ADB経由でAndroid端末やエミュレーターを操作するMCPサーバーです。モバイルテスト、自動化、デバッグ、アプリ分析向けの構造化ツールを備え、コマンド制限や任意のアプリ管理ツールも設定できます。

主な機能

  1. 01ADBによるAndroid端末とエミュレーターの操作
  2. 02画面キャプチャと構造化UI検査
  3. 03タップ、スワイプ、テキスト、キー入力
  4. 04任意のアプリ・パッケージ管理ツール
  5. 05実行制限とセッションログの設定

活用シーン

  1. 01モバイルアプリのUIテスト自動化
  2. 02アプリの動作と権限の調査
  3. 03動的解析のためのアプリ操作
  4. 04開発中のビルド導入とUI確認

MCP 対応

stdio経由で、互換性のあるAIクライアントに構造化されたADBツールを公開します。任意のツールパックでアプリやパッケージの管理機能を追加できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"neverlow512-agent-droid-bridge": {
"command": "uvx",
"args": [
"agent-droid-bridge"
],
"env": {
"ADB_EXECUTION_MODE": "<ADB_EXECUTION_MODE>",
"ADB_ALLOW_SHELL": "<ADB_ALLOW_SHELL>",
"ADB_PATH": "<ADB_PATH>",
"ADB_EXTRA_TOOL_PACKS": "<ADB_EXTRA_TOOL_PACKS>",
"ADB_DENIED_TOOLS": "<ADB_DENIED_TOOLS>",
"ADB_SHELL_ALLOWLIST": "<ADB_SHELL_ALLOWLIST>",
"ADB_SHELL_DENYLIST": "<ADB_SHELL_DENYLIST>",
"MCP_LOG_ENABLED": "<MCP_LOG_ENABLED>",
"MCP_LOG_DIR": "<MCP_LOG_DIR>",
"ADB_LOG_LEVEL": "<ADB_LOG_LEVEL>",
"ADB_COMMAND_TIMEOUT": "<ADB_COMMAND_TIMEOUT>",
"ADB_SCREENSHOT_TIMEOUT": "<ADB_SCREENSHOT_TIMEOUT>",
"ADB_UI_CHANGE_TIMEOUT": "<ADB_UI_CHANGE_TIMEOUT>",
"ADB_UI_CHANGE_POLL_INTERVAL": "<ADB_UI_CHANGE_POLL_INTERVAL>",
"ADB_AAPT_TIMEOUT": "<ADB_AAPT_TIMEOUT>",
"ADB_CONFIG_SOURCE": "<ADB_CONFIG_SOURCE>"
}
}
}
}
起動コマンドuvx agent-droid-bridge
設定が必要な環境変数
ADB_EXECUTION_MODESecurity mode. 'unrestricted' allows all shell commands with an optional denylist. 'restricted' allows only commands in ADB_SHELL_ALLOWLIST.
ADB_ALLOW_SHELLSet to 'false' to block all adb shell commands regardless of execution mode.
ADB_PATHPath to the ADB binary. Use a full path if adb is not on your system PATH.
ADB_EXTRA_TOOL_PACKSComma-separated list of extra tool packs to load. Set to 'app_manager' to enable 9 additional app management tools.
ADB_DENIED_TOOLSComma-separated list of tool names to hide from the agent at startup.
ADB_SHELL_ALLOWLISTComma-separated list of shell commands permitted in restricted mode. Empty blocks all shell commands.
ADB_SHELL_DENYLISTComma-separated list of shell commands blocked in unrestricted mode.
MCP_LOG_ENABLEDSet to 'true' to enable session logging. Requires MCP_LOG_DIR.
MCP_LOG_DIRAbsolute path to the directory where session logs are written. Required when MCP_LOG_ENABLED is true.
ADB_LOG_LEVELServer process log level.
ADB_COMMAND_TIMEOUTMaximum seconds to wait for any ADB command.
ADB_SCREENSHOT_TIMEOUTMaximum seconds to wait for a screenshot capture.
ADB_UI_CHANGE_TIMEOUTDefault timeout in seconds for detect_ui_change.
ADB_UI_CHANGE_POLL_INTERVALHow often in seconds detect_ui_change polls the UI hierarchy.
ADB_AAPT_TIMEOUTMaximum seconds to wait for aapt dump badging, used by the app_manager pack.
ADB_CONFIG_SOURCESet to 'yaml' to load configuration from adb_config.yaml instead of environment variables.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiagent-droid-bridge0.6.1

ツール

14

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
device_serialanyいいえ対象デバイスのシリアル番号 — device_serial=<serial> として渡します。Android デバイスのシリアル番号(例:'emulator-5554' または '192.168.1.10:5555')。接続されているデバイスが 1 台のみの場合に限り省略できます。ツールが複数デバイスのエラーを返した場合は停止してください。デバイス一覧をそのままユーザーに提示し、明示的な選択を待ちます。推測または推定したシリアル番号で再試行してはいけません。これは必須要件です。ユーザーがシリアル番号を指定したら、このセッション中の以降の呼び出しすべてでそれを使用します。セッション中にデバイスを切り替える場合は、まずユーザーに確認してください。

詳細

Python 3.11+ License MIT MCP Compatible PyPI MCP Registry Awesome PyPI Downloads LinkedIn Ask DeepWiki

Agent Droid Bridge

Agent Droid Bridge は、ADB 経由で AI エージェントを Android デバイスやエミュレーターに接続する MCP サーバーです。モバイル自動化、アプリのテスト、動的解析、リバースエンジニアリング向けに構築されており、ADB の全機能を構造化されたツールとして公開し、MCP 対応の AI クライアントから直接呼び出せます。ADB でできることは、すべてエージェントで実行できます。


目的に特化したツールは、構造化された最小限の応答を返します。生の XML ダンプも、コンテキストの無駄遣いもありません。エージェントは長時間のセッションでも高速に動作します。

agent-droid-bridge MCP server

デモ

Agent Droid Bridge Demo

上のデモでは、接続されたエージェントにできることを示すため、いくつかの簡単なタスクを実行しています。これは機能のほんの一部にすぎません。

  • Paint アプリをインストールして開き、壁と屋根のピクセル座標を計算して家を描きます
  • デバイスのブラウザーを開いて「MCP Wikipedia」を検索し、検索結果ページに移動してスクリーンショットを撮ります
  • Calculator を開いて 1337 × 42 を計算し、結果をホストマシンに取り出します
  • Contacts を開いて名前と電話番号を登録し、保存されたことを確認します
  • Calendar を開き、指定した日付に予定を登録します
  • Settings を開いてダークモードを切り替えます
  • デバイスから Calculator の APK をホストマシンに取り出します
  • Notepad をインストールし、完了したすべてのタスクを一文で要約して書き込み、最後にスクリーンショットを撮ります

機能

ツール

  • 画面キャプチャ、UI の検査、テキストの読み取り、要素の抽出、タッチおよびスワイプ入力、テキスト入力、キーコードイベント、アプリの起動、ADB コマンド、デバイスの検査に対応する、組み込みツール 14 種
  • app_manager パックに、パッケージ管理、アプリのライフサイクル管理、APK の抽出、権限、インテントの注入に対応するツール 9 種が追加されます。ADB_EXTRA_TOOL_PACKS=app_manager で読み込めます
  • 利用可能なツールは、サーバーの起動時の指示に反映されます。エージェントは接続時に正確なカタログを受け取ります

デバイスの処理

  • 接続されているデバイスが 1 台の場合は自動検出し、複数台ある場合は選択を求めます
  • stdio 経由で動作し、MCP 対応のあらゆる AI クライアントと互換性があります
  • 生の XML ダンプではなく構造化された応答を返すため、長時間の自動化処理でもエージェントのコンテキストを簡潔に保てます

セキュリティ

  • 2 つの実行モードがあります。unrestricted(フル ADB アクセス。任意で拒否リストを設定可能)と、restricted(許可リストのみ。明示的に許可されていない操作をすべてブロック)
  • ADB_ALLOW_SHELL=false を設定すると、モードに関係なく、すべてのシェルコマンドが無効になります
  • ADB_DENIED_TOOLS を使って、エージェントから特定のツールを非表示にできます
  • すべてのコマンドは shlex で解析されるため、シェルインジェクションは発生しません

可観測性

  • オプションのセッションレコーダーを使うと、すべてのツール呼び出し、ADB コマンド、セキュリティイベントが構造化された JSONL ファイルに記録されます。MCP_LOG_ENABLED=true と MCP_LOG_DIR を設定して有効にします

ユースケース

モバイル QA とテストの自動化 アプリを変更したりテストコードを書いたりせずに、実機やエミュレーター上の UI フローを自動化できます。自然言語のプロンプトだけで、タップ、スワイプ、入力、画面コンテンツの読み取り、スクリーンショットの撮影を実行できます。

アプリのセキュリティ調査 APK の抽出、宣言された権限の検査、任意のインテントの送信、画面上での実行時の動作の観察が可能です。計測もジェイルブレイクも必要ありません。

動的解析 制御された状態でアプリを起動し、UI 操作を実行して各ステップの画面状態をキャプチャし、成果物を取得できます。すべて AI エージェントを通じてスクリプト化できます。

開発とデバッグ 開発環境を離れることなく、ビルドのインストール、UI 状態の確認、アプリ情報のチェック、ADB コマンドの実行が可能です。

インストール

uvx agent-droid-bridge

リポジトリのクローンや仮想環境の作成は不要です。Python 3.11+ と、ホストへの ADB のインストールが必要です。

uvx は uv に含まれています。インストールされていない場合:curl -LsSf https://astral.sh/uv/install.sh | sh

ソースからインストールする場合は、docs/setup.md — オプション B を参照してください。

インストールを確認するには:uvx agent-droid-bridge --help

クイックスタート

  1. ADB をインストールします。プラットフォーム別の手順については、docs/setup.md を参照してください
  2. Android デバイスを接続するか、エミュレーターを起動します
  3. MCP クライアントの設定にサーバーを追加します:
{
  "mcpServers": {
    "agent-droid-bridge": {
      "command": "uvx",
      "args": ["agent-droid-bridge"],
      "env": {
        "ADB_EXECUTION_MODE": "unrestricted",
        "ADB_ALLOW_SHELL": "true",
        "ADB_PATH": "adb",
        "ADB_EXTRA_TOOL_PACKS": "",
        "MCP_LOG_ENABLED": "false",
        "MCP_LOG_DIR": "~/logs/agent-droid-bridge"
      }
    }
  }
}

セッションログを有効にするには、MCP_LOG_ENABLED に "true" を設定し、MCP_LOG_DIR をマシン上の書き込み可能なパスに変更します。

変数デフォルト説明
ADB_EXECUTION_MODEunrestrictedセキュリティモードです。unrestricted はすべてのシェルコマンドを許可します(任意で拒否リストを設定可能)。restricted は ADB_SHELL_ALLOWLIST に含まれるコマンドのみを許可します。
ADB_ALLOW_SHELLtruefalse に設定すると、実行モードに関係なく、すべての adb shell コマンドをブロックします。
ADB_PATHadbADB バイナリへのパスです。システムの PATH に adb がない場合は、フルパスに置き換えてください(例:Windows の場合は C:\platform-tools\adb.exe)。
ADB_EXTRA_TOOL_PACKS(空)読み込む追加ツールパックをカンマ区切りで指定します。app_manager を設定すると、アプリ管理ツールが 9 種追加で有効になります。
MCP_LOG_ENABLEDfalsetrue に設定すると、セッションログが有効になります。MCP_LOG_DIR が必要です。
MCP_LOG_DIR(なし)セッションログの書き込み先ディレクトリです。MCP_LOG_ENABLED が true の場合は必須です。
  1. エージェントに agent-droid-bridge MCP ツールを使うようプロンプトで指示します

セットアップガイドと環境変数の一覧については、docs/setup.md を参照してください。

ツール

ツール機能
get_ui_hierarchy現在の画面を XML UI 階層として返します
take_screenshot画面を base64 エンコードされた PNG としてキャプチャします
tap_screenピクセル座標を指定してタップジェスチャーを送信します
swipe_screen指定した時間をかけて、2 点間のスワイプジェスチャーを送信します
type_textフォーカスされている入力フィールドにテキストを入力します
press_keyAndroid のキーコードイベント(Back、Home、Enter など)を送信します
launch_apppackage/activity コンポーネント名を指定してアプリを起動します
execute_adb_command任意の ADB または ADB shell コマンドを実行します
list_devicesADB から現在認識できるすべての Android デバイスのシリアル番号、状態、モデルを一覧表示します
snapshot_ui軽量な UI スナップショットを取得し、detect_ui_change で使用するトークンを返します
detect_ui_changeアクション後の UI の変更をポーリングします。ベースラインとしてスナップショットトークンを受け取り、要求された場合にのみ階層を返します
get_screen_elementsUI 階層を解析し、座標やインタラクションプロパティを含む構造化された要素を返します。tappable、interactive、input、all の各モードをサポートします
get_screen_text画面に表示されているすべてのテキストを、上から下の順にプレーンテキストで返します
check_device_capabilitiesデバイスの識別情報、セキュリティ状態、ハードウェア仕様を含む構造化情報を 1 回の呼び出しで返します。identity、security、hardware、all の各モードをサポートします
追加のツールパック

オプションのパックでコアツールセットを拡張できます。MCP クライアントの設定で ADB_EXTRA_TOOL_PACKS を設定して有効にします。docs/extra-tool-packs.md を参照してください。

app_manager

パッケージ管理、アプリのライフサイクル制御、APK の抽出、権限管理、インテントの注入を行います。

ツール機能
list_packagesインストール済みパッケージを、任意のフィルタリング、検索、詳細レベルで一覧表示します
get_app_infoインストール済みのアプリ 1 つの静的メタデータ全体を返します
install_appホスト上のパスからデバイスに APK をインストールします
uninstall_appパッケージ名を指定してインストール済みアプリを削除します
pull_apkインストール済みの APK をデバイスからホストに抽出します
manage_permissionアプリの実行時権限を付与、取り消し、確認、一覧表示します
launch_app_extraパッケージ名でアプリを起動し、ランチャーアクティビティを自動的に解決します
manage_appアプリの実行時状態を制御します — 停止、データの消去、キャッシュの消去、有効化、無効化
inject_intentam start、am broadcast、または am startservice を介してコンポーネントにインテントを送信します

パラメーターの完全なリファレンス:docs/tools.md

設定

サーバーはすべて MCP クライアントの env ブロックで設定できます。編集するファイルはありません。上記のクイックスタートにある env ブロックで、最も一般的な設定を行えます。セキュリティフィルタリング、ツールの表示設定、タイムアウトを含む完全なリファレンスは、docs/configuration.md を参照してください。

代わりに YAML 設定ファイルを使用するには、ADB_CONFIG_SOURCE=yaml を設定します。詳細は docs/configuration.md を参照してください。

セッションの記録は別途設定します。MCP_LOG_ENABLED=true と MCP_LOG_DIR を設定して有効にします。完全なリファレンス:docs/logging.md。

ドキュメント

ファイル説明
docs/setup.md前提条件、インストール、MCP クライアントの設定
docs/tools.mdすべてのツールのパラメーターに関する完全なリファレンス
docs/configuration.md環境変数と adb_config.yaml のリファレンス
docs/logging.mdセッションレコーダー — ログファイル、レベル、保持期間、有効化
docs/extra-tool-packs.md追加のツールパック — パックの有効化、パックの仕様、独自のパックの作成
docs/troubleshooting.mdよくあるセットアップの問題と ADB の問題
docs/workflows.md一般的な複数ツールのワークフローと例
CHANGELOG.mdリリース履歴とバージョンの変更

貢献

貢献を歓迎します。セットアップ、コード規約、プルリクエストの提出に関するガイドラインは、CONTRIBUTING.md を参照してください。

セキュリティの脆弱性を報告する場合は、SECURITY.md の手順に従ってください — 公開の issue は作成しないでください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。