Skip to main content

Lightweight MCP Server for Android Operating System

Project description

🤖 Android MCP

License Python Platform Last Commit
Follow on Twitter Join us on Discord

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.10+
  • ADB (Android Debug Bridge)
  • Android 10+ (Emulator/ Android Device)

📲 Testing ADB Connection

Before running the server, ensure your Android device is connected and recognized by ADB:

  1. Connect your Android device via USB or ensure your emulator is running.
  2. Open a terminal and run:
    adb devices
    
  3. You should see your device listed:
    List of devices attached
    emulator-5554   device
    
    If the list is empty or shows "unauthorized", check your USB debugging settings on the device.

🏁 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:

  1. Locate your config file

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Add the configuration

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

    Note: By default, it connects to emulator-5554. To connect to a specific device, add "--device", "<YOUR_DEVICE_serial>" to the args list.

Option 2: UV Mode (Local Development)

  1. Clone and Install

    git clone https://github.com/CursorTouch/Android-MCP.git
    cd Android-MCP
    uv sync
    
  2. Configure Claude Desktop

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

    Note: Replace </PATH/TO/Android-MCP> with the full path to your cloned directory. Add "--device", "<YOUR_DEVICE_serial>" to args to target a specific device.

  3. Restart the Claude Desktop

Restart your Claude Desktop. You should see "android-mcp" listed as an available integration. That's it, now you're ready to start controlling your Android device with natural language.

For troubleshooting tips (log locations, common ADB issues), see the MCP docs.


🛠️ Available Tools

Claude can access the following tools to interact with Windows:

  • State-Tool: To understand the state of the device.
  • Click-Tool: Click on the screen at the given coordinates.
  • Long-Click-Tool: Perform long click on the screen at the given coordinates.
  • Type-Tool: Type text on the specified coordinates (optionally clears existing text).
  • Swipe-Tool: Perform swipe from one location to other.
  • Drag-Tool: Drag from one point to another.
  • Press-Tool: To press the keys on the mobile device (Back, Volume Up, ...etc).
  • Wait-Tool: Pause for a defined duration.
  • State-Tool: Combined snapshot of active apps and interactive UI elements.
  • Notification-Tool: To access the notifications seen on the device.
  • Shell-Tool: To execute shell commands on the android device.

⚙️ Environment Variables

  • SCREENSHOT_QUANTIZED: Set to true to quantize the screenshot to reduce input tokens.

⚠️ Caution

Android-MCP can execute arbitrary UI actions on your mobile device. Use it in controlled environments (emulators, test devices) when running untrusted prompts or agents.

🪪 License

This project is licensed under the MIT License. See LICENSE for details.

🤝 Contributing

Contributions are welcome! Please read CONTRIBUTING for dev setup and PR guidelines.

Made with ❤️ by CursorTouch,

developers: Jeomon George, Muhammad Yaseen

Citation

@misc{
  author       = {cursortouch},
  title        = {Android-MCP},
  year         = {2025},
  publisher    = {GitHub},
  howpublished = {\url{https://github.com/CursorTouch/Android-MCP}},
  note         = {Lightweight open-source bridge between LLM agents and Android},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_cursortouch_android_mcp-0.1.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_cursortouch_android_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_cursortouch_android_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_cursortouch_android_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 881688595c0f4de604c441138cdfcafb4c87fe92900df10461c9e152791d29b5
MD5 9bcfdd9006a5a99660bb62b20b64deda
BLAKE2b-256 7d9a257c77e947229c58095dc01185048ebfe81d2a48c089a6375a4208042025

See more details on using hashes here.

File details

Details for the file iflow_mcp_cursortouch_android_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_cursortouch_android_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_cursortouch_android_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5bbe71dab9be2255089054e617a26767cb97d98fa0ca40c22adb9ae1d83380c9
MD5 cc73b67127d60d8d64e527c653623c05
BLAKE2b-256 cf9d99f473d5474bf5233a269ca6cb506f87936c32c22d08dd7135ae38c686ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page