scrcpy-agent
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANDROID_DEVICE_MCP_CONFIG | No | Path to a JSON configuration file. Without it, conservative defaults are used. |
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 |
|---|---|
| device_listA | List connected Android devices and their ADB authorization states. |
| device_infoA | Return normalized information for the selected device. |
| mirror_statusA | Return the status of the server-owned scrcpy process. |
| screen_captureA | Capture a validated PNG screenshot from the selected device. |
| ui_dumpB | Capture and normalize the selected device UIAutomator hierarchy. |
| ui_findA | Find matching elements in a fresh or retained UI snapshot. |
| app_listC | List bounded package metadata from the selected device. |
| app_infoA | Inspect metadata for an allowlisted package. |
| permissions_listA | List requested and granted runtime permissions for an allowlisted package. |
| logcat_captureA | Capture bounded, filtered, and redacted logcat output. |
| logcat_crashesA | Return bounded recent crash and ANR evidence for an allowlisted package. |
| device_selectB | Select one authorized Android device by exact serial. |
| mirror_startC | Start a visible server-owned scrcpy mirror for the selected device. |
| mirror_stopB | Stop only the server-owned scrcpy mirror. |
| ui_tapC | Tap one uniquely resolved visible semantic UI element and verify the result. |
| screen_tapC | Tap validated native device-pixel coordinates as a fallback. |
| screen_swipeC | Perform a bounded native coordinate or deterministic directional swipe. |
| screen_long_pressC | Perform a bounded stationary long press. |
| key_pressC | Press an allowlisted Android testing key. |
| text_typeA | Type safe printable ASCII test text into the focused field; never use for secrets. |
| app_launchA | Launch an allowlisted package and verify it becomes foreground. |
| app_stopC | Force-stop an allowlisted package. |
| wait_for_uiB | Poll for a bounded UI, foreground, disappearance, or screen-change condition. |
| app_installC | Approval-required installation of an APK under an allowed host root. |
| app_clear_dataA | Approval-required irreversible clearing of local data for an allowlisted test package. |
| permissions_setB | Approval-required grant or revoke of a requested runtime permission. |
| evidence_beginC | Begin a sanitized, bounded local evidence session. |
| evidence_noteB | Add a redacted note to the active evidence session. |
| evidence_finishA | Finish the active evidence session and write its summary. |
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 29 tools
Most tools target distinct actions across devices, mirroring, UI, apps, permissions, logs, and evidence. A few pairs like screen_tap/ui_tap and ui_find/ui_dump could be confused, but description distinctions are clear enough.
All tool names follow a consistent snake_case pattern of <domain>_<action>, such as device_list, mirror_start, screen_swipe, and evidence_begin, with no mixed conventions or style deviations.
At 29 tools, the server exceeds the 25-tool threshold for a well-scoped toolkit. While each tool has a purpose, the large count suggests potential consolidation (e.g., evidence session tools, mirror control tools).
The toolset covers major areas of Android device interaction including device selection, mirroring, UI interaction, app lifecycle, permissions, logs, and evidence collection. Notable gaps include no app uninstall and no direct file operations, but these are workable for testing scenarios.