android-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| adb_list_devicesA | List all connected Android devices. |
| adb_device_infoC | Get detailed information about a specific device. |
| adb_install_appC | Install an APK on the device. |
| adb_uninstall_appC | Uninstall an application from the device. |
| adb_list_packagesC | List all installed packages on the device. |
| adb_start_appC | Start an application on the device. |
| adb_stop_appC | Force stop an application on the device. |
| adb_pull_fileB | Pull a file from the device to local filesystem. |
| adb_push_fileC | Push a file from local filesystem to the device. |
| adb_shellC | Execute a shell command on the device. |
| adb_exec_outC | Execute a command via adb exec-out (for binary output). |
| adb_tapC | Simulate a tap at the specified coordinates. |
| adb_swipeC | Simulate a swipe gesture. |
| adb_input_textC | Input text on the device. |
| adb_press_keyC | Press a key event. |
| adb_get_screen_sizeC | Get the screen resolution of the device. |
| adb_get_batteryC | Get battery status of the device. |
| adb_get_propertiesC | Get system properties from the device. |
| scrcpy_startC | Start screen mirroring via scrcpy. |
| scrcpy_stopA | Stop screen mirroring. |
| scrcpy_screenshotC | Take a screenshot from the device. |
| scrcpy_controlD | Send control command to scrcpy. |
| adb_screencapC | Capture screenshot using exec-out and save to local file. |
| adb_dump_ui_treeC | Dump the UI hierarchy tree from the device. |
| adb_find_elementC | Find UI elements by their attributes using uiautomator. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
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).
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.
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.
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.