ADB Friend について
ADB Friend は、ADB を通じて Android デバイスを管理するコマンドラインツールです。主に開発者向けですが、他のユーザーも利用できます。バージョン 1.4.0 以降は MCP サーバーも含み、Claude Desktop などの AI ツールに設定できます。
主な機能
- 01ローカルファイルをデバイスへ同期し、既存ファイルはスキップ
- 02アニメーションの無効化などテスト用デバイスの設定
- 03パターンに一致するアプリの一括アンインストール
- 04USB ケーブルの接続速度の確認
- 05デバイス、アプリ、ファイルの操作を MCP ツールとして提供
活用シーン
- 01自動テスト用のデバイス設定とテストデータの準備
- 02AI ツールから接続中デバイスのインストール済みアプリを確認
- 03AI クライアントにデバイス内フォルダの整理やスクリーンショット取得を依頼する
MCP 対応
この project は adbfriend mcp server で起動する MCP サーバーを含み、デバイス、アプリ、ファイルに関するツールを MCP クライアントへ提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ADB Friend
ADB Friend は、ADB 経由で Android デバイスを管理するための小さな CLI ツールです。 主に開発者向けに設計された機能ですが、誰にとっても役立つ場合があります。
機能
- コンピューターからスマートフォンにファイルを同期します
- テストデータ向けに設計されており、デバイス上にすでに存在するファイルはスキップします
- テスト用にデバイスを設定します
- アニメーションの無効化、タッチの有効化など
- パターンに一致するアプリをアンインストールします
- Packages コマンド
- glob に一致するすべてのパッケージにイマーシブフラグを適用し、強制停止して、アプリのデータとキャッシュを消去します
- その他のツール
- adb-speed(性能の低いケーブルの特定に役立ちます)
- Model Context Protocol MCP サーバー
インストール
Homebrew を使用してインストールできます。まず、カスタム tap が必要です。
brew tap mikepenz/tap
次に、AdbFriend CLI をインストールします。
brew install mikepenz/tap/adbfriend
または、リリースページからビルド済みバイナリをダウンロードできます。
使用方法
ADB Friend はターミナルで使用できるコマンドラインツールです。
# Get started with the `--help` command, to get information and an overview on the various features offered.
adbfriend --help
MCP サーバー
ADB Friend は(バージョン 1.4.0 以降)、人気の AI ツール(Claude Desktop、GitHub Copilot、RayCast など)で設定できる Model Context Protocol(MCP)サーバーも提供しています。
設定
設定ファイルの場所と詳細は、使用するツールによって異なります。以下はClaude Desktopの例です。
{
"mcpServers": {
"adb-friend": {
"command": "/opt/homebrew/bin/adbfriend",
"args": [
"mcp",
"server"
],
"env": {
"ANDROID_HOME": "/Users/mikepenz/Development/android/sdk"
}
}
}
}
重要
ANDROID_HOMEが指定されていない場合は、お使いのマシンでadb-serverを手動で起動する必要があります。 そうしないと、接続例外がスローされます。
サーバーのデバッグ
サーバーの起動後、npx @modelcontextprotocol/inspector を使用してデバッグできます。
# Install and run inspector in your terminal
npx @modelcontextprotocol/inspector
次に、ウェブサイトを起動します(URL はターミナルに表示されます)。
IntelliJ または実際のコマンドを使用して mcp server を起動します。
# Default port is `3001`
adbfriend mcp server --sse true
対応ツール
| ツール名 | 説明 |
|---|---|
| check-adb-speed | 指定されたシリアル番号の Android デバイスの USB 接続速度を確認します。 |
| clear-installed-package | Android デバイス上の指定されたパッケージ名のデータを消去します。 |
| set-immersive-full-for-package | Android デバイス上の指定されたパッケージ名に「immersive-full」フラグを設定します。 |
| force-stop-process | Android デバイス上の指定されたパッケージ名を強制停止します。 |
| uninstall-package | Android デバイス上の指定されたパッケージ名をアンインストールします。 |
| get-connected-devices | シリアル番号、モデル、状態など、接続されているすべての Android デバイスの情報を取得します。 |
| get-installed-packages | Android デバイス上にインストールされているすべてのパッケージの情報を取得します。サードパーティ製アプリのみで絞り込めます。 |
| list_allowed_directories | ファイルシステムツールによるアクセスが許可されているディレクトリを一覧表示します。 |
| list-files | Android デバイス上のファイルとディレクトリを一覧表示します。「recursive」オプションを指定すると、再帰的に一覧表示できます。 |
| read-file | Android デバイス上のファイルの内容を読み取ります。 |
| read_multiple_files | 複数のファイルの内容を一度に読み取ります(LLM の呼び出しを削減します)。 |
| write-file | Android デバイス上のファイルに内容を書き込みます。 |
| create-directory | Android デバイス上にディレクトリを作成します。 |
| delete | ファイルまたはディレクトリを削除します。 |
| search-files | アクセスが許可されたディレクトリ内で、大文字と小文字を区別しない glob パターンに一致するファイルを検索します。 |
| move_file | Android デバイス上のファイルをソースパスから宛先パスに移動します。 |
| copy-file-to-host | Android デバイスからホストシステムにバイナリファイルをコピーします。 |
| capture-screenshot | Android デバイスのスクリーンショットを撮影し、ホストシステムに保存します。 |
| install-apk | 許可されたホストパス内にあるホストシステム上のファイルから、Android デバイスに APK をインストールします。 |
今後、さらに多くのツールを追加する予定です。
プロンプトの例
uninstall the 'sample' app, but keep its data
force stop the 'sample' app
Do I have a browser installed on the connected emulator?
Organize all files in the Download folder of the connected Android device
Pull all KotlinConf related files from the Android device to the host
リリース
このプロジェクトでは shadow を使用してツールを fat-jar にパッケージ化し、最小限の縮小処理も行います。
./gradlew adbfriend-cli:shadowDistZip
その他
AboutLibraries
adbfriend 用の aboutlibraries.json を生成する
./gradlew adbfriend:exportLibraryDefinitions
adbfriend-cli 用の aboutlibraries.json を生成する
./gradlew adbfriend-cli:exportLibraryDefinitions
プロンプトのスクリーンショット例
Claude Desktop

Visual Code

謝辞
このプロジェクトでは、adb と連携するために、Malinskiy の優れたライブラリ adam を使用しています。
CLI のセットアップには、ajalt の優れたライブラリ clikt を使用しています。
ライセンス
Copyright 2025 Mike Penz
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。