
Android MCP Server
Control Android devices from MCP clients via ADB — run shell commands, capture screenshots, inspect UI, manage packages.
Add to your client
Copy the config for your MCP client and paste it into its config file.
git clone https://github.com/minhalvp/android-mcp-server.gitPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"android-mcp-server": {
"command": "path/to/uv",
"args": [
"--directory",
"path/to/android-mcp-server",
"run",
"server.py"
]
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Python 3.x (uv can install Python 3.11)
- uv (Astral) for project/dependency management
- ADB (Android Debug Bridge) installed and configured
- An Android device or emulator with USB debugging enabled and authorized
- An MCP client such as Claude Desktop or Cursor
About Android MCP Server
Android MCP Server bridges MCP clients (Claude Desktop, Cursor, and other code editors) to Android devices and emulators over ADB. Once configured, the AI client can execute ADB commands, take screenshots, read the on-screen UI layout to find clickable elements, list installed packages, and discover a package's action intents — enabling AI-driven device inspection and automation. Device selection is automatic for a single connected device; an optional config.yaml targets a specific serial when several devices are attached.
Tools & capabilities (5)
get_packagesGet all installed packages on the device, returned as a string list.
execute_adb_commandExecute an arbitrary ADB command and return its output.
get_uilayoutRetrieve information about clickable elements in the current UI, including text, content description, bounds, and center coordinates.
get_screenshotTake a screenshot of the device and return it as an image.
get_package_action_intentsGet all non-data actions from the Activity Resolver Table for a given package name.
When to use it
- Let an AI assistant inspect and automate an Android device or emulator during development and testing
- Capture device screenshots and read the UI layout to drive on-screen interactions
- Run ad-hoc ADB commands (install/launch apps, query state) from within an MCP client
- Enumerate installed packages and a package's action intents for app analysis
Security notes
The execute_adb_command tool runs arbitrary ADB commands against the connected device, giving the MCP client broad control over the device (shell access, package management, etc.). Only connect a trusted device/emulator and review actions accordingly. ADB must be installed and the device authorized for debugging.
Android MCP Server FAQ
Do I need a configuration file?
No. config.yaml is optional. If only one device is connected, the server auto-selects it. Create config.yaml (copied from config.yaml.example) and set device.name to a serial from 'adb devices' only when you have multiple devices and want a specific one.
How do I find my device serial?
Run 'adb devices' and use the value in the first column (for example 13b22d7f or emulator-5554) as device.name in config.yaml.
How do I configure it in Claude Desktop?
Add an entry under mcpServers with command set to your uv executable path and args set to ["--directory", "path/to/android-mcp-server", "run", "server.py"], replacing the paths with your uv path and the absolute path to the cloned repo.
What happens if multiple devices are connected without a config?
The server shows an error listing all available devices so you can pick one in config.yaml.
Alternatives to Android MCP Server
Compare all alternatives →Microsoft's official browser-automation MCP using Playwright's accessibility tree (no vision model).
Up-to-date, version-specific library documentation injected into your coding agent.
Code intelligence engine that indexes repos into a persistent knowledge graph for AI coding agents.
Compare Android MCP Server with: