maestro-plus
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| health_checkA | Verify the toolchain: which tools work, which are impaired, what to install. Run this first when anything behaves unexpectedly. It distinguishes "the Maestro CLI is missing" from "the CLI is fine but the emulator is unauthorized", which are two very different afternoons. |
| list_device_poolA | List every connected Android device and emulator with its health and lease state. Call this before planning any parallel work: it is the only way to learn how
many devices are actually usable right now, and which of them are already
held by runs in flight. A device is |
| run_parallelA | Run several Maestro flows in parallel across leased devices. Flows are distributed round-robin over the leased devices, so N flows on M devices take roughly N/M rounds. Every device is leased for the duration and released on exit, including on failure, so a crashed run cannot strand a device. Returns per-flow results plus wall-clock time, the sequential estimate, and the resulting speedup. A failure on one device never masks a pass on another: each result is reported separately. |
| run_and_assertB | Run a Maestro flow, then check assertions against the screen it left behind. The flow's own result is always reported, even when assertions cannot run. Assertions are skipped entirely when the flow failed, because checking expectations after a known-broken run produces a second, noisier failure that buries the first one. |
| assert_visualB | Compare the current screen, or a region of it, against a baseline image. Region comparison is the reason this is usable. A whole-screen baseline on a device with a clock in the status bar differs on every single run, which is how visual testing earns its reputation for flakiness. Cropping to the part that matters is what makes the result mean something.
|
| debug_failureA | Run a flow and, when it fails, gather the evidence needed to attribute the fault. Collects the screen before the run, Maestro's own capture at the moment of failure, the screen after, the focused window, the relevant slice of logcat, and the elements present at failure — then applies an attribution heuristic and writes a JSON plus HTML bundle. Returns |
| explore_and_recordA | Generate a replayable Maestro flow from a described exploration, then verify it runs. With both |
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 7 tools
Most tools have clearly distinct purposes (device listing, toolchain health, visual baselining, exploration recording), but run_parallel, run_and_assert, and debug_failure all execute Maestro flows, so their boundaries require careful reading to distinguish execution mode from assertion/diagnostics intent.
All names use consistent snake_case with verb-first phrasing, though a few are verb_and_verb (run_and_assert, explore_and_record) rather than the cleaner verb_noun pattern of list_device_pool or assert_visual. Still predictable and readable overall.
Seven tools is a well-scoped set for a mobile test orchestration server, with each tool covering a meaningful phase (discovery, health, execution, assertion, debugging, recording) and no filler.
The surface covers device discovery, health, parallel runs, assertions, visual baselining, failure debugging, and flow recording. A gap exists: assert_visual explicitly references an update_baseline tool that is not actually present in the set, though core lifecycle workflows are otherwise covered.