Dev Tools For Android (dta) Mcp について
DTA(Development Tools for Android)は、AI コーディングエージェントが MCP 経由で Android デバイスを確認・操作できるツールキットです。レイアウトツリー、ネットワーク記録、モック、画面操作を提供します。Android 開発者向けで、Android Studio、コマンドライン、任意の MCP クライアントから利用できます。
主な機能
- 01レイアウトツリーと Compose 情報の確認
- 02HTTP と WebSocket の通信を自動記録
- 03HTTP と WebSocket のモックルール作成
- 04sidekick を組み込んだビルドと起動
- 05デバイスでのタップ、スワイプ、テキスト入力
活用シーン
- 01Android アプリのネットワークリクエストとレスポンスのデバッグ
- 02レイアウトと再コンポジションの問題調査
- 03バックエンドを変更せずに API レスポンスをモック化
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:12321/mcpclaude mcp add --transport http dta http://localhost:12321/mcp{"mcpServers":{"dta":{"type":"http","url":"http://localhost:12321/mcp"}}}Cursor で開く{"servers":{"dta":{"type":"http","url":"http://localhost:12321/mcp"}}}VS Code で開く{"mcpServers":{"dta":{"type":"http","url":"http://localhost:12321/mcp"}}}{"mcpServers":{"dta":{"serverUrl":"http://localhost:12321/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Android 向け開発ツール(DTA)
Model Context Protocol を通じて、AI アシスタントが Android デバイスに直接アクセスできるツールキットです。コーディングエージェントは、Android Studio、ターミナル、または任意の MCP クライアントから、画面の確認、ネットワークトラフィックの読み取り、レイアウトツリーの調査、レスポンスのモック、アプリの操作を行えます。
クイックスタート
オプション A:Android Studio プラグイン
または:Settings → Plugins → Marketplace → 「DTA」を検索
このプラグインにはデーモンが組み込まれており、デバッグビルドに sidekick を自動で注入します。また、4 タブのインスペクター(Layout、Network、WebSocket、MCP)も利用できます。CLI や手動セットアップは不要です。
オプション B:CLI
brew tap yamsergey/packages
brew install dta-cli
要件: Java 21+
自動注入(推奨)
プロジェクトの変更は不要です。CLI または MCP の run_app ツールを使用すると、sidekick を自動注入してアプリをビルドし、起動できます。
dta-cli run --project /path/to/your/android/project
Gradle を init スクリプトとともに実行し、dta-sidekick を debugImplementation 依存関係として追加して APK をビルドし、デバイスにインストールしてメインアクティビティを起動します。AI アシスタントも MCP の run_app ツールを使って同じ操作を行えます。
手動(代替方法)
sidekick をビルドファイルに直接追加する場合:
dependencies {
debugImplementation 'io.github.yamsergey:dta-sidekick:0.9.36'
}
Sidekick は AndroidX Startup を通じて自動的に初期化されるため、依存関係の追加以外にコードの変更は不要です。
AI アシスタントを接続する
AS プラグインを使用する場合: MCP タブを開き、サーバーを有効にして、ドロップダウンからエージェントを選択します。コピーして貼り付けるだけで使える、正確な設定スニペットが表示されます。Claude Code、Cursor、Android Studio Gemini、Claude Desktop、VS Code などで動作します。
プラグインを使用しない場合(CLI のみ):
Claude Code
claude mcp add dta -- dta-cli mcp
Cursor
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json に追加します。
{
"mcpServers": {
"dta": {
"command": "dta-cli",
"args": ["mcp"]
}
}
}
エージェントでできること
画面の分析
DTA は実際の UI 階層を返します。ビュークラス、境界、位置、レイアウトパラメーター、Compose 固有のデータ(コンポーザブル名、再コンポジション回数)、WebView や Chrome Custom Tabs の DOM ツリーを確認できます。セマンティックなアクセシビリティツリーを返す adb shell uiautomator dump とは異なり、エージェントは全体像を把握できます。
ネットワーク分析
Sidekick はアプリの起動時から自動的に記録します。HTTP リクエスト(OkHttp)、WebSocket 接続、Chrome Custom Tab のトラフィックが対象です。(WebView 自体のネットワークリクエストはまだキャプチャされませんが、DOM、Cookie、ストレージはキャプチャされます。)「記録開始」ボタンを押す必要も、リクエストを取り逃す心配もありません。エージェントはいつでも全履歴を照会できます。
モック
キャプチャしたデータを使うか、一から作成して、HTTP と WebSocket のモックルールを作成できます。プログラムから制御するには、カスタムアダプターを追加します。
Sidekick.configure(
SidekickConfig.builder()
.httpMockAdapter { transaction, proposedResponse ->
proposedResponse.withBody("""{"message": "mocked"}""")
}
.build()
)
ビルドと起動
run_app ツールは、sidekick を自動注入した APK をビルドしてインストールし、メインアクティビティを起動します。これらすべてを 1 回の MCP 呼び出しで実行できます。手動での Gradle のセットアップは不要です。環境のサンドボックスによってツールの実行がブロックされた場合は、代替手段として正確なシェルコマンドを返します。
検証
エージェントはタップ、スワイプ、テキスト入力、キー押下を行い、その後、画面の状態とネットワークトラフィックを確認して動作を検証できます。会話を離れることなく、調査、モック、操作、検証の全サイクルを実行できます。
Android Studio プラグイン
DTA Inspector ツールウィンドウには、次の 4 つのタブがあります。
| タブ | 機能 |
|---|---|
| レイアウト | UI ツリーとデバイスのスクリーンショットを表示し、ホバー時のハイライト、クリックによる選択、双方向の選択同期に対応 |
| ネットワーク | HTTP リクエストの一覧(ヘッダー、本文、所要時間を表示)。カスタムタブと WebView のトラフィックにも対応 |
| WebSocket | 接続一覧 → メッセージ一覧 → メッセージ詳細 |
| MCP | HTTP サーバーの有効化、ポートの選択、エージェントごとの設定スニペット(クリップボードへのコピー機能付き) |
プラグインは Gradle init スクリプトを介して、デバッグビルドに dta-sidekick を自動注入します。プロジェクトファイルを変更する必要はありません。
インスペクターの Web インターフェース
dta-cli inspector-web
http://localhost:8080 を開くと、レイアウトツリー、ネットワーク、WebSocket、モックルールエディターなど、同じ機能を使って視覚的に検査できます。
Web インスペクターでは、開発者とエージェントの双方向通信が可能です。要素を言葉で説明する代わりに、クリックして選択できます。
MCP トランスポート
| トランスポート | コマンド | 用途 |
|---|---|---|
| stdio | dta-cli mcp | Claude Desktop、Cursor、および任意の stdio MCP クライアント |
| HTTP | dta-cli mcp serve --http --port 12321 | AS Gemini、Claude Code HTTP、および任意の Streamable HTTP クライアント |
| プラグイン | MCP タブで有効化 | AS に組み込まれた HTTP サーバー。CLI は不要 |
モジュール
| モジュール | 説明 |
|---|---|
| dta-plugin | Android Studio プラグイン(4 タブのインスペクター、組み込みデーモン、MCP サーバー) |
| dta-cli | CLI インターフェース(mcp、inspector-web、run、inspect コマンド) |
| dta-mcp | MCP サーバー(stdio と HTTP トランスポート、ツール定義) |
| dta-daemon | Javalin HTTP デーモン(sidekick 接続、CDP ウォッチャー、レイアウト情報の拡充) |
| dta-sidekick | アプリ内検査ライブラリ(Android AAR、AndroidX Startup による自動初期化) |
| tools-android | Gradle Tooling API のコア統合 |
| workspace-kotlin | Kotlin Language Server 用の workspace.json コンバーター |
CLI リファレンス
dta-cli --help
dta-cli <command> --help
ライセンス
Apache License 2.0 — LICENSE.txt を参照
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
