Skip to main content
Glama

✨ ドロイドマインド 🤖

Python 3.13以上 ライセンス 状態 コードスタイル 型チェック

モデルコンテキストプロトコルを介してAIでAndroidデバイスを制御する

DroidMindは、AIアシスタントとAndroidデバイスをつなぐ強力な架け橋であり、自然言語による制御、デバッグ、システム分析を可能にします。Model Context Protocol(MCP)を実装することで、DroidMindはAIモデルがADBを介してAndroidデバイスと安全かつ構造化された方法で直接やり取りすることを可能にします。エージェントコーディングワークフローの一部としてDroidMindを使用することで、アシスタントはデバイスを直接操作しながらビルドとデバッグを行うことができます。

💫 機能

  • 📱デバイスコントロール- USBまたはTCP/IP経由でデバイスに接続し、シェルコマンドを実行し、再起動します

  • 📊システム分析- デバイスのプロパティを検査し、ハードウェア情報を表示し、システムログを分析します

  • 🔍ファイルシステムアクセス- ディレクトリの内容を参照し、デバイス上のファイルを管理します

  • 📷ビジュアル診断- 分析とデバッグのためにデバイスのスクリーンショットをキャプチャします

  • 📦アプリ管理- 接続されたデバイスでのアプリのインストール、アンインストール、起動、停止、データの消去

  • 🔄マルチデバイスサポート- 複数の接続されたデバイスを制御および切り替え

  • 👆 UI オートメーション- タップ、スワイプ、テキスト入力、キーの押下を通じてデバイスを操作します

  • 🔍アプリ検査- アプリのマニフェスト、共有設定、アプリ固有のログを表示

  • 🔒セキュリティフレームワーク- 包括的なコマンド検証でデバイスを保護

  • 💬 MCP 統合- Claude、Cursor、Cline などへのシームレスな接続

Related MCP server: MCP Android Agent

🚀 インストール

# Clone the repository git clone https://github.com/hyperbliss/droidmind.git cd droidmind # Set up a virtual environment with UV uv venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install dependencies with UV uv sync

📋 前提条件

  • Python 3.13以上

  • USBデバッグが有効になっているAndroidデバイス

  • ADB (Android Debug Bridge) がインストールされ、PATH に設定されている

  • UV パッケージ マネージャー (依存関係管理に推奨)

  • ネットワーク制御の場合: ADB over TCP/IP が有効になっている Android デバイス

🔮 クイックスタート

DroidMindサーバーを実行する

DroidMind をサーバーとして実行し、MCP 経由で AI アシスタントを接続します。

# Start DroidMind as a network server droidmind --transport sse

AIアシスタントと併用する

  1. DroidMind を SSE モードで起動します。

    droidmind --transport sse
  2. MCP プロトコル URI を使用して AI アシスタントを接続します。

    sse://localhost:4256/sse
  3. AI が自然言語を通じて Android デバイスを制御できるようになりました。

🛠️ 利用可能な MCP リソースとツール

リソース

  • devices://list - 接続されているすべてのデバイスを一覧表示します

  • device://{serial}/properties - 詳細なデバイスプロパティを取得する

  • logs://{serial}/logcat - デバイスから最新のログを取得します

  • logs://{serial}/anr - アプリケーション応答なし (ANR) のトレースを取得します

  • logs://{serial}/crashes - アプリケーションのクラッシュログを取得する

  • logs://{serial}/battery - バッテリーの統計と履歴を取得します

  • logs://{serial}/app/{package} - アプリケーション固有のログを取得する

  • fs://{serial}/list/{path} - デバイス上のディレクトリの内容を一覧表示します

  • fs://{serial}/read/{path} - デバイスからファイルの内容を読み取ります

  • fs://{serial}/stats/{path} - 詳細なファイル/ディレクトリ統計情報を取得します

  • app://{serial}/{package}/manifest - AndroidManifest.xml の内容を取得します

  • app://{serial}/{package}/data - アプリのデータディレクトリ内のファイルを一覧表示します

  • app://{serial}/{package}/shared_prefs - アプリの共有設定を取得する

