One-command CLI to install agent-fleet MCP servers and generate agent-client config. Provides platform-specific MCP bridges for Android, iOS, macOS, and Windows device automation.
Agent-fleet provides 22 well-named device control tools with consistent verb-noun naming (tap, swipe, type_text, etc.). All tools have descriptions and input schemas with typed parameters. However, descriptions are terse (avg ~40 chars, well below the 194-char baseline), lack context on WHEN to use each tool, and omit guidance on prerequisites or error recovery. Parameter descriptions are minimal, many lack detail on valid ranges, formats, or constraints. Output schemas are not documented. Error handling is absent from tool definitions. Security considerations (destructive operations like uninstall_app, run_shell) lack permission gates or confirmation patterns. Composition is sound (single responsibility per tool), but descriptions need expansion to meet LLM-optimization standards.
Acquire a device lock with an optional holder name
Get the currently active application on the device
Dump the UI hierarchy of the device
Find UI elements matching a query
Get the currently set default device
Get the screen dimensions of the device
Get the current status of the device
Install an application on the device
Launch an application on the device
Descriptions are uniformly terse (avg ~35 - 40 chars vs. 194-char baseline). Lack context on WHEN to use each tool, prerequisites, or error recovery guidance. LLMs cannot distinguish between similar tools (e.g., tap vs. tap_element, acquire vs. release semantics).
Destructive/sensitive tools (uninstall_app, run_shell, terminate_app) lack permission gates, confirmation patterns, or dry-run support. No audit trail or permission scope declarations. Agents can invoke destructive operations without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
List all available devices
Long press at specified coordinates on the device screen
Press a key on the device
Release the device lock
Run a shell script on the device
Set the default device for subsequent operations
Swipe from one point to another on the device screen
Capture a screenshot of the device screen, optionally of a specific region
Tap at specified coordinates on the device screen
Tap on a UI element matching a query
Terminate an application on the device
Type text on the device
Uninstall an application from the device
Output schemas are not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what does find_elements return? Is it a list of element IDs, coordinates, or full objects?). Breaks tool chaining.
Generic tool names 'acquire' and 'release' lack clarity. Do they acquire/release a device lock, a resource, or a session? Ambiguous names force LLMs to guess intent. Should be 'acquire_device_lock' and 'release_device_lock'.
Parameter descriptions lack constraints. E.g., 'key' in press_key has no enum of valid keys; 'query' in find_elements has no format guidance; 'duration_ms' has no min/max bounds. LLMs will hallucinate invalid values.