Back to MCP Servers

Android-MCP MCP Server

Open-source MCP server that lets AI agents control Android devices over ADB and the Accessibility API for UI automation, gestures, and QA testing.

Automation by CursorTouch None active
Overview

Android-MCP is a lightweight, open-source bridge that enables AI agents and LLMs to interact with Android devices. It runs as a Model Context Protocol server and exposes tools for app navigation, UI interaction, gestures, key events, and shell command execution. The server communicates with the device through ADB (Android Debug Bridge) and Android's Accessibility API, so it can drive real apps without relying on computer vision models or OCR pipelines.

The server supports both USB and WiFi ADB connections, lets you target a specific device by serial, and offers tools for state inspection (combined snapshot of active apps and interactive UI elements), tapping, long-pressing, swiping, dragging, text input, hardware key presses, notification access, and arbitrary shell commands. It is designed to work with any LLM or VLM, with typical action-to-action latency in the 2 to 4 second range.

The project is maintained by Jeomon George and Muhammad Yaseen under the CursorTouch organization, written in Python, and released under the MIT license. It targets Android 10 and later, and is most commonly used from Claude Desktop or similar MCP clients for mobile automation and automated QA workflows.

Tools

Tool Description
State-Tool Provides a combined snapshot of the currently active applications and the interactive UI elements on screen.
Click-Tool Taps the screen at the specified coordinates.
Long-Click-Tool Performs an extended press at the given coordinates.
Type-Tool Inputs text into the focused field, with optional clearing of existing text first.
Swipe-Tool Performs a swipe gesture from one location to another.
Drag-Tool Drags an element or pointer between two points on the screen.
Press-Tool Activates a hardware key such as Back, Home, or Volume Up.
Wait-Tool Pauses execution for a defined duration.
Notification-Tool Accesses the device notifications.
Shell-Tool Executes an Android shell command via ADB.
Setup Guide

Prerequisites

  • Python 3.13
  • ADB (Android Debug Bridge) installed and on PATH
  • Android 10+ device or emulator with USB debugging enabled

Option 1: UVX (recommended)

Add to your Claude Desktop config:

{
  "mcpServers": {
    "android-mcp": {
      "command": "uvx",
      "args": ["--python", "3.13", "android-mcp"]
    }
  }
}

Option 2: UV (local development)

git clone https://github.com/CursorTouch/Android-MCP.git
cd Android-MCP
uv sync

Then configure Claude Desktop:

{
  "mcpServers": {
    "android-mcp": {
      "command": "uv",
      "args": ["--directory", "</PATH/TO/Android-MCP>", "run", "android-mcp"]
    }
  }
}

WiFi device configuration

{
  "mcpServers": {
    "android-mcp": {
      "command": "uvx",
      "args": ["--python", "3.13", "android-mcp"],
      "env": {
        "ANDROID_MCP_CONNECTION": "wifi",
        "ANDROID_MCP_HOST": "192.168.1.3"
      }
    }
  }
}

Device selection flags

  • --device SERIAL target a specific USB serial
  • --wifi HOST connect to a WiFi ADB host
  • --usb auto-detect the first USB device
  • --connection usb|wifi prefer a connection type

Environment variables

  • ANDROID_MCP_DEVICE target device serial
  • ANDROID_MCP_CONNECTION usb or wifi
  • ANDROID_MCP_HOST WiFi ADB host
  • SCREENSHOT_QUANTIZED set to true to reduce input tokens via screenshot quantization
Use Cases
  • Drive end-to-end QA test flows on a real Android device or emulator from an LLM, including login, navigation, and form filling.
  • Automate repetitive mobile tasks like sending messages, posting to social apps, or filling app forms by combining State-Tool, Click-Tool, and Type-Tool.
  • Inspect a running app's UI hierarchy and current foreground activity to debug layout or accessibility issues from an AI assistant.
  • Trigger ADB shell commands for diagnostics, log capture, or package management without leaving the chat interface.
  • Build agentic mobile workflows that read notifications and react to them with gestures and hardware key presses.
Example Prompts
  • "Open the Settings app, navigate to Wi-Fi, and tell me which network is currently connected."
  • "Launch Gmail, open the most recent email from my manager, and summarize it."
  • "Run an ADB shell command to list all installed packages and find anything related to Spotify."
  • "Swipe down to open the notification shade and read me the latest three notifications."
  • "Type 'hello from Claude' into the focused text field, then press the Back key."
Pros
  • Covers a full set of mobile automation primitives: state inspection, taps, long presses, swipes, drags, typing, hardware keys, notifications, and shell access.
  • Works with any LLM or VLM, no fine-tuned vision model or OCR pipeline required.
  • Supports both USB and WiFi ADB connections with flexible device selection via CLI flags or env vars.
  • MIT licensed and actively maintained under the CursorTouch org.
Limitations
  • Requires Python 3.13 and a working ADB setup, which is more friction than a pure remote MCP server.
  • Action-to-action latency is typically 2 to 4 seconds, so it is not suited for high frequency UI automation.
  • Limited to Android 10 and later, no iOS support.
Alternatives