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
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:
-
Enable TCP/IP mode on device:
adb tcpip 5555
-
Find device IP:
adb shell ip route
-
Connect:
adb connect <device-ip>:5555
Dependencies
- fastmcp - MCP server framework
- scrcpy - Screen mirroring (must be installed separately)
- uiautomator2 - uiautomator2 Python wrapper
Metadata
Release files for android-mcp-server 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| android_mcp_server-0.1.1.tar.gz | 128.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| android_mcp_server-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 148.9 kB
Release files / android_mcp_server-0.1.1.tar.gz
| Download URL | android_mcp_server-0.1.1.tar.gz |
|---|---|
| Size | 128.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
acb4b5bced4547609d504ff621b80749d84e26d345c7b3eaf6974c297f1c25a7
|
|
BLAKE2b-256 checksum How to use checksums |
870286f9d10de9b0ad095c8af4989674f8faefb9757acfc849dc7c77131285a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 6, 2026.
Transparency logRelease files / android_mcp_server-0.1.1-py3-none-any.whl
| Download URL | android_mcp_server-0.1.1-py3-none-any.whl |
|---|---|
| Size | 20.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d2b7122c6fd5e0f41c3b9ff1dcd241edae4ae4f14047cdd25163d3320604772c
|
|
BLAKE2b-256 checksum How to use checksums |
4af5b05299b7ed5741426224016c5a1758e4c44a038f4c369f3c321ab211eb54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 6, 2026.
Transparency log