Android-MCP is a lightweight, open-source bridge between AI agents and Android devices. Running as an MCP server, it lets large-language-model agents perform real-world tasks such as app navigation, UI interaction and automated QA testing without relying on traditional computer-vision pipelines or preprogramed scripts.
https://github.com/user-attachments/assets/cf9a5e4e-b69f-46d4-8487-0f61a7a86d67
✨ Key Features
Native Android Integration Interact with UI elements via ADB and the Android Accessibility API: launch apps, tap, swipe, input text, and read view hierarchies.
Bring Your Own LLM (Vision Optional) Works with any language model—no fine-tuned CV model or OCR pipeline required.
Rich Toolset for Mobile Automation Pre-built tools for gestures, keystrokes, capture, device state.
Real-Time Interaction Typical latency between actions (e.g., two taps) ranges 2 – 5 s depending on device specs and load.
Supported Operating Systems
- Android 10+
Installation
Prerequisites
- Python 3.10+
- Android Studio
🏁 Getting Started
- Clone the repository
git clone https://github.com/CursorTouch/Android-MCP.git
cd Android-MCP
- Install dependencies
uv pip install -r pyproject.toml
- Connect to the MCP server
Add the following JSON (replace {{PATH}}
placeholders) to your client config:
{
"mcpServers": {
"android-mcp": {
"command": "{{PATH_TO_UV}}",
"args": [
"--directory",
"{{PATH_TO_SRC}}/Android-MCP",
"run",
"main.py"
]
}
}
}
For Claude Desktop, save as %APPDATA%/Claude/claude_desktop_config.json
.
- Enable ADB & authorize your device
adb devices # verify that your phone/tablet appears and is "authorized"
- Restart the Claude Desktop
Open your Claude Desktop, “Android-MCP” should now appear as an integration.
For troubleshooting tips (log locations, common ADB issues), see the MCP docs.
🛠️ MCP Tools
Claude can access the following tools to interact with Windows:
State-Tool
: To understand the state of the device.Click-Tool
: Click on the screen at the given coordinates.Long-Click-Tool
: Perform long click on the screen at the given coordinates.Type-Tool
: Type text on the specified coordinates (optionally clears existing text).Swipe-Tool
: Perform swipe from one location to other.Drag-Tool
: Drag from one point to another.Press-Tool
: To press the keys on the mobile device (Back, Volume Up, ...etc).Wait-Tool
: Pause for a defined duration.State-Tool
: Combined snapshot of active apps and interactive UI elements.Notification-Tool
: To access the notifications seen on the device.
⚠️ Caution
Android-MCP can execute arbitrary UI actions on your mobile device. Use it in controlled environments (emulators, test devices) when running untrusted prompts or agents.
🪪 License
This project is licensed under the MIT License. See LICENSE for details.
🤝 Contributing
Contributions are welcome! Please read CONTRIBUTING for dev setup and PR guidelines.
Made with ❤️ by Jeomon George
Citation
@misc{
author = {Jeomon George},
title = {Android-MCP},
year = {2025},
publisher = {GitHub},
howpublished = {\url{https://github.com/CursorTouch/Android-MCP}},
note = {Lightweight open-source bridge between LLM agents and Android},
}