Skip to main content

Control Android devices with MCP

Project description

🤖 DroidMind 🧠

DroidMind Logo

Python 3.13+ License Status Code Style Type Check MCP Android Docs

Control Android devices with AI through the Model Context Protocol

DroidMind is a powerful bridge between AI assistants and Android devices, enabling control, debugging, and system analysis through natural language. By implementing the Model Context Protocol (MCP), DroidMind allows AI models to directly interact with Android devices via ADB in a secure, structured way. When used as part of an agentic coding workflow, DroidMind can enable your assistant to build and debug with your device directly in the loop.

💫 Core Features

DroidMind empowers AI assistants to:

  • 📱 Manage Devices: Connect via USB/TCP-IP, list devices, view properties, and reboot.
  • 📊 Analyze Systems: Access logs (logcat, ANR, crash, battery), capture bug reports, and dump heap.
  • 📂 Handle Files: Browse, read, write, push, pull, delete, and manage device files/directories.
  • 📦 Control Apps: Install, uninstall, start, stop, clear data, and inspect app details (manifest, permissions, activities).
  • 🖼️ Automate UI: Perform taps, swipes, text input, and key presses.
  • 🐚 Execute Shell Commands: Run ADB shell commands with a security-conscious framework.
  • 🔒 Operate Securely: Benefit from command validation, risk assessment, and sanitization.
  • 💬 Integrate Seamlessly: Connect with any MCP-compatible client (Claude, Cursor, Cline, etc.).

For a detailed list of capabilities, see the User Manual and MCP Reference.

🚀 Getting Started

Quickstart for IDEs (Zero Install with uvx)

For the fastest way to integrate DroidMind with an MCP-compatible IDE (like Cursor), you can configure it to run DroidMind directly from its GitHub repository using uvx. This method does not require you to manually clone or install DroidMind first.

Add the following to your IDE's MCP configuration (e.g., .cursor/mcp.json for Cursor):

{
  "mcpServers": {
    "droidmind": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/hyperb1iss/droidmind",
        "droidmind",
        "--transport",
        "stdio" // The default and preferred mode for most IDE integrations
      ]
    }
  }
}

Your IDE will be configured to launch DroidMind on demand. Full instructions for this setup are in the Quick Start Guide.

Prerequisites

  • Python 3.13 or higher
  • uv (Python package manager)
  • Android device with USB debugging enabled
  • ADB (Android Debug Bridge) installed and in your system's PATH

Installation

For detailed instructions on setting up DroidMind, including the quick IDE integration with uvx (covered in the Quick Start), manual installation from source, or using Docker, please see our comprehensive Installation Guide.

Running DroidMind

How you run DroidMind depends on your setup:

  • IDE Integration (via uvx): Your IDE automatically manages running DroidMind as configured in its MCP settings (e.g., mcp.json). See the Quick Start Guide.
  • Manual Installation: After installing from source, you can run DroidMind directly.
    • Stdio (for direct terminal interaction or some IDE setups):
      droidmind --transport stdio
      
    • SSE (for web UIs or AI assistants like Claude Desktop):
      droidmind --transport sse
      
      This usually starts a server at sse://localhost:4256/sse.
  • Docker: Refer to the Docker Guide for commands to run DroidMind in a container.

Refer to the Installation Guide for more details on running DroidMind in different environments.

🐳 Running with Docker

DroidMind can also be run using Docker for a consistent, containerized environment. This is particularly useful for deployment and isolating dependencies.

For comprehensive instructions on building the Docker image and running DroidMind in a container with stdio or SSE transport, including notes on ADB device access, please refer to our Docker Guide.

🔮 Example AI Assistant Queries

With an AI assistant connected to DroidMind, you can make requests like:

  • "List all connected Android devices and show their properties."
  • "Take a screenshot of my Pixel."
  • "Install this APK on emulator-5554."
  • "Show me the recent crash logs from your_device_serial."
  • "Tap the 'Next' button on the current screen of emulator-5554."

For more inspiration, check out our Example Queries and Workflows in the User Manual.

🔒 Security

DroidMind incorporates a security framework to protect your devices:

  • Command Validation & Sanitization
  • Risk Assessment Categorization
  • Protected Path Operations
  • Comprehensive Logging

High-risk operations are flagged, and critical ones are blocked by default. Learn more in our Security Considerations chapter.

💻 Development

DroidMind uses uv for dependency management and development workflows.

# Install/update dependencies (after cloning and activating .venv)
uv pip install -e .[dev,sse]

# Run tests
pytest

# Run linting
ruff check .

# Run type checking
pyright # Ensure pyright is installed or use ruff's type checking capabilities

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/amazing-feature).
  3. Set up your development environment with uv.
  4. Make your changes.
  5. Run tests, linting, and type checking.
  6. Commit your changes (git commit -m 'Add some amazing feature').
  7. Push to the branch (git push origin feature/amazing-feature).
  8. Open a Pull Request.

📝 License

This project is licensed under the Apache License - see the LICENSE file for details.


Created by Stefanie Jane 🌠

If you find DroidMind useful, buy me a Monster Ultra Violet ⚡️

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

droidmind-0.3.1.tar.gz (449.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

droidmind-0.3.1-py3-none-any.whl (72.3 kB view details)

Uploaded Python 3

File details

Details for the file droidmind-0.3.1.tar.gz.

File metadata

  • Download URL: droidmind-0.3.1.tar.gz
  • Upload date:
  • Size: 449.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for droidmind-0.3.1.tar.gz
Algorithm Hash digest
SHA256 427831e670cc13c426d85308272ff5578c972bd22eab56016ff412826367aed4
MD5 3125e45b3bbf7124ff5a3a32d55ef26d
BLAKE2b-256 e2a0bd7038284298e9b066dd0211355b6421796a19a6147b9285663307289cad

See more details on using hashes here.

Provenance

The following attestation bundles were made for droidmind-0.3.1.tar.gz:

Publisher: ci-cd.yml on hyperb1iss/droidmind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file droidmind-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: droidmind-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 72.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for droidmind-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 316493167ca1b3ffa22546eec9434670e6c2ef22bbbf98a451922012a7f9ebe2
MD5 8905350e6b98aed78612a1f0870bbb5a
BLAKE2b-256 905ffac731773f0825959d66f707b818845d6856447faea757d27b826f70a91e

See more details on using hashes here.

Provenance

The following attestation bundles were made for droidmind-0.3.1-py3-none-any.whl:

Publisher: ci-cd.yml on hyperb1iss/droidmind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page