ADB MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADB_PATH | No | The full path to the adb executable. If not set, it will be auto-detected from PATH and common locations. | auto-detected |
| ADB_SCREENSHOT_DIR | No | Directory to save screenshots. | screenshots/ |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| adb_device_infoB | Get device model, Android version, screen, battery, IP, and serial. |
| adb_batteryA | Get battery level, charging status, and temperature. |
| adb_clipboardA | Get clipboard text (Android 10+). |
| adb_tapB | Tap screen at pixel coordinates (x, y). |
| adb_swipeA | Swipe from (x1,y1) to (x2,y2) with optional duration (ms). |
| adb_textA | Type text into focused input. ASCII via key injection, Unicode via clipboard paste (Android 10+). |
| adb_keyeventA | Send a safe key event (HOME, BACK, ENTER, etc.). Allowed: navigation, editing, media, alphanumeric keys. |
| adb_screenshotA | Take screenshot, returns file path or base64. |
| adb_screen_sizeA | Get screen resolution in pixels. |
| adb_list_packagesA | List installed packages, filterable by keyword and type (user/system/all). |
| adb_app_infoA | Get version, SDK, install date, permissions for an installed app. |
| adb_app_launchA | Launch an app by package name. Optionally specify an activity. |
| adb_app_stopA | Force-stop an app by package name. |
| adb_current_appA | Get the package name and activity of the foreground app. |
| adb_shellA | Execute an Android shell command. ⚠️ Requires confirm=true. |
| adb_termux_execA | Execute a command in Termux bash. ⚠️ Requires confirm=true. |
| adb_pullA | Copy a file from device to local computer. |
| adb_ui_treeA | Get UI element tree (accessibility dump) with bounding boxes and positions. |
| adb_observeA | Take screenshot (base64) + UI tree in one call. Recommended for "looking" at the screen. |
| adb_tap_textA | Find UI element by text/ID/content-desc and tap its center. Regex partial match. |
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 20 tools
Each tool targets a distinct ADB operation: app lifecycle, device info, input simulation, file transfer, and UI inspection. Even similar tools like adb_tap and adb_tap_text are clearly differentiated by targeting method (coordinates vs. element search). There is no ambiguity between tools.
All tools follow the consistent pattern 'adb_' + descriptive snake_case noun or verb_noun. Examples: adb_app_info, adb_app_launch, adb_screenshot. No mixing of styles or vague prefixes.
The 20 tools cover a comprehensive but focused set of ADB capabilities for mobile automation. The count is appropriate for the domain—neither sparse nor bloated. Each tool serves a clear purpose without redundancy.
Core workflows like app info/launch/stop, UI interaction (tap, swipe, text, key events), screenshots, and device info are covered. Missing common operations like file push, app install/uninstall, and logcat, but the set is sufficient for typical UI automation tasks.