Skip to main content
Glama

Wait for Android UI

mobile_ui_wait
Read-onlyIdempotent

Wait for a matching Android accessibility node on a specified device and display; poll until it appears or the timeout expires, then proceed with automation.

Instructions

Poll until a matching accessibility node appears or the bounded timeout expires.

Input Schema

NameRequiredDescriptionDefault
textNo
exactNo
pollMsNo
serialYesExact ADB serial from mobile_devices_list; never inferred when multiple devices exist
displayIdYesAndroid framework logical display ID, not a SurfaceFlinger physical ID
timeoutMsNo
resourceIdNo
contentDescriptionNo

Output Schema

NameRequiredDescriptionDefault
foundYes
matchesYes
attemptsYes
elapsedMsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.9.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv0.5.0

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description does add genuine behavior beyond that: the call polls and is bounded by a timeout. What it omits is the outcome on non-match (throw vs. empty result) and the polling cadence, which matter for a blocking wait tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or restatement of the title. It is efficiently structured, though the terseness contributes to the parameter- and outcome-level gaps noted elsewhere rather than being purely a virtue.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and annotations cover safety. But for an 8-parameter wait tool with 25% schema coverage, the description leaves the match semantics and the non-match outcome unspecified — the two things an agent most needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (8 parameters, only serial and displayId documented), so the description is expected to compensate and does not. It says 'matching accessibility node' without indicating that text, exact, resourceId, or contentDescription are the match keys, and says nothing about pollMs or timeoutMs beyond the word 'bounded'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (poll/wait) and resource (matching accessibility node), and states the termination condition (node appears or bounded timeout). It is clear on its own, but it never distinguishes itself from siblings like mobile_ui_find or mobile_ui_snapshot, which an agent must choose between for the same accessibility-node surface.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternative is named. The 'poll until ... or timeout expires' phrasing implies the async-UI case, but the agent must infer that mobile_ui_find is the immediate-check counterpart rather than being told.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.