mcpField
A
ADB Friend

ADB Friend

ローカル
github.com/mikepenz開発ツール761 日前に更新

ADB Friend について

ADB Friend は、ADB を通じて Android デバイスを管理するコマンドラインツールです。主に開発者向けですが、他のユーザーも利用できます。バージョン 1.4.0 以降は MCP サーバーも含み、Claude Desktop などの AI ツールに設定できます。

主な機能

  1. 01ローカルファイルをデバイスへ同期し、既存ファイルはスキップ
  2. 02アニメーションの無効化などテスト用デバイスの設定
  3. 03パターンに一致するアプリの一括アンインストール
  4. 04USB ケーブルの接続速度の確認
  5. 05デバイス、アプリ、ファイルの操作を MCP ツールとして提供

活用シーン

  1. 01自動テスト用のデバイス設定とテストデータの準備
  2. 02AI ツールから接続中デバイスのインストール済みアプリを確認
  3. 03AI クライアントにデバイス内フォルダの整理やスクリーンショット取得を依頼する

MCP 対応

この project は adbfriend mcp server で起動する MCP サーバーを含み、デバイス、アプリ、ファイルに関するツールを MCP クライアントへ提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"adbfriend": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

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

パッケージ
npm@modelcontextprotocol/inspector

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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-packageAndroid デバイス上の指定されたパッケージ名のデータを消去します。
set-immersive-full-for-packageAndroid デバイス上の指定されたパッケージ名に「immersive-full」フラグを設定します。
force-stop-processAndroid デバイス上の指定されたパッケージ名を強制停止します。
uninstall-packageAndroid デバイス上の指定されたパッケージ名をアンインストールします。
get-connected-devicesシリアル番号、モデル、状態など、接続されているすべての Android デバイスの情報を取得します。
get-installed-packagesAndroid デバイス上にインストールされているすべてのパッケージの情報を取得します。サードパーティ製アプリのみで絞り込めます。
list_allowed_directoriesファイルシステムツールによるアクセスが許可されているディレクトリを一覧表示します。
list-filesAndroid デバイス上のファイルとディレクトリを一覧表示します。「recursive」オプションを指定すると、再帰的に一覧表示できます。
read-fileAndroid デバイス上のファイルの内容を読み取ります。
read_multiple_files複数のファイルの内容を一度に読み取ります(LLM の呼び出しを削減します)。
write-fileAndroid デバイス上のファイルに内容を書き込みます。
create-directoryAndroid デバイス上にディレクトリを作成します。
deleteファイルまたはディレクトリを削除します。
search-filesアクセスが許可されたディレクトリ内で、大文字と小文字を区別しない glob パターンに一致するファイルを検索します。
move_fileAndroid デバイス上のファイルをソースパスから宛先パスに移動します。
copy-file-to-hostAndroid デバイスからホストシステムにバイナリファイルをコピーします。
capture-screenshotAndroid デバイスのスクリーンショットを撮影し、ホストシステムに保存します。
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 claude-desktop-sample-prompt

Visual Code visual-code-sample-prompt.png

謝辞

このプロジェクトでは、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.

コメント

MCP は初めてですか?

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

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