droidprobe について
droidprobeは、ADB経由でAndroidデバイスを調べる開発者やエージェント向けのRustツールキットです。端末UIとMCPサーバーが共通のコアを使い、デバイス、パッケージ、ログを調査できます。
主な機能
- 01ADB経由でAndroidデバイスを調査
- 02ハードウェアとパッケージの表示
- 03権限とコンポーネントの確認
- 04デバイスログの閲覧
- 05端末UIと共有コア
活用シーン
- 01インストール済みパッケージと権限の確認
- 02Androidデバイスログの確認
- 03エージェントからデバイス情報を調査
- 04端末UIでデバイス情報を閲覧
MCP 対応
droidprobe-mcpサーバーは、デバイス、パッケージ、ログの調査に使う10個の読み取り専用ツールをMCPクライアントに公開します。stdioで通信し、ローカルのADBサーバーと接続端末へのアクセスが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
droidprobe
ADB(USB デバッグ)経由で Android デバイスを調査するための、モジュール式 Rust ツールキットです。
共通のコアを使用する 2 つのフロントエンド、ターミナル UI(droidprobe)とエージェント向け MCP
サーバー(droidprobe-mcp)を提供します。
設計と段階的な計画の詳細は、ARCHITECTURE.md をご覧ください。
スクリーンショット

| 概要 | パッケージ | ログ |
|---|---|---|
![]() | ![]() | ![]() |
ワークスペースの構成
droidprobe/
├── Cargo.toml # workspace + shared dep versions
├── ARCHITECTURE.md
└── crates/
├── droidprobe-parser/ # raw text -> structured data (pure, no I/O)
├── droidprobe-command/ # Command trait, Transport, built-in catalog
├── droidprobe-core/ # Registry + Engine + Poller
├── droidprobe-tui/ # ratatui binary (bin: `droidprobe`)
└── droidprobe-mcp/ # rmcp binary (bin: `droidprobe-mcp`)
前提条件
- Rust 1.82+(
rustupを推奨) - 実行中の
adbサーバー(adb start-server)と、USB デバッグが有効化され、認証済みのデバイス
ビルドとテスト
cargo build --workspace
cargo test --workspace # parser + command tests run without a device
TUI の実行
cargo run -p droidprobe-tui
# Tab switches views, q quits. Logs are written to ./droidprobe.log
MCP サーバーの実行
cargo run -p droidprobe-mcp # speaks MCP over stdio
MCP クライアント(Claude Desktop / Claude Code など)には、ビルド済みバイナリを stdio サーバーとして指定して登録します。ツールは読み取り専用です。
Claude Code への登録
cargo build -p droidprobe-mcp --release
claude mcp add droidprobe -- "$(pwd)/target/release/droidprobe-mcp"
claude mcp get droidprobe # should show "Status: ✔ Connected"
これは adb サーバーと USB 接続されたデバイスと同じマシン上で実行する必要があります。サーバーは adb shell でアクセスできないデバイスには到達できないため、adb をトンネル経由で戻さない限り、リモートインフラ上でデタッチして実行する実用的な方法はありません。
Claude Desktop への登録
claude_desktop_config.json に追加します。
{
"mcpServers": {
"droidprobe": {
"command": "/absolute/path/to/target/release/droidprobe-mcp"
}
}
}
droidprobe-mcp の配布
crates.io への公開
パス依存のクレートは依存関係の順序に従って公開する必要があります。cargo publish で依存関係を解決するには、先行するクレートがすでに crates.io で公開されていなければなりません。
cargo login # one-time, needs your crates.io API token
cargo publish -p droidprobe-parser
cargo publish -p droidprobe-command # only after droidprobe-parser is live
cargo publish -p droidprobe-core # only after droidprobe-command is live
cargo publish -p droidprobe-mcp # only after droidprobe-core is live
cargo publish -p droidprobe-tui # optional, same dependency floor as mcp
crates.io のインデックスに新しいリリースが反映されるまで、1〜2 分ほどかかります。先行するクレートの公開直後に下流のクレートで cargo publish を実行すると、「no matching package found」というエラーで失敗します。droidprobe-mcp の公開後は、Rust がインストールされていれば誰でも次のコマンドを実行できます。
cargo install droidprobe-mcp
ビルド済みバイナリ(Rust ツールチェーン不要)
.github/workflows/release.yml は、v*.*.* タグがプッシュされるたびに、macOS(Intel および Apple Silicon)、Linux x86_64、Windows x86_64 向けに droidprobe(TUI)と droidprobe-mcp の両方をクロスビルドし、アーカイブを GitHub Release に添付します。
git tag v0.1.0
git push origin v0.1.0
MCP レジストリへの登録
公式 MCP レジストリへの公開には専用 CLI を使用し、GitHub OAuth を通じて名前空間の所有権を検証します。このリポジトリにはスターター用の server.json が含まれています。crates.io の各リリースに合わせて version を更新し、次のコマンドを実行してください。
brew install mcp-publisher
mcp-publisher login github
mcp-publisher publish # validates server.json and submits it
独自コマンドの追加
Command を実装し、TypedDyn でラップして登録します。
let mut registry = droidprobe_core::registry::Registry::with_builtins();
registry.register(Box::new(droidprobe_command::TypedDyn(MyCommand)));
ステータス
テスト済みパーサー 10 個、組み込みコマンド 10 個、レジストリ/エンジン/ポーラー、概要/パッケージ/ログの各タブを備えた TUI(パッケージ検索、権限、アクティビティ/サービス/レシーバー/プロバイダーの各コンポーネントタブ)、および同じデバイス/パッケージ/ログを扱う 10 個のツールを備えた MCP サーバーを実装しています。フェーズ 2〜6(パーサーの拡充、TUI の拡充、ATK コマンドとの同等性、MCP の仕上げ、堅牢性)については ARCHITECTURE.md で説明しています。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。


