MCP Directory

Android MCP Server

Control Android devices from MCP clients via ADB — run shell commands, capture screenshots, inspect UI, manage packages.

Unverified
stdio (local)
No auth
Stale
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
git clone https://github.com/minhalvp/android-mcp-server.git

Paste 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_packages

Get all installed packages on the device, returned as a string list.

execute_adb_command

Execute an arbitrary ADB command and return its output.

get_uilayout

Retrieve information about clickable elements in the current UI, including text, content description, bounds, and center coordinates.

get_screenshot

Take a screenshot of the device and return it as an image.

get_package_action_intents

Get 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).

Featured
Verified
stdio (local)
No auth
TypeScript
12 tools
Updated 21 days agoRepo

Up-to-date, version-specific library documentation injected into your coding agent.

Verified
stdio (local)
API key
TypeScript
2 tools
Updated 25 days agoRepo

Code intelligence engine that indexes repos into a persistent knowledge graph for AI coding agents.

Unverified
stdio (local)
No auth
C
14 tools
Updated 11 hours agoRepo