ツール

  • devicelist - 接続されているすべての Android デバイスを一覧表示します

  • device_properties - 特定のデバイスの詳細なプロパティを取得します

  • device_logcat - デバイスから最新の logcat 出力を取得する

  • list_directory - デバイス上のディレクトリの内容を一覧表示する

  • connect_device - TCP/IP経由でデバイスに接続する

  • disconnect_device - Androidデバイスから切断する

  • shell_command - デバイス上でシェルコマンドを実行する

  • install_app - デバイスにAPKをインストールする

  • uninstall_app - デバイスからアプリをアンインストールする

  • start_app - デバイス上でアプリを起動する

  • stop_app - デバイス上のアプリを強制停止する

  • clear_app_data - アプリのデータとキャッシュを消去する

  • list_packages - デバイスにインストールされているパッケージを一覧表示します

  • get_app_manifest - アプリの AndroidManifest.xml の内容を取得する

  • get_app_permissions - アプリが要求した権限を取得する

  • get_app_activities - アプリで定義されたアクティビティを取得する

  • get_app_info - アプリの詳細情報を取得する

  • reboot_device - デバイスを再起動します(通常、リカバリ、またはブートローダー)

  • screenshot - デバイスからスクリーンショットを取得する

  • capture_bugreport - デバイスから包括的なバグレポートを生成します

  • dump_heap - メモリ分析のために実行中のプロセスからヒープダンプを作成する

  • push_file - デバイスにファイルをアップロードする

  • pull_file - デバイスからファイルをダウンロードする

  • delete_file - デバイスからファイルまたはディレクトリを削除する

  • create_directory - デバイス上にディレクトリを作成する

  • file_exists - デバイス上にファイルが存在するかどうかを確認する

  • read_file - デバイス上のファイルの内容を読み取る

  • write_file - デバイス上のファイルにテキストコンテンツを書き込む

  • file_stats - ファイルまたはディレクトリに関する詳細情報を取得します

  • tap - 特定の座標でデバイス画面をタップします

  • swipe - 画面上のある点から別の点へスワイプするジェスチャを実行します

  • input_text - キーボードから入力するのと同じようにデバイス上でテキストを入力します

  • press_key - ハードウェアキーまたはソフトウェアキー(例:HOME、BACK、VOLUME)を押します

  • start_intent - Androidインテントを使用してアプリアクティビティを開始する

📊 AIアシスタントクエリの例

AI アシスタントを DroidMind に接続して、次のクエリを試してください。

  • 「接続されているすべての Android デバイスを一覧表示し、そのプロパティを表示します」

  • 「192.168.1.100 で携帯電話に接続し、バッテリーの状態を確認してください」

  • 「Pixel のスクリーンショットを撮って、現在画面に表示されているものを見せてください」

  • 「デバイスの空きストレージ容量を確認してください」

  • 「デバイスのANRトレースとクラッシュログを表示してください」

  • 「最近のログを見て、エラーがあれば教えてください」

  • 「このAPKファイルをデバイスにインストールして、成功したかどうか教えてください」

  • 「携帯電話にインストールされているすべてのアプリのリストを表示してください」

  • 「デバイスをリカバリモードで再起動する」

  • 「私の携帯電話で実行されている Android のバージョンは何ですか?」

  • 「デバイスがルート化されているかどうかを確認し、セキュリティパッチレベルを教えてください」

  • 「com.android.settings のマニフェストファイルを表示してください」

  • 「アプリの共有設定を確認してください」

  • 「座標500,1000にある設定アイコンをタップしてください」

  • 「画面上部から下にスワイプして通知シェードを開きます」

  • 「現在のテキストフィールドにパスワードを入力してください」

  • 「ホーム画面に戻るには、戻るボタンを3回押します」

  • 「com.android.settings パッケージを起動して設定アプリを開きます」

🔒 セキュリティ機能

DroidMind には、AI アシスタントの表現力を維持しながらデバイスを保護する包括的なセキュリティ フレームワークが含まれています。

  • コマンド検証: すべてのシェルコマンドは安全なコマンドの許可リストに対して検証されます。

  • リスク評価: コマンドはリスクレベル (安全、低、中、高、重大) 別に分類されます。

  • コマンドサニタイズ: コマンドインジェクション攻撃を防ぐために入力がサニタイズされます

  • 保護されたパス: システムディレクトリと重要なパスは変更から保護されています

  • 包括的なログ記録: すべてのコマンドは監査のためにリスクレベルとともにログに記録されます。

  • 疑わしいパターンの検出: 潜在的に危険なパターンを持つコマンドはブロックされます

  • ADBコマンドセキュリティ:適切な非同期検証によるADB固有のコマンドの特別な処理

セキュリティシステムは、破壊的な操作を防ぎながら、一般的な操作は許可できる程度に許容されるように設計されています。リスクの高いコマンドは実行前にユーザーに警告を表示し、重要な操作は明示的なオーバーライドなしに完全にブロックされます。

💻 開発

DroidMind は、依存関係管理と開発ワークフローに UV を使用します。UV は、高速で信頼性の高い Python パッケージマネージャーおよびリゾルバーです。

# Update dependencies uv sync # Run tests pytest # Run linting ruff check . # Run type checking mypy .

🤝 貢献する

貢献を歓迎します!お気軽にプルリクエストを送信してください。

  1. リポジトリをフォークする

  2. 機能ブランチを作成します( git checkout -b feature/amazing-feature

  3. UVで開発環境をセットアップする

  4. 変更を加える

  5. テストとリンティングを実行する

  6. 変更をコミットします ( git commit -m 'Add some amazing feature' )

  7. ブランチにプッシュする ( git push origin feature/amazing-feature )

  8. プルリクエストを開く

📝 ライセンス

このプロジェクトは Apache ライセンスに基づいてライセンスされています。詳細については、LICENSE ファイルを参照してください。


ステファニー・ジェーンが作成🌠

DroidMind が役に立つと思ったら、 Monster Ultra Violet を買ってください⚡️

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hyperb1iss/droidmind'

If you have feedback or need assistance with the MCP directory API, please join our Discord server