Control your Android devices with AI using 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.
# 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
Run DroidMind as a server to connect AI assistants via MCP:
# Start DroidMind as a network server
droidmind --transport sse
Start DroidMind in SSE mode:
droidmind --transport sse
Connect your AI assistant using the MCP protocol URI:
sse://localhost:6463/sse
The AI can now control your Android devices through natural language!
devices://list
- List all connected devicesdevice://{serial}/properties
- Get detailed device propertieslogs://{serial}/logcat
- Get recent logs from the devicelogs://{serial}/anr
- Get Application Not Responding (ANR) traceslogs://{serial}/crashes
- Get application crash logslogs://{serial}/battery
- Get battery statistics and historylogs://{serial}/app/{package}
- Get application-specific logsfs://{serial}/list/{path}
- List directory contents on the devicefs://{serial}/read/{path}
- Read file contents from the devicefs://{serial}/stats/{path}
- Get detailed file/directory statisticsapp://{serial}/{package}/manifest
- Get AndroidManifest.xml contentsapp://{serial}/{package}/data
- List files in the app's data directoryapp://{serial}/{package}/shared_prefs
- Get app's shared preferencesdevicelist
- List all connected Android devicesdevice_properties
- Get detailed properties of a specific devicedevice_logcat
- Get recent logcat output from a devicelist_directory
- List contents of a directory on the deviceconnect_device
- Connect to a device over TCP/IPdisconnect_device
- Disconnect from an Android deviceshell_command
- Run a shell command on the deviceinstall_app
- Install an APK on the deviceuninstall_app
- Uninstall an app from the devicestart_app
- Start an app on the devicestop_app
- Force stop an app on the deviceclear_app_data
- Clear app data and cachelist_packages
- List installed packages on the devicereboot_device
- Reboot the device (normal, recovery, or bootloader)screenshot
- Get a screenshot from a devicecapture_bugreport
- Generate a comprehensive bug report from the devicedump_heap
- Create a heap dump from a running process for memory analysispush_file
- Upload a file to the devicepull_file
- Download a file from the devicedelete_file
- Delete a file or directory from the devicecreate_directory
- Create a directory on the devicefile_exists
- Check if a file exists on the deviceread_file
- Read the contents of a file on the devicewrite_file
- Write text content to a file on the devicefile_stats
- Get detailed information about a file or directorytap
- Tap on the device screen at specific coordinatesswipe
- Perform a swipe gesture from one point to another on the screeninput_text
- Input text on the device as if from a keyboardpress_key
- Press a hardware or software key (e.g., HOME, BACK, VOLUME)start_intent
- Start an app activity using an Android intentWith an AI assistant connected to DroidMind, try these queries:
DroidMind includes a comprehensive security framework to protect your devices while still allowing AI assistants to be expressive:
The security system is designed to be permissive enough to allow common operations while preventing destructive actions. High-risk commands will display warnings to users before execution, and critical operations are blocked entirely without explicit override.
DroidMind is in active development with approximately 90% of planned features implemented. See the Development Roadmap for details on current progress and upcoming features.
DroidMind uses UV for dependency management and development workflows. UV is a fast, reliable Python package manager and resolver.
# Update dependencies
uv sync
# Run tests
pytest
# Run linting
ruff check .
# Run type checking
mypy .
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)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 ⚡️