Server profile

Android MCP Server

Android MCP Server exposes ADB-based device operations to MCP clients. Developers can inspect installed packages, capture screenshots, examine clickable UI elements, and run device commands.

Server facts

Android MCP Server

Tech

Runtime / language
pythonPython
Transports
stdio
Remote available
No
Authentication
Not specified

Activity

GitHub stars
811
Last commit
Data as of

Tags

  • Adb
  • Android
  • Device Control
  • Ui Inspection

Overview

Android MCP Server gives MCP clients access to an Android device through Android Debug Bridge. It targets workflows where an assistant needs device information or command execution rather than only source code context. The documented tools list installed packages, execute ADB commands, capture the current screen, and inspect the active user interface. UI inspection reports clickable elements together with text, content descriptions, bounds, and center coordinates. A separate package tool retrieves non-data actions from the Activity Resolver Table, adding another way to understand how an installed application can be addressed. Claude Desktop and Cursor are given as example clients.

Device selection is deliberately simple when only one device is attached: the server can choose it without a configuration file. With several connected devices, users must specify a serial in the optional config.yaml file; otherwise the server reports the available devices instead of silently choosing one. The README explains how to obtain that identifier with adb devices. Setup requires Python, a configured ADB installation, and an Android target. The project uses uv for dependency management and documents installing Python 3.11 before synchronizing dependencies. Client configuration launches server.py from the repository directory. Emulator use is mentioned but marked untested, which is an important qualification when planning a test environment.

Install & configure

Requirements

  • Python 3.x; setup example installs 3.11
  • uv
  • ADB installed and configured
  • An Android device; emulator support is untested
Documented launch / install command
path/to/uv --directory path/to/android-mcp-server run server.py

Replace both path placeholders. Clone the repository and run uv sync first. Select a device in config.yaml when more than one is attached.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Desktop configuration
{
  "mcpServers": {
    "android-mcp-server": {
      "command": "path/to/uv",
      "args": [
        "--directory",
        "path/to/android-mcp-server",
        "run",
        "server.py"
      ],
      "env": {}
    }
  }
}

Read the Claude Desktop setup guide

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.

Cursor configuration
{
  "mcpServers": {
    "android-mcp-server": {
      "command": "path/to/uv",
      "args": [
        "--directory",
        "path/to/android-mcp-server",
        "run",
        "server.py"
      ],
      "env": {}
    }
  }
}

Read the Cursor setup guide

Config file · Workspace: .vscode/mcp.json

For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.

VS Code configuration
{
  "servers": {
    "android-mcp-server": {
      "type": "stdio",
      "command": "path/to/uv",
      "args": [
        "--directory",
        "path/to/android-mcp-server",
        "run",
        "server.py"
      ],
      "env": {}
    }
  }
}

Read the VS Code setup guide

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.

Windsurf configuration
{
  "mcpServers": {
    "android-mcp-server": {
      "command": "path/to/uv",
      "args": [
        "--directory",
        "path/to/android-mcp-server",
        "run",
        "server.py"
      ],
      "env": {}
    }
  }
}

Read the Windsurf setup guide

Config file · Project scope: .mcp.json at the repository root

The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Code configuration
{
  "mcpServers": {
    "android-mcp-server": {
      "type": "stdio",
      "command": "path/to/uv",
      "args": [
        "--directory",
        "path/to/android-mcp-server",
        "run",
        "server.py"
      ],
      "env": {}
    }
  }
}

Read the Claude Code setup guide

Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.

Tools

Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.

ToolWhat it does
get_packagesList packages installed on the selected device.
execute_adb_commandRun an ADB command and return its output.
get_uilayoutInspect clickable UI elements, including bounds and center coordinates.
get_screenshotCapture the current device screen.
get_package_action_intentsRetrieve non-data activity actions for a package.

Names, permissions, and defaults can change. Check the current upstream documentation before granting access.

Use cases

  • Inspect clickable UI elements and their screen coordinates
  • Capture device screenshots for assistant review
  • List installed packages and inspect package actions
  • Run ADB commands from an MCP client

Strengths

  • Automatically selects a sole connected device
  • Exposes screenshots and structured clickable-element details
  • Allows explicit serial selection for multi-device setups

Limitations

  • Emulator use is marked untested
  • Requires ADB installation and a connected device

Frequently asked questions

No. A single connected device is selected automatically without config.yaml.

Specify device.name in config.yaml. Without a selection, the server reports an error listing the devices.

Clickable-element text, content descriptions, bounding boxes, and center coordinates are documented.

The README mentions emulators but explicitly marks them untested.

Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.

Related MCP servers

Desktop Commander MCP

Mobile & Desktop Automation

Desktop Commander MCP gives assistants local file, document, terminal, and process-management tools. It supports interactive and long-running commands alongside search, focused edits, and workflows involving spreadsheets, PDFs, and Word files.

Mobile Next Mobile MCP

Mobile & Desktop Automation

Mobile Next Mobile MCP lets agents interact with iOS and Android apps on simulators, emulators, and real devices. It uses accessibility data where available and screenshot-based coordinates when needed.

Windows-MCP

Mobile & Desktop Automation

Let an AI assistant interact with Windows applications, windows, and input controls. Windows-MCP supports native UI automation, optional browser DOM inspection, and local or network transports.

iOS Simulator MCP Server

Mobile & Desktop Automation

Let an MCP assistant inspect and operate an iOS simulator on macOS. Tools cover accessibility inspection, gestures, app lifecycle actions, screenshots, and video capture for development and QA.

iMCP

Mobile & Desktop Automation

Connect an MCP assistant to selected macOS personal-data services through a menu-bar app. iMCP exposes calendar, contacts, messages, reminders, location, maps, and weather capabilities with explicit system permissions.

Home Assistant MCP Server

Mobile & Desktop Automation

Home Assistant MCP Server connects assistants to smart-home controls, state monitoring, and administration. It documents HTTP APIs, live events, automation management, and optional HACS and Supervisor operations.