Android MCP
Visit ProjectControl Android devices via ADB: screenshots, UI layout, package management, commands.
Visit ProjectCategory
Tags
What is Android MCP Server?
Android MCP Server is a server that provides programmatic control over Android devices through ADB (Android Debug Bridge). It exposes various device management capabilities that can be accessed by MCP clients like Claude desktop and code editors (e.g., Cursor).
How to use Android MCP Server?
- Install prerequisites: Python 3.x and ADB
- Clone the repository and install dependencies using
uv sync
- Configure device access (optional, for automatic selection or manual specification)
- Register the server with an MCP client like Claude Desktop by adding server configuration
Key features of Android MCP Server?
- ADB command execution through MCP interface
- Device screenshot capture capability
- UI layout analysis for identifying clickable elements
- Package management tools for installed apps
- Automated device selection with multiple configuration options
Use cases of Android MCP Server?
- Automating mobile app testing workflows
- Building AI-powered mobile assistance systems
- Integrating Android device control into development environments
- Creating remote device management solutions
FAQ from Android MCP Server?
-
How do I find my device serial number?
Run
adb devices
to get a list of connected devices and their serial numbers. -
What happens if multiple devices are connected?
You must specify the device in config.yaml or the server will show an error listing available devices.
-
Is this compatible with macOS/Linux/Windows?
Yes, compatible with all platforms that support Python and ADB.
-
Does it work with any Android version?
Should work with most versions, but not explicitly tested on all Android versions.
Android MCP Server
An MCP (Model Context Protocol) server that provides programmatic control over Android devices through ADB (Android Debug Bridge). This server exposes various Android device management capabilities that can be accessed by MCP clients like Claude desktop and Code editors (e.g. Cursor)
Features
- 🔧 ADB Command Execution
- 📸 Device Screenshot Capture
- 🎯 UI Layout Analysis
- 📱 Device Package Management
Prerequisites
- Python 3.x
- ADB (Android Debug Bridge) installed and configured
- Android device or emulator (not tested)
Installation
- Clone the repository:
git clone https://github.com/minhalvp/android-mcp-server.git
cd android-mcp-server
- Install dependencies: This project uses uv for project management via various methods of installation.
uv python install 3.11
uv sync
Configuration
The server supports flexible device configuration with multiple usage scenarios.
Device Selection Modes
1. Automatic Selection (Recommended for single device)
- No configuration file needed
- Automatically connects to the only connected device
- Perfect for development with a single test device
2. Manual Device Selection
- Use when you have multiple devices connected
- Specify exact device in configuration file
Configuration File (Optional)
The configuration file (config.yaml
) is optional. If not present, the server will automatically select the device if only one is connected.
For Automatic Selection
Simply ensure only one device is connected and run the server - no configuration needed!
For Manual Selection
- Create a configuration file:
cp config.yaml.example config.yaml
- Edit
config.yaml
and specify your device:
device:
name: "your-device-serial-here" # Device identifier from 'adb devices'
For auto-selection, you can use any of these methods:
device:
name: null # Explicit null (recommended)
# name: "" # Empty string
# name: # Or leave empty/comment out
Finding Your Device Serial
To find your device identifier, run:
adb devices
Example output:
List of devices attached
13b22d7f device
emulator-5554 device
Use the first column value (e.g., 13b22d7f
or emulator-5554
) as the device name.
Usage Scenarios
Scenario | Configuration Required | Behavior |
---|---|---|
Single device connected | None | ✅ Auto-connects to the device |
Multiple devices, want specific one | config.yaml with device.name |
✅ Connects to specified device |
Multiple devices, no config | None | ❌ Shows error with available devices |
No devices connected | N/A | ❌ Shows "no devices" error |
Note: If you have multiple devices connected and don't specify which one to use, the server will show an error message listing all available devices.
Usage
An MCP client is needed to use this server. The Claude Desktop app is an example of an MCP client. To use this server with Claude Desktop:
-
Locate your Claude Desktop configuration file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
Add the Android MCP server configuration to the
mcpServers
section:
{
"mcpServers": {
"android": {
"command": "path/to/uv",
"args": ["--directory", "path/to/android-mcp-server", "run", "server.py"]
}
}
}
Replace:
path/to/uv
with the actual path to youruv
executablepath/to/android-mcp-server
with the absolute path to where you cloned this repository