🚀 ADB MCP Server (Python)
Pythonで実装されたMCP(Model Context Protocol)サーバーです。これにより、ClaudeはAndroid Debug Bridge(ADB)を介してAndroidデバイスと直接通信できます。
🚀 主な機能
- デバイス管理:接続されているデバイスを一覧表示
- コマンド実行:Androidでシェルコマンドを実行
- アプリのインストール/アンインストール:デバイス上のアプリを管理
- ログの取得:Androidのlogcatにアクセス
- スクリーンショット:デバイスの画面をキャプチャ
- ファイルの転送:ファイルのプッシュ/プル
- 入力のシミュレーション:タップ、スワイプ、文字入力
- アプリの一覧表示:インストールされているアプリを確認
- システム情報:バッテリー、バージョン、モデル、メモリの情報を取得
📋 前提条件
- Python 3.10以上
- uv(Pythonパッケージマネージャー)
C:\Users\Cristiano\Programação\ADB\にインストールされたADB(Android Debug Bridge)
- USBデバッグが有効になっているAndroidデバイス
- MCPをサポートするClaude Desktop
🛠️ インストール
1. uvをインストールする(未インストールの場合)
irm https://astral.sh/uv/install.ps1 | iex
2. プロジェクトを作成して設定する
mkdir adb-mcp-server
cd adb-mcp-server
uv sync
uv run python main.py
3. ファイル構造
adb-mcp-server/
├── main.py # サーバーの主要コード
├── pyproject.toml # プロジェクトの設定
├── README.md # このファイル
└── .venv/ # 仮想環境(uvによって作成)
⚙️ Claude Desktopでの設定
Claude Desktopの設定ファイルに以下の設定を追加します。
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"adb": {
"command": "uv",
"args": [
"--directory",
"C:\\caminho\\para\\adb-mcp-server",
"run",
"python",
"main.py"
]
}
}
}
実際のパスを指定した例:
{
"mcpServers": {
"adb": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\Cristiano\\Documents\\adb-mcp-server",
"run",
"python",
"main.py"
]
}
}
}
📱 Androidデバイスの準備
-
開発者オプションを有効にする
- 設定 > 端末情報 を開きます。
- "バージョン番号"を7回タップします。
-
USBデバッグを有効にする
- 設定 > 開発者オプション を開きます。
- "USBデバッグ"を有効にします。
-
USBで接続する
- デバイスをPCに接続します。
- Androidで承認のプロンプトを受け入れます。
-
接続をテストする
cd "C:\Users\Cristiano\Programação\ADB"
.\adb.exe devices
💻 使用例
基本コマンド
"接続されているAndroidデバイスを一覧表示して"
"私の携帯電話にインストールされているアプリは何ですか?"
"スクリーンショットを撮り、C:\Screenshots\tela.pngに保存して"
"私の携帯電話のバッテリー情報を表示して"
自動化と制御
"私の携帯電話の座標500, 800をタップして"
"私の携帯電話に'こんにちは、世界'と入力して"
"座標300,500から300,200までスワイプして"
"ホームボタンを押す(keyevent 3)"
開発とデバッグ
"私の携帯電話で'getprop ro.build.version.release'コマンドを実行して"
"フィルター'Error'でシステムの最後の50件のログを表示して"
"C:\Downloads\meuapp.apkのアプリをインストールして"
"com.exemplo.meuappアプリをアンインストールして"
ファイルの転送
"C:\Downloads\foto.jpgを/sdcard/Pictures/に送信して"
"/sdcard/Download/documento.pdfをC:\Documentos\にダウンロードして"
🔧 利用可能なコマンド
| コマンド |
説明 |
使用例 |
adb_devices |
デバイスを一覧表示 |
"どのデバイスが接続されていますか?" |
adb_shell |
シェルコマンドを実行 |
"携帯電話で'ls /sdcard/'を実行して" |
adb_install |
APKをインストール |
"C:\app.apkのアプリをインストールして" |
adb_uninstall |
アプリを削除 |
"com.example.appをアンインストールして" |
adb_logcat |
ログを取得 |
"フィルター'Error'のログを表示して" |
adb_screenshot |
スクリーンショットを撮る |
"C:\tela.pngにスクリーンショットを撮って" |
adb_push |
ファイルを送信 |
"arquivo.txtを/sdcard/に送信して" |
adb_pull |
ファイルを取得 |
"/sdcard/foto.jpgをC:\にダウンロードして" |
adb_input |
入力をシミュレート |
"100, 200をタップして" |
adb_apps |
アプリを一覧表示 |
"私がインストールしているアプリは何ですか?" |
adb_info |
システム情報を表示 |
"バッテリー情報を表示して" |
🔍 トラブルシューティング
エラー: "ADBが見つかりません"
ADB_PATH = r"C:\Users\Cristiano\Programação\ADB\adb.exe"
エラー: "デバイスが見つかりません"
cd "C:\Users\Cristiano\Programação\ADB"
.\adb.exe devices
エラー: "Permission denied"
- 一部のコマンドにはroot権限が必要です。
- アプリが必要なパーミッションを持っていることを確認します。
- 一部のコマンドは開発者モードでのみ機能します。
サーバーのテスト
uv run python main.py
🚀 uvの便利なコマンド
uv sync
uv run python main.py
uv add nome-da-biblioteca
uv sync --upgrade
uv tree
🔐 セキュリティ
⚠️ 重要提示
このサーバーは、ユーザーの権限でADBコマンドを実行します。
💡 使用建议
- 自分のデバイスでのみ使用してください。
- 未知のシェルコマンドを実行する際には注意してください。
- ADBを最新の状態に保ちます。
- 複数のデバイスが接続されている場合、デバイスはIDで分離されます。
📈 将来の改善点
- [ ] 複数のデバイスを同時にサポート
- [ ] モニタリング用のWebインターフェース
- [ ] 頻繁に使用するコマンドのキャッシュ
- [ ] 詳細な操作ログ
- [ ] カスタムコマンドのサポート
- [ ] 視覚的な制御のためのscrcpyとの統合
🤝 貢献方法
- プロジェクトをフォークします。
- ブランチを作成します:
git checkout -b minha-feature
- コミットします:
git commit -m '新機能'
- プッシュします:
git push origin minha-feature
- プルリクエストを作成します。
📄 ライセンス
MITライセンス - 自由に使用してください!
📞 サポート
一般的な問題:
- ✅ uvがインストールされていることを確認します:
uv --version
- ✅ コード内のADBのパスを確認します。
- ✅ MCPを使用する前に、ADBを手動でテストします。
- ✅ Claude Desktopのログを確認してエラーをチェックします。
- ✅ デバイスがUSBデバッグを許可していることを確認します。
高度なデバッグ:
"C:\Users\Cristiano\Programação\ADB\adb.exe" devices
"C:\Users\Cristiano\Programação\ADB\adb.exe" shell "getprop ro.build.version.release"
uv run python -c "import mcp; print('MCP OK')"