MCP server for Android device automation using ADB with vision-based UI interaction, semantic learning, and template matching
Server has 7 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (10-80 chars, mostly short), and input schemas are present with type definitions. However, parameter descriptions are largely missing, most parameters lack explanatory text beyond the name. No output schemas documented. Error handling is minimal (generic error returns). Tool names are reasonably clear (verb_noun pattern), but several parameters are underspecified (e.g., 'serial' in adb_find_image has no description; 'templateName' lacks guidance on format or discovery). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Composition is reasonable, tools are single-purpose, but chaining is weak (e.g., adb_find_image returns coordinates but adb_tap_image requires templateName, forcing redundant lookups). Security: no visible secret injection, no permission gates, no audit logging. This is a typical community server with functional but incomplete definitions.
List connected Android devices
Dump UI hierarchy for exploration
Find a template image on the device screen and return its coordinates
Execute an action using learned semantic knowledge (auto-finds button even if moved)
Find a template image and tap on it automatically
Learn a UI action with semantic attributes (ID/Text) for auto-recovery
Save a local image file as a template for future vision tasks
Parameter descriptions missing or minimal. 'serial', 'templateName', 'localPath', 'packageName', 'actionType', 'resourceId', 'textContent', 'x', 'y', 'screenWidth', 'screenHeight' lack explanatory text. LLMs cannot infer parameter meaning from names alone.
No output schemas documented. Tools return unstructured results (e.g., 'status: Template saved' for ui_save_template, coordinates for adb_find_image). LLMs cannot plan downstream calls or extract structured data.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes. adb_tap_image, ui_save_template, ui_learn_semantic, adb_smart_action are write operations but unmarked.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Error handling is generic. Tools return {error: message} without recovery guidance. E.g., 'Image not found on screen' does not suggest next steps (try different template, adjust threshold, etc.).
No input validation or constraint documentation. Parameters like 'x', 'y', 'screenWidth', 'screenHeight' lack min/max bounds. 'templateName' has no format guidance (alphanumeric? spaces? length limit?).