Android MCP
MCP Server for interacting with Android Devices.
- Transport
- Not stated
- Package
- —
- Registry id
- —
No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.
Android-MCP is a lightweight, open-source tool that bridge between AI agents and Android devices. Running as an MCP server, it lets LLM 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
✨ 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/VLM
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, shell commands execution.Real-Time Interaction
Typical latency between actions (e.g., two taps) ranges 2-4s depending on device specs and load.
Supported Operating Systems
- Android 10+
Installation
📦 Prerequisites
- Python 3.13
- ADB (Android Debug Bridge)
- Android 10+ (Emulator/ Android Device)
Android-MCP looks for adb on PATH, then in <sdk>/platform-tools under ANDROID_HOME, ANDROID_SDK_ROOT and the default Android Studio SDK folder (~/Library/Android/sdk on macOS, ~/Android/Sdk on Linux, %LOCALAPPDATA%\Android\Sdk on Windows), then in /opt/homebrew/bin and /usr/local/bin. To use a specific binary, set ANDROID_MCP_ADB_PATH (or adbutils' ADBUTILS_ADB_PATH); an override that does not point at an executable is an error rather than a fallback. The path found is kept in the server process's ADBUTILS_ADB_PATH for the rest of its life, so restart the server after moving adb. This matters for desktop MCP hosts, which may give the server a different PATH from your terminal; the Claude Desktop extension exposes the override as the "adb Binary Path" setting.
📲 Testing ADB Connection
Before running the server, ensure your Android device is connected and recognized by ADB:
- Connect your Android device via USB or ensure your emulator is running.
- Open a terminal and run:
adb devices - You should see your device listed:
The serial number will differ per device. Emulators show serials likeList of devices attached R38M30XXXXX deviceemulator-5554. If the list is empty or shows "unauthorized", check your USB debugging settings on the device.
For WiFi ADB, connect the device first:
adb connect 192.168.1.3:5555
adb devices
🏁 Getting Started
You can run the Android MCP server using UVX (recommended) or UV (for local development).
Option 1: UVX (Recommended)
No need to install dependencies manually. Just configure Claude Desktop:
Windows note: Use Python 3.13 for
uvxon Windows. Python 3.14 currently fails to resolve a transitivepywin32dependency used by the MCP stack.
Locate your config file
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
Add the configuration
{ "mcpServers": { "android-mcp": { "command": "uvx", "args": [ "--python", "3.13", "android-mcp" ] } } }Note: The server starts first and connects lazily when a tool runs. If no device is specified, it auto-detects connected devices and prefers physical devices over emulators. Use
--device <serial>or theANDROID_MCP_DEVICEenvironment variable to target a specific device.Configure a specific WiFi device with environment variables:
From the project's README.