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 | Provenance | Actions |
|---|---|---|---|---|
| android_mcp_server-0.1.1.tar.gz | 128.5 kB | With provenance | Details for android_mcp_server-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| android_mcp_server-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for android_mcp_server-0.1.1-py3-none-any.whl |
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 logSecurity for android-mcp-server 0.1.1
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for android_mcp_server-0.1.1.tar.gz
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 logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.