A cross-platform mobile agent runtime for Android, iOS, MCP, and BYOK model gateways.
Server defines 6 tools with reasonable descriptions (avg 95 chars) and structured schemas. However, critical gaps exist: (1) Duplicate tool definitions (device.observe vs device_observe, device.act vs device_act, device.invoke vs device_invoke) create confusion and violate single-responsibility principle. (2) Parameter descriptions are minimal, 'target' is described only as 'Target UI element specification' without format/structure guidance. (3) Output schemas are not documented; LLMs cannot predict response structure. (4) Error handling lacks recovery guidance, tools return generic error objects without actionable next steps. (5) No enum constraints on action/capability parameters, inviting hallucinated values. Naming follows verb_noun convention (good), but parameter design is underdeveloped.
Perform one GUI action: click, long press, input, swipe, scroll, back, or home. Automatically waits and returns the resulting observation.
Invoke a structured system capability such as opening an app/URL, intent, share, dial, navigation, file, or settings. No arbitrary shell is exposed.
Read the current mobile state: foreground app, screenshot, accessible UI nodes, keyboard, optional notifications, and capabilities.
Perform one semantic GUI action, wait for stability, and return the resulting observation.
Invoke one structured mobile system capability, wait for stability, and return the resulting observation.
Read foreground app, accessibility UI nodes, keyboard state, and device capabilities.
Duplicate tool definitions: device.observe/device_observe, device.act/device_act, device.invoke/device_invoke. LLMs cannot disambiguate between them; violates single-responsibility principle. Consolidate to one canonical set.
Parameter 'action' and 'capability' accept free-form strings with no enum constraints. Descriptions list examples ('click, long_press, input, swipe, scroll, back, home') but do not enforce them. LLMs will hallucinate invalid values.
Parameter 'target' described only as 'Target UI element specification' with no schema, format, or structure guidance. LLMs cannot construct valid target objects without examples or formal constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2025-06-18+ | v2 |
Output schemas not documented. Tools return observations with 'screen', 'foreground_app', 'accessibility_nodes', etc., but LLMs have no formal schema to predict structure or plan downstream calls.
Error responses (e.g., 'UNKNOWN_TOOL', 'INVALID_TOOL_ARGUMENTS') lack recovery guidance. No actionable next steps for LLM, should suggest 'Try device_observe first to inspect current state' or similar.