android-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANDROID_HOME | No | Android SDK location, used to locate adb | |
| ANDROID_MCP_DEVICE | No | Default device id used when a tool call omits device | |
| ANDROID_MCP_ALLOW_UNSAFE_URLS | No | Set to 1 to allow non-http(s) URLs (e.g. deep links) in android_open_url |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| android_list_devicesA | List connected Android devices and emulators with name, Android version, and connection type. Auto-discovers wireless-debugging devices via mDNS when the list is empty. |
| android_connect_wifiA | Connect to an Android device over WiFi ADB. Accepts HOST or HOST:PORT (port defaults to 5555). The device must have wireless debugging or 'adb tcpip 5555' enabled. |
| android_device_infoA | Get details of a device: model, Android version, SDK level, screen size, orientation, battery level, and the current foreground app. |
| android_list_appsA | List installed apps that have a launcher activity (package names). |
| android_launch_appA | Launch an app by package name. Use android_list_apps to find package names. |
| android_terminate_appB | Force-stop a running app by package name. |
| android_install_appC | Install an APK file on the device. |
| android_uninstall_appA | Uninstall an app from the device by package name. |
| android_take_screenshotA | Take a screenshot of the device screen and return it as an image. Use android_list_elements first when you need coordinates of UI elements. Do not cache this result. |
| android_save_screenshotB | Take a screenshot and save it to a PNG file on this computer. |
| android_list_elementsA | List UI elements on the current screen with text, accessibility labels, resource ids, and pixel coordinates. Use this to find where to tap. Do not cache this result. |
| android_wait_for_elementA | Wait until a UI element appears on screen. Use this instead of a fixed sleep when content loads dynamically. Returns element info and center coordinates when found. |
| android_tapA | Tap the screen at x,y pixel coordinates. Use android_list_elements to find element coordinates. |
| android_tap_elementA | Find a UI element by selector and tap its center. More reliable than coordinate taps for dynamic layouts. Waits for the element to appear (default 5s). |
| android_double_tapB | Double-tap the screen at x,y pixel coordinates. |
| android_long_pressC | Long-press the screen at x,y pixel coordinates. |
| android_swipeC | Swipe in a direction. Starts from screen center by default, or from given x,y coordinates. |
| android_dragA | Drag from one point and drop at another (uses a slow swipe that triggers drag behavior). |
| android_type_textA | Type text into the currently focused input field. Tap the field first. ASCII only (adb limitation). |
| android_press_keyA | Press a hardware or navigation key. Common keys: BACK, HOME, ENTER, MENU, APP_SWITCH, POWER, VOLUME_UP, VOLUME_DOWN, DELETE, TAB, DPAD_UP/DOWN/LEFT/RIGHT/CENTER. Any Android KEYCODE_* name or numeric keycode also works. |
| android_open_urlB | Open a URL in the default browser on the device. |
| android_open_notificationsA | Expand the notification shade to inspect notifications. Use android_list_elements or android_take_screenshot afterwards to read them, and BACK key to close. |
| android_set_orientationA | Set the screen orientation (disables auto-rotate). |
| android_start_recordingA | Start recording the device screen in the background. Stop it with android_stop_recording. Max duration is 180 seconds (Android limit). |
| android_stop_recordingA | Stop the active screen recording, pull the video from the device, and save it as an .mp4 file on this computer. |
| android_logcatA | Read recent device logs. Useful for debugging apps (Flutter, React Native, native). The 'crash' buffer contains crash reports. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qalvinahmad/android-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server