Android Use
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANDROID_SERIAL | No | The Android device serial number to use when multiple devices are connected. Can be set for MCP instead of passing --serial to the CLI. | |
| ANDROID_USE_STATE_DIR | No | Directory where configuration and screenshots are stored. | ~/.local/share/android-use |
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": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| aua_tapA | Tap once by selector OR x/y display pixels. Ambiguity returns candidates and a screenshot. Optional observation_id checks same runtime/app/display context. No automatic replay. |
| aua_type_textA | Set Unicode text on a focused, editable, non-password field. Focus it with tap first. Default replace=true, no submit. verify checks exact readback. App must support setText. Newlines need allow_newlines=true. Never blindly retry uncertain input. |
| aua_swipeB | Perform one swipe. Direction is finger motion: up usually reveals later rows. Use display-pixel region if needed, observe for next-step context. No automatic retries. |
| aua_press_buttonB | Press home/back/recent/enter/volume once. Enter may submit; user must authorize it. |
| aua_launch_appA | Launch an installed package's launcher activity once; no force-stop or data reset. |
| aua_observeC | Read a current accessibility tree and/or screenshot. Coordinates are Android display pixels; image pixels multiplied by pixel_to_device give action coordinates. |
| aua_waitA | Wait at most 20 seconds for a selector. found=false means timeout, not business failure. |
| aua_findC | Find exact text/description/resource_id/class_name/package or substring text/description. Multiple targets require an explicit 0-based index; bounds don't prove unobstructed access. |
| aua_doctorA | Read local ADB device inventory and configuration. Does not start a phone service. |
| aua_setupA | First use: status/discover, start once if needed, then ready. configure selects a serial. start pushes a pinned JAR and reuses/starts UiAutomator without root or keyboard APK. |
| aua_readyB | Verify unlocked screen, UiAutomator, foreground, display and a nonempty tree. Does not start/restart services. Reuse the returned observation. |
| aua_appsA | List installed third-party package IDs; query matches package ID, not human app name. |
| aua_pauseA | Pause Android Use reads/actions for user authentication takeover across CLI/MCP processes. |
| aua_resumeA | Resume only after user confirms authentication is finished; then get a fresh observation. |
| aua_screenA | Open/reuse the Android live screen sidebar. Uses an independent H.264 video stream, not screenshot/tree polling. Requires ffmpeg. READY also links the same panel. |
| aua_screen_frameB | App-only cached video frame. Does not query UI trees or capture screenshots. |
| aua_screen_actionC | App-only preview toolbar and pointer actions. Blocked during authentication takeover. |
| aua_batchA | Execute up to 20 known steps, using each operation's normal args. Entire plan is validated before actions. Stops on error, wait timeout, Enter submission or 25s budget. Resume from stopped_at; never replay completed/uncertain steps. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Android 手机屏幕 |
TDQS
Scored across 18 tools
Each tool has a stated boundary, and descriptions actively fence off overlaps (e.g. aua_screen_frame 'does not query UI trees or capture screenshots', aua_ready 'does not start/restart services'). However, the clusters aua_observe/aua_ready/aua_find and aua_screen/aua_screen_frame/aua_screen_action are close enough that an agent could misselect without careful reading, especially since all three observation tools return tree/screenshot-like data.
All 18 tools share a consistent aua_ snake_case prefix with lowercase, readable names. The only deviation is verb-based names (aua_tap, aua_swipe, aua_launch_app) mixed with noun/adjective names (aua_screen, aua_ready, aua_apps, aua_doctor), though the prefix makes the set predictable.
18 tools is on the heavier side of the suggested range, but each covers a distinct capability: core input primitives (tap/type/swipe/press), observation (observe/find/wait), batching, app management, and session/streaming infrastructure. The seven session/diagnostic tools (setup, ready, doctor, pause, resume, screen, screen_frame) inflate the count slightly but are defensible for a device-automation server.
The surface covers the core automation lifecycle: launch, inspect, find, tap, type, swipe, hardware buttons, wait, and batch execution, plus app listing and live screen streaming. Minor gaps exist — no force-stop/app data reset (explicitly excluded from launch), no long-press, pinch/multi-touch, or install/uninstall — but agents can mostly work around these via swipes and external ADB.