Skip to main content
Glama
android-mcp-server

android-mcp-server

by chldu2000

Android MCP Server

MCP server providing ADB and scrcpy capabilities for Android device control. Built with FastMCP.

Assisted by Minimax Model via Claude Code.

Features

  • Device Management: List devices, get device info

  • App Management: Install/uninstall apps, start/stop apps, list packages

  • File Operations: Push/pull files between device and host

  • Shell Execution: Run shell commands on device, exec-out for binary output

  • Input Control: Tap, swipe, input text, press keys

  • System Info: Screen size, battery status, system properties

  • Screen Control: Screen mirroring and control via scrcpy, screenshot via exec-out

  • UI Element Finding: Dump UI hierarchy, find elements by attributes

Related MCP server: MSC MCP Server

Install

uv add android-mcp-server

Or install from source:

# Clone the repo, then install
git clone https://github.com/chldu2000/android-mcp-server.git
cd android-mcp-server
uv pip install -e .
uv run python -m android_mcp.main

Add MCP Server

Claude Code

claude mcp add android uv run -- python -m android_mcp.main --cwd /Path/to/workdir

Other MCP Clients

The server can be run with:

uv run python -m android_mcp.main

Tools

Device Management

Tool

Description

adb_list_devices

List all connected Android devices

adb_device_info

Get detailed device information

App Management

Tool

Description

adb_install_app

Install an APK

adb_uninstall_app

Uninstall an application

adb_list_packages

List installed packages

adb_start_app

Start an application

adb_stop_app

Force stop an application

File Operations

Tool

Description

adb_pull_file

Pull file from device

adb_push_file

Push file to device

Shell

Tool

Description

adb_shell

Execute shell command

adb_exec_out

Execute command via exec-out (for binary output)

Input Control

Tool

Description

adb_tap

Tap at coordinates

adb_swipe

Swipe gesture

adb_input_text

Input text

adb_press_key

Press key event

System Info

Tool

Description

adb_get_screen_size

Get screen resolution

adb_get_battery

Get battery status

adb_get_properties

Get system properties

Screen Control (scrcpy)

Tool

Description

scrcpy_start

Start screen mirroring

scrcpy_stop

Stop screen mirroring

scrcpy_screenshot

Take screenshot

scrcpy_control

Send control command

adb_screencap

Capture screenshot via exec-out

UI Elements

Tool

Description

adb_dump_ui_tree

Dump UI hierarchy tree

adb_find_element

Find UI elements by attributes

Device Connection

USB Devices

Connect via USB and ensure USB debugging is enabled on the device.

Network Devices

For TCP/IP connection:

  1. Enable TCP/IP mode on device:

    adb tcpip 5555
  2. Find device IP:

    adb shell ip route
  3. Connect:

    adb connect <device-ip>:5555

Dependencies

  • fastmcp - MCP server framework

  • scrcpy - Screen mirroring (must be installed separately)

  • uiautomator2 - uiautomator2 Python wrapper

Available Tools

25 tools
adb_device_infoC

Get detailed information about a specific device.

Inputs: serial (required).

adb_dump_ui_treeC

Dump the UI hierarchy tree from the device.

Inputs: serial (required).

adb_exec_outC

Execute a command via adb exec-out (for binary output).

Inputs: serial (required), command (required).

adb_find_elementC

Find UI elements by their attributes using uiautomator.

Inputs: serial (required), text, enabled, clickable, +4 more.

adb_get_batteryC

Get battery status of the device.

Inputs: serial (required).

adb_get_propertiesC

Get system properties from the device.

Inputs: serial (required), keys.

adb_get_screen_sizeC

Get the screen resolution of the device.

Inputs: serial (required).

adb_input_textC

Input text on the device.

Inputs: text (required), serial (required).

adb_install_appC

Install an APK on the device.

Inputs: serial (required), apk_path (required).

adb_list_devicesA

List all connected Android devices.

Inputs: no named parameters.

adb_list_packagesC

List all installed packages on the device.

Inputs: serial (required).

adb_press_keyC

Press a key event.

Inputs: serial (required), keycode (required).

adb_pull_fileB

Pull a file from the device to local filesystem.

Inputs: serial (required), local_path (required), device_path (required).

adb_push_fileC

Push a file from local filesystem to the device.

Inputs: serial (required), local_path (required), device_path (required).

adb_screencapC

Capture screenshot using exec-out and save to local file.

Inputs: serial (required), output_path (required).

adb_shellC

Execute a shell command on the device.

Inputs: serial (required), command (required).

adb_start_appC

Start an application on the device.

Inputs: serial (required), package_name (required), activity.

adb_stop_appC

Force stop an application on the device.

Inputs: serial (required), package_name (required).

adb_swipeC

Simulate a swipe gesture.

Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +2 more.

adb_tapC

Simulate a tap at the specified coordinates.

Inputs: x (required), y (required), serial (required).

adb_uninstall_appC

Uninstall an application from the device.

Inputs: serial (required), package_name (required).

scrcpy_controlD

Send control command to scrcpy.

Inputs: action (required), params (required), serial (required).

scrcpy_screenshotC

Take a screenshot from the device.

Inputs: serial (required), output_path.

scrcpy_startC

Start screen mirroring via scrcpy.

Inputs: serial (required), bit_rate.

scrcpy_stopA

Stop screen mirroring.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 25 tools

    Disambiguation5/5

    Each tool targets a distinct function, with clear separation between ADB operations and scrcpy mirroring. No two tools have overlapping purposes; even similar actions like screenshots are differentiated by the underlying technology (ADB vs scrcpy).

    Naming Consistency5/5

    All tools follow a consistent snake_case pattern with a prefix ('adb_' or 'scrcpy_') followed by a verb_noun pair. This uniformity makes it easy for an agent to infer tool roles.

    Tool Count4/5

    With 25 tools, the server is comprehensive but borders on the high side. However, each tool serves a specific need for Android device management, and the set is well-scoped for its purpose.

    Completeness4/5

    The tool surface covers core ADB operations, UI interaction, app lifecycle, file transfer, and screen mirroring. Minor gaps like logcat access or screen recording exist but do not significantly hinder typical automation workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables control of Android devices through ADB, allowing users to list connected devices, capture screenshots using multiple methods (adb, droidcast, minicap, mumu), and retrieve device information.
      -
    • F
      license
      B
      quality
      D
      maintenance
      Provides comprehensive Android device management capabilities through ADB, including device management, app management, file operations, and system monitoring.
      18
      1
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables remote control of Android devices via ADB, including screen operations, input, app management, file transfer, and advanced tools like UI testing and performance analysis.
      25
      MIT