Skip to main content
Glama

find

Locate UI elements by text, label, value, role, or ID, then run actions like click, fill, or wait. Resolves devices across mobile, desktop, and TV platforms to inspect and debug apps.

Instructions

Find by text/label/value/role/id and run action Times out after 90s.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rawNo
lastNo
udidNoiOS device UDID selector.
debugNoEnable debug diagnostics.
depthNo
firstNo
queryYes
runIdNoLease run identifier.
valueNo
actionNo
deviceNoDevice name selector.
recordNoForce-record this out-of-band observation into a repair-armed heal (mutually exclusive with noRecord). Authored replay steps are recorded automatically and never need this. On find, valid only for a read-only action.
serialNoAndroid device or Vega VVD serial selector.
targetNoAlias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element.
tenantNoRemote tenant identifier.
leaseIdNoExisting lease identifier.
locatorNo
sessionNoAgent-device session name.
noRecordNoDo not record this action.
platformNoPlatform selector used to resolve a device.
timeoutMsNo
includeCostNoInclude per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged.
deviceTargetNoDevice target form. Maps to the CLI --target flag.
responseLevelNoResponse verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged.
mcpOutputFormatNoMCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately.
androidDeviceAllowlistNoAndroid serial allowlist used for device resolution.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNoResolved x coordinate for mutating find actions.
yNoResolved y coordinate for mutating find actions.
refNoSnapshot ref without the @ prefix when the find action returns one.
costNo
nodeNoSnapshot node for find get_attrs/get_text.
textNoText value returned by find get_text.
foundNoWhether a wait/exists/read-only find satisfied its condition.
queryNoQuery argument used for the find action.
locatorNoLocator kind used for the find action.
matchesNoEvery match for the read-only find list action (#1625): { ref, node } each.
messageNoDiagnostic message for mutating find actions.
waitedMsNoMilliseconds waited for a read-only find condition.
refsGenerationNoADR 0014 ref frame epoch for read-only find actions.
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing side effects and behavioral traits. It only reveals the 90-second timeout, and says nothing about whether the action mutates state, what happens when no element is found, how recording/repair flags behave, or whether this is safe to run repeatedly. This is insufficient for a tool that can run click, fill, type, and similar actions.

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

Conciseness3/5

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

The description is compact and every phrase earns its place, but it reads as a fragmented note rather than a well-structured definition. The timeout information is tacked on without context. For a tool with 26 parameters, the description is underwhelming despite being concise.

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?

Given 26 parameters, no annotations, and a required 'query' parameter, this one-sentence description is far from complete. The output schema may describe return shape, but the description still omits essential operational context: how the find+action flow works, which actions are side-effecting, what 'Times out after 90s' means for the agent, and when to prefer sibling tools. The agent would need to infer or probe too much.

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

Parameters3/5

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

The description adds some meaning by mapping the locator dimensions (text/label/value/role/id) to the tool's search capability and indicating an action can be run. However, schema coverage is 65% and the description does not explain the central required parameter 'query', how locator and action interact, or what the default behavior is. It adds partial value beyond the schema but does not compensate for the gaps.

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 states a specific action: find UI elements by text/label/value/role/id and run an action. This clearly identifies the tool's resource and compound behavior, and is not a tautology. It stops short of naming sibling tools to differentiate itself, such as get or click, but the purpose is still legible.

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?

The description provides no guidance on when to use this tool versus alternatives like click, fill, focus, type, wait, or get. It does not state prerequisites, typical scenarios, or exclusions. The only contextual note is the 90s timeout, which is a constraint, not a usage guideline.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/callstack/agent-device'

If you have feedback or need assistance with the MCP directory API, please join our Discord server