admcp - Android Debug MCP について
admcpは、Android開発者やエージェント構築者向けのローカル優先MCPサーバーで、MCP stdioクライアントを実機やエミュレーターに接続します。型付きツールでUI検査、アプリのデバッグ、性能トレース、成果物、診断を扱い、プロジェクトや端末のデータをクラウドへ送信しません。
主な機能
- 0151個の型付きAndroidツール
- 02UIの検査と操作
- 03JDI、LLDB、Flutterのデバッグ
- 04Perfettoトレースとヒープダンプ
- 05成果物と証拠に基づく診断
活用シーン
- 01Androidアプリ画面の検査と操作
- 02クラッシュの追跡とlogcat出力の確認
- 03ブレークポイント設定と実行状態の調査
- 04性能トレースとヒープダンプの取得
MCP 対応
MCP stdioクライアントをAndroid実機またはエミュレーターに接続し、開発とデバッグ用の51個の型付きツールを公開します。Androidツールチェーンとともにローカルで動作し、プロジェクトや端末のデータをアップロードしません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
admcp
admcp は、Android 開発向けのローカルファーストな Model Context Protocol(MCP)サーバーです。 任意の MCP stdio クライアントを実機またはエミュレーターに接続し、UI の検査、スクリーンショット、logcat、Java/Kotlin JDI デバッグ、ネイティブ LLDB、Flutter/Dart DAP、Compose の検査、Perfetto トレース、ヒープダンプ、アーティファクト、証拠に基づく診断に対応する、型付けされた 51 個のツールを提供します。
root 権限は不要です。クラウドアカウントも必要ありません。
クイックスタート | できること | プロンプト例 | admcp を選ぶ理由 | ドキュメント
状況:v1、51 個のツール。OnePlus CPH2747(API 36、arm64-v8a)で実機テスト済みです。 詳細な証拠と残る制限については、 実装状況をご覧ください。
クイックスタート
- JDK 21 と Android SDK platform-tools(
adb)をインストールします。 - GitHub Releasesから
admcp-<version>.zipをダウンロードして 展開します。同じリリースにあるadmcp-<version>.mcpbは、MCPB 対応クライアントから インストールできます。 - MCP クライアントに、Windows では
bin/admcp.bat、Linux と macOS ではbin/admcpを指定します。
任意の MCP stdio クライアントで利用できます。以下の JSON では一般的なmcpServers
形式を使用しています。コマンドと引数は、使用するクライアント(Claude Code、Cursor、
VS Code、Codex、Gemini CLI など)に合わせて調整してください。
{
"mcpServers": {
"admcp": {
"command": "C:\\Tools\\admcp\\admcp-<version>\\bin\\admcp.bat",
"args": [
"--platform-tools", "C:\\Android\\Sdk\\platform-tools",
"--artifacts", "C:\\temp\\admcp-artifacts"
]
}
}
}
Linux と macOS では、commandに/opt/admcp/admcp-<version>/bin/admcpを指定します。
インストールを確認します。
C:\Tools\admcp\admcp-<version>\bin\admcp.bat --selftest
Linux と macOS の場合:
/opt/admcp/admcp-<version>/bin/admcp --selftest
stderr にcatalog=51 registered=51 version=<version>と表示されます。
その後、サーバーは stdio 経由で MCP を通信します。stdout はプロトコル通信専用です。
できること
| 分野 | ツール |
|---|---|
| デバイスとワークスペース | device_list、device_inspect、toolchain_probe、workspace_open、workspace_describe |
| アプリのライフサイクル | app_build、app_install、app_launch |
| セッション | session_start、session_status、session_stop |
| UI とスクリーンショット | ui_inspect、ui_find、ui_act、ui_screenshot、compose_inspect |
| ログ | logcat_start、logcat_query、logcat_stop、logcat_statistics、logcat_health |
| Java/Kotlin デバッグ | debug_attach、ブレークポイント、debug_step、debug_stack、debug_variables、debug_evaluate |
| ネイティブデバッグ | LLDB 接続、ブレークポイント、スタック、レジスター、メモリ読み取り、モジュール |
| Flutter デバッグ | DART_DAP 接続、ブレークポイント、スタック、変数、ステップ実行、一時停止、切断 |
| パフォーマンス | Perfetto システムトレース、ヒープダンプ、performance_trace_analyze |
| アーティファクトと証拠 | artifact_get、analyze_artifact、プレビュー、diagnostics_*、signals_crashes |
51 個すべてのツールの仕様は docs/architecture/mcp-tool-catalog-v1.mdにあります。 カタログはコントラクトテストで検証されています。
プロンプト例
admcp を接続したら、エージェントに次のようなことを尋ねてみてください。
Inspect the current screen, find the INCREMENT button, tap it, and verify the counter changed.
Start logcat, reproduce the crash, then summarize the stack trace and the last 50 lines before it.
Launch the app, attach JDI, set a breakpoint in MainActivity, and show locals when it hits.
Inspect this Compose screen and tell me which accessibility node is the DELETE COUNTER button.
Record a 5-second Perfetto trace and summarize what happened.
Attach LLDB to the native library, break in fixture_increment, and show the registers.
admcp を選ぶ理由
多くの Android MCP ツールは、コマンドの薄いラッパーにすぎません。admcp はデバイス、ワークスペース、プロセス、セッションの状態をまとめて管理し、型付きスキーマ、成果物、安全性チェックを備えたデバッグ用プリミティブを公開します。
対象となるのは、次の方々です。
- Claude Code、Cursor、その他のエージェントを使って、実機を調査・デバッグしたい Android 開発者。
- adb の文字列を解析する代わりに、安定した型付き Android アクションを必要とするエージェントの構築者。
- デバイスから再現可能な証拠を必要とする QA や自動化のワークフロー。
| adb とシェルスクリプト | Android Studio | admcp | |
|---|---|---|---|
| AI エージェント向け | いいえ | いいえ | はい |
| 型付き MCP ツールスキーマ | いいえ | いいえ | 51 個のツール |
| セッション、プロセス、バックエンドの状態 | いいえ | 一部対応 | はい |
| MCP 経由の JDI、LLDB、Flutter | いいえ | 人間向け UI | はい |
| 証拠、成果物、診断情報 | いいえ | 一部対応 | はい |
| ローカル優先、クラウドアカウント不要 | はい | はい | はい |
IDE の前に座る人間にとっては、Android Studio のほうが適したツールです。admcp は、人間がすべてのクリックを操作しなくても、調査、操作、デバッグを行う必要があるエージェント向けです。
仕組み
flowchart LR
Client["MCP client / agent"] -->|stdio| Server["admcp (MCP server)"]
Server --> ADB["ADB / Android CLI"]
Server --> JDI["JDI (JDWP client)"]
Server --> LLDB["lldb-dap"]
Server --> DAP["Flutter DAP"]
ADB --> Device["Android device / emulator"]
JDI -.->|via adb forward| ADB
LLDB -.->|via adb forward / lldb-server| ADB
DAP -.->|via adb forward| ADB
サーバーは Android ツールチェーンと並んで、マシン上で動作します。プロジェクトやデバイスのデータを外部にアップロードすることはありません。
検証済み
- 検証済みホストで、
186件のテストを実施し、失敗は0件でした。 - カタログは MCP stdio 経由で
51個すべてのツールを登録します。 - 実機:OnePlus CPH2747、API 36、arm64-v8a。
- JDI:アタッチ、ブレークポイント、ステップ実行、スタック、ローカル変数、読み取り専用評価。
- LLDB:アタッチ、ブレークポイント、スタック、レジスター、範囲を制限したメモリ読み取り、モジュール。
- Flutter:
DART_DAPのブレークポイント、スタック、変数、ステップ実行、一時停止、デタッチ。 - Compose:アクセシビリティツリーの調査と、検証済み UI アクション。
- パフォーマンス:Perfetto のキャプチャ/分析と HPROF ヒープダンプのキャプチャ。
- 証拠:logcat、クラッシュバッファー、成果物、セッションタイムライン、診断情報。
デバイスに依存する統合テストは、デバイスが接続されていない場合はスキップされます。受け入れ証拠の詳細は、実装状況を参照してください。
要件
- JDK 21。
- Android SDK platform-tools(
adb)。 - Windows、Linux、または macOS。
- 任意:Android CLI、Flutter SDK、NDK の
lldb/lldb-server、lldb-dap、および接続済みのデバイスまたはエミュレーター。
サポート対象はデバッグ可能な開発者向けビルドのみです。root 化や Android のセキュリティ回避は対象外です。
ソースからビルド
ソースからのビルド、テスト、パッケージ化
Gradle ラッパーはリポジトリに含まれているため、ローカルに Gradle をインストールする必要はありません。
Windows:
gradlew.bat clean test
gradlew.bat :app:admcp:installDist
Linux および macOS:
./gradlew clean test
./gradlew :app:admcp:installDist
インストール可能なディストリビューションは
app/admcp/build/install/admcp/ に出力されます。リリースアーカイブは
:app:admcp:distZip でビルドされ、
app/admcp/build/distributions/admcp-<version>.zip に出力されます。
リリースは、main または master へのプッシュ時に Conventional Commits から semantic-release を使って自動化されます。fix: はパッチリリース、feat: はマイナーリリース、BREAKING CHANGE: はメジャーリリースです。リリース PR や変更履歴は生成されません。
設定
| オプション | 用途 |
|---|---|
--platform-tools <dir> | adb を含むディレクトリ |
--workspace <dir> | デフォルトのワークスペースルート |
--android-cli <path> | Android CLI 実行ファイル |
--flutter-root <dir> | Flutter SDK ルート |
--artifacts <dir> | 成果物ストアのルート |
--trust-workspace <dir> | オペレーターが承認したワークスペースルート。複数回指定可能 |
--selftest | カタログ/登録件数を表示して終了 |
--version | バージョンを表示して終了 |
workspace_trust が成功するのは、サーバー起動時に --trust-workspace で渡された正規のルートに限られます。ツールの引数で承認を自己申告することはできません。
既知の制限事項
- 検証済みのデバイスは API 36 の OnePlus CPH2747 です。他の OEM、API、トランスポートの組み合わせは保証対象外です。
- 検証済みのデバイスでは、JDI と LLDB による同時検査は安定していません。
debug_attach(switchBackend=true)を使えば、順次切り替えて使用できます。 - Compose の
TREEはアクセシビリティ階層を使用します。内部セマンティクス、スロットテーブル、再コンポジションのデータを取得するには、アプリへのインストルメンテーションが必要です。 - ホストの
trace_processor_shellは同梱されていないため、Perfetto SQL ツールがインストールされていない場合、トレース分析は範囲を限定した概要を返します。 - Crashlytics のイシュークラスターを取得するには
android auth loginが必要です。ローカルのクラッシュバッファーが引き続きデフォルトの証拠ソースです。 - ネイティブ LLDB を使用するには、別途インストールした
lldb-dapと、ABI が一致するlldb-serverが必要です。 - ホストの確認ダイアログを表示するには、対話型デスクトップが必要です。ヘッドレスサーバーではフェイルクローズし、ワンショットトークンに切り替わります。
詳細と正確なエラー動作については、実装状況を参照してください。
セキュリティ
- サポート対象は、デバッグ可能な開発ビルドのみです。
- プロジェクトが制御するコードは、ワークスペースの信頼が明示的に許可された後にのみ実行されます。
- 破壊的な UI 操作には、ホストの確認、またはセッションと操作にひも付けられたワンショットトークンが必要です。
- アーティファクトの読み取りはストアルート内に限定され、デフォルトでサイズが制限され、機密情報が除去されます。
- このサーバーはローカル優先です。クラウドアカウントは必要ありません。
ドキュメント
コントリビューション
イシューやプルリクエストを歓迎します。公開ツールカタログはバージョン管理されています。公開ツールの追加や名称変更を行う前に、イシューを作成してください。PR を送る前に gradlew test を実行してください。
admcp がエージェントの作業時間を節約できた場合は、スターを付けていただくと、より多くの Android 開発者に見つけてもらいやすくなります。
ライセンス
Apache License 2.0。詳細はLICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。