Android MCP
An MCP server that drives an Android device over ADB: app navigation, input and automated tests
High risk
We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.
Why this level
- The shell tool runs arbitrary commands on the device
- The server can take any action in the device UI
Install
Manual install
{
"mcpServers": {
"android-mcp": {
"command": "uvx",
"args": [
"--python",
"3.13",
"android-mcp"
]
}
}
}The recommended way via uvx, no manual dependency install needed.
This is third-party code. Review the repository files before installing.
What it does
The server links an agent to an Android device or emulator through ADB and the Accessibility API. The agent reads screen state and active apps, launches apps, taps and long-taps, types text, swipes, drags, presses hardware buttons, reads notifications and runs shell commands on the device. It works from the UI tree rather than image recognition. The device is chosen automatically or set by serial and address through flags and environment variables, and both USB and Wi-Fi connections are supported.
Who it is for. For mobile developers and QA engineers who need Android automation through an agent.
Good fit when
- You need to automate app navigation for a test
- You need to type text and walk a scenario on a device or emulator
- You need to capture screen state and the list of active apps
Not a fit when
- You have no ADB set up and USB debugging enabled
- You want to run untrusted prompts on a personal working device
Example request
Open the settings app, go to the about phone section and show the Android versionLimitations
You need Python 3.13, ADB installed and a device or emulator on Android 10 or newer. Device selection is set by flags and the ANDROID_MCP_DEVICE, ANDROID_MCP_CONNECTION and ANDROID_MCP_HOST variables. The shell tool runs arbitrary commands on the device, and the server can take any UI action, so the README advises using emulators and test devices when working with untrusted agents.
How to disable. Remove the server entry from your MCP client config and restart it.
MCP
- Transport
- stdio
- Authentication
- not required
| Environment variables | |
|---|---|
| ANDROID_MCP_DEVICE | Device serial or host:port address for explicit selection. |
| ANDROID_MCP_CONNECTION | Connection type: auto, usb or wifi. |
| ANDROID_MCP_HOST | Wi-Fi device host, port 5555 is added automatically. |
| SCREENSHOT_QUANTIZED | Set to true to shrink the screenshot and reduce input tokens. |
Security check
- The shell tool runs arbitrary commands on the device
- The server can take any action in the device UI
README in short
The README describes a bridge between an agent and Android through ADB and the Accessibility API for app navigation, UI work and automated tests without a CV pipeline. It shows an ADB check, running via uvx or uv, configs for Claude Desktop and OpenCode, and device selection over USB and Wi-Fi. It lists tools for state, taps, input, swipes, buttons and shell, plus environment variables. It warns to run in a controlled environment. MIT licensed.
FAQ
Do I need a computer vision model?
No, the server works from the UI tree via the Accessibility API rather than image recognition.
How do I pick a specific device?
With the --device, --wifi, --usb flags or the ANDROID_MCP_DEVICE, ANDROID_MCP_CONNECTION and ANDROID_MCP_HOST variables.
Related
An MCP server and CLI from Sentry for building, running and testing Xcode iOS and macOS projects from an AI agent
Paul Hudson's skill for reviewing and writing SwiftUI for iOS 26: deprecated APIs, data flow, navigation, accessibility, performance
Expo's official agent skills: building, deploying, updating and debugging Expo and EAS apps
An open phone agent model and framework: it reads the screen and taps through Android, HarmonyOS and iOS apps from a text command