agent-device
OfficialServer Quality Checklist
Latest release: v0.20.10
- Disambiguation2/5
Multiple tools have unclear boundaries: click and press both activate a UI target via ref/selector/coordinates, and gesture explicitly includes swipe while a separate swipe tool also exists. find is also vague about which action it runs, making tool selection risky despite generally detailed descriptions.
Naming Consistency3/5All names are lowercase and mostly readable, but the set mixes bare verbs (find, get, wait), noun commands (apps, devices, session), abbreviations (perf, metro), and multiword compounds with inconsistent separators (appstate vs app-switcher vs install-from-source). There is no consistent verb_noun pattern.
Tool Count1/557 tools is far beyond the well-scoped 3-15 range and falls into the 50+ extreme-mismatch category. Even though device automation is broad, the count is inflated by overlapping interaction tools and the server feels more like a full CLI than a curated MCP toolset.
Completeness4/5The tool surface is quite comprehensive, covering device lifecycle, app management, UI interaction, diagnostics, logging, networking, media capture, React Native/Metro workflows, and scripting. The main gaps are minor—there is no explicit uninstall or clear-app-data tool—but most core workflows have no dead ends.
Average 3.8/5 across 57 of 57 tools scored. Lowest: 2.7/5.
See the Tool Scores section below for per-tool breakdowns.
- 112 of 112 community issues answered or closed in the last 6 months
- 1002 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. It discloses the timeout ('Times out after 90s') but does not explain side effects of actions such as clear, whether streaming requires explicit cleanup, what diagnostics or markers do, or what the response contains. For a tool with mutating actions, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and packs key information into a compact form. However, it is poorly structured: the final clause runs together as '...markers Times out after 90s,' which reads ambiguously and lacks clean sentence separation. It is concise but not well formatted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 18 parameters, 6 enums, no required fields, no output schema, and no annotations, the description is incomplete. It does not explain how actions relate to the many selectors, what combinations are valid, what the output looks like, or what the distinction is among path, start, stop, doctor, mark, and clear. An agent cannot reliably know how to invoke this tool correctly from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 83%, so the baseline is 3. The description only loosely aligns with parameters: 'start/stop streaming' maps to start/stop actions, 'diagnostics' to doctor, and 'markers' to mark/clear. It adds no parameter-level detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource and main capabilities: 'Session app log info, start/stop streaming, diagnostics, and markers.' However, it lacks a main verb and is a noun-phrase list, so the agent must infer the actual operation. It also doesn't differentiate from sibling tools like events, trace, or perf, which could overlap with log/streaming functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: for session app log info, streaming, diagnostics, and markers. It also gives a useful constraint with 'Times out after 90s.' However, it never explicitly states when not to use it or which sibling tool to choose instead, leaving the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description must carry behavioral disclosure; it contributes only the 90-second timeout and a vague note that fields are available. It omits whether the screenshot is saved to path, what the response contains, and what 'active' means when multiple sessions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the core purpose first and the timeout as a practical constraint second. Every sentence earns its place, though 'when needed' is slightly vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 24-parameter tool with no output schema and no annotations, this description is thin: it lacks guidance on device/platform resolution, side effects of path/output, and return shape. The individual schema descriptions compensate partly, but the tool-level picture is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps high-level concerns ('scope, density, size, annotations') to the parameter space, which is helpful given the large 24-parameter surface. Schema coverage is already 79%, so the description adds only this organizational gloss rather than compensating for undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states an unambiguous action ('Capture a screenshot') and a clearly delimited resource ('the active app or web session'), which is enough for an agent to know what the tool does. It does not explicitly differentiate from closely related sibling tools like snapshot or record, so it stops short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement about when to choose screenshot over siblings such as snapshot, trace, or record, and no 'use X instead' guidance. The phrase 'when needed' only gestures at optional parameters, not tool-selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden for behavioral disclosure. It does disclose a 90-second timeout and that save-script does not close the session, which is useful. However, it does not disclose side effects, permissions, or the read-only nature of list/state-dir, which matters for a mixed read/mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and action-oriented, but the three modes are run together and 'Times out after 90s' is awkwardly appended without a clear separator. Better punctuation or a bulleted structure would make it easier to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex three-action tool with 18 parameters and no output schema. The description does not explain per-action parameter requirements, return values, or how the various selectors resolve to a device/session. The timeout and non-teardown note help, but substantial contextual gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 18 parameters are already documented by the input schema. The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names three concrete behaviors—list sessions, print the daemon state directory, and publish a save-script—with specific verbs and targets. It is reasonably distinguishable from sibling tools, though 'armed open-to-destination script' is jargon and the three modes are packed into one clause.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives or how to choose among list/state-dir/save-script. The action enum provides some descriptions of each mode, but the main description does not explain selection context, prerequisites, or when another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It usefully discloses a 90-second timeout and notes that platform support varies by setting, which is more than a bare mutation statement. However, it does not explain side effects, persistence, permission requirements, failure behavior, or whether changes are reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the primary action. Each sentence adds useful information: what changes, variability by platform, and timeout. It is not a 5 because the middle sentence is somewhat vague and could be more specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 23 parameters, 2 required parameters, and no output schema or annotations, this description is far too thin. It omits expected values for 'setting' and 'state', which the agent must provide, and gives no indication of response shape, error conditions, or how target/platform selectors are resolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 70% coverage, but the two required parameters, 'setting' and 'state', have no descriptions. The description adds some semantic categories for 'setting' (animation scales, appearance, permissions) but does not clarify allowed values for either required parameter or the relationship between them, so an agent still lacks essential information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear action ('Change') and a resource ('supported operating-system settings, animation scales, appearance, or app permissions'), which distinguishes it from read-oriented sibling tools like 'get' or 'is'. It is not a 5 because it never gives concrete examples of settings or permissions, leaving the exact scope somewhat open.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any mention of when not to use it. 'Platform support varies by setting and action' hints at limitations but does not direct the agent to a better tool or tell it how to pick an appropriate setting or target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does usefully disclose the 90-second timeout, but it says nothing about whether steps run sequentially, what happens on partial failure, how output from multiple steps is aggregated, or whether the batch request has side effects beyond the nested commands. This is a significant gap for a tool that can execute arbitrary combinations of mutating commands.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and every part earns its place: it states the core purpose and the critical timeout constraint. The lack of punctuation and the abrupt sentence break slightly hurt readability, but there is no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a complex orchestrator with 19 parameters, no output schema, no annotations, and 55 sibling tools, the description is not complete enough. It omits operational context such as batch execution semantics, failure policy behavior, cost implications, and response shape expectations. The schema documents parameters, but the description does not provide the high-level behavior needed to fully understand the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters thoroughly, including steps, selectors, responseLevel, and mcpOutputFormat. The description adds no parameter-level detail, but the schema does the heavy lifting, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Execute multiple commands in one daemon request.' It conveys that this is a batching/orchestration tool rather than a single command, which distinguishes it from the many sibling command tools like click, screenshot, or install. However, 'daemon request' is somewhat jargon-heavy and the exact relationship to the sibling tools is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this tool when you need to execute multiple commands in one request. There is no explicit statement about when not to use it, no guidance on choosing it over individual command tools, and no discussion of failure handling beyond the schema's onError parameter. A brief mention of preferring individual tools for single commands would have made this clearer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses two non-obvious behaviors: a script without a terminal close leaves the session active, and the request times out after 90 seconds unless a caller-supplied budget extends it. These are genuinely useful. Still, for a tool that executes scripts and can have side effects on devices, it does not mention reversibility, permissions, failure modes, or what execution actually changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main verb and resource, and every sentence carries relevant behavioral information. It is not bloated. It is slightly under-sized for a 29-parameter automation tool, but that is more a completeness concern than a conciseness flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 29 parameters, no annotations, and a complex automation/device domain, the description is incomplete. It says nothing about how to select a device or platform, how leases or sessions are established, what the required 'path' refers to, how environment variables are passed, or how the output schema relates to execution results. The timeout and session notes are helpful but far from sufficient for an agent to call this tool reliably across its many options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 69% of parameters, so the description does not need to compensate fully, but it does add useful meaning for two parameters: the 'caller-supplied budget' clarifies timeoutMs's default behavior, and the terminal-close statement clarifies session and keepSession semantics. It does not, however, add anything for the undocumented params like path, env, force, update, backend, maestro, resumeFrom, or saveScript.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Run a recorded automation script', and further scopes it to 'compatible Maestro YAML flows'. This is clear and distinct from the sibling 'record', which creates scripts. However, it does not explicitly distinguish among other siblings like 'test' or 'batch', so it misses the top bar for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for running previously recorded or Maestro-authored automation, but it never explicitly says when to use replay versus record, test, batch, or other automation-related siblings. It provides no exclusions, prerequisites, or alternative routing guidance. The session and timeout notes are behavioral, not usage-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It usefully discloses that the operation is read-only, returns paged data, and times out after 90 seconds. However, it does not describe pagination mechanics, error behavior, or how the timeout manifests, leaving meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence with the core purpose front-loaded and only one extra behavioral fact (90-second timeout). Every word earns its place, despite the minor punctuation issue in the second clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 17 parameters, no required fields, no output schema, and no annotations, so the single-sentence description is insufficient. Missing context includes how to page through results, what the default response shape is, which selector (session, udid, leaseId, runId) should be preferred, and what 'daemon-owned session event timeline' implies operationally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 88%, so the schema already documents most parameters and the baseline is 3. The description adds the 'paged' hint, which gives some context for the undocumented limit and cursor parameters, but it does not explain how to use them for pagination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and names a distinct resource ('daemon-owned session event timeline'), with 'paged JSON-friendly entries' clarifying the output style. It is clear about the tool's basic function, though it does not explicitly differentiate it from sibling tools like logs or session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as logs, session, or get. The description says what the tool reads but gives no context about selecting a session, lease, or run versus relying on defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses two useful behaviors: traffic is parsed from the app log rather than captured live, and the operation times out after 90 seconds. However, with no annotations, it does not state whether the operation is read-only, what happens on timeout, or whether an existing session/lease is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action front-loaded and the timeout constraint appended; there is no filler or redundant restatement. The missing period between 'log' and 'Times' is a minor formatting slip, but the structure is otherwise efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An 18-parameter tool with no output schema and no annotations requires more behavioral and selection context than this. The description leaves device resolution, action semantics, include levels, and return shape almost entirely to the schema, which itself has undocumented enums.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so most parameter documentation is already in the schema. The description adds no parameter-level meaning; notably, the action enum (dump/log) and include enum (summary/headers/body/all) lack explanations in the schema and are not clarified here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
Identifies a specific action (dump), resource (HTTP(s) traffic), and source (session app log). It does not explicitly contrast with siblings like logs or trace, but the HTTP(s) traffic specificity narrows the purpose enough to be useful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided, and no alternatives or exclusions are mentioned. The phrase 'from the session app log' implies context but does not explain prerequisites, session selection, or how this differs from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does disclose one useful operational trait: the command times out after 90 seconds. However, it does not mention side effects, session requirements, failure modes, or what happens to current device state, so transparency is only partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the action verb. The only structural issue is the missing punctuation/space between 'Android' and 'Times', which slightly harms readability, but every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists and parameter schema coverage is strong, so return values and most parameters are already handled. Still, for a 17-parameter tool with no annotations, the description lacks usage guidance and behavioral context beyond the timeout, making it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 94%, so the baseline is 3. The description adds the high-level intent of the required 'orientation' parameter, which lacks a schema description, but it does not explain orientation value semantics or how device selectors resolve, leaving the schema to carry most parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Set device orientation', and narrows scope to iOS and Android. It is distinct from every sibling tool because orientation is the only rotation-related command, but it does not explicitly differentiate itself from a similar sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus any alternative, nor any exclusion criteria. The only implied usage context is 'iOS and Android', but no explicit when-to-use or when-not-to-use instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the behavioral disclosure burden. It adds useful facts: the action is quick, can repeat, and times out after 90s. However, it does not describe what happens on completion, whether the gesture mutates UI state, or how the repeat pattern behaves if interrupted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core action is front-loaded, and the key behavioral constraint (90s timeout) is included without redundantly repeating schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a rich schema, there are no annotations, no output schema, and many overlapping sibling tools. The description is too thin to fully guide an agent on tool selection and invocation, especially regarding when to use swipe over alternative gesture commands and what response to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 95%, so the schema already documents nearly all parameters. The description adds 'optional repeat pattern' and the concept of a quick fling, but does not meaningfully expand on from/to semantics or the pattern enum beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('coordinate fling') over a clear resource, and the required from/to coordinates in the schema make the operation concrete. It is distinct enough from click, longpress, and scroll, though it does not explicitly name siblings to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use swipe versus related tools like gesture, scroll, or longpress. There is no context about UI state, prerequisites, or when a coordinate-based fling is preferred over an element-based interaction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It does disclose the 90-second timeout, which is useful operational context, but it does not state whether the operation is read-only, what happens on failure, or whether any state changes occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: it states the purpose first, then the notable timeout behavior. There is no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists and the schema covers parameters, so call construction is well supported. However, the description lacks usage guidance and behavioral context beyond the timeout, leaving the agent to infer when and how this tool differs from related commands.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 15 parameters are documented in the input schema, so the description does not need to repeat them. The description adds no parameter-level meaning, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows the foreground app/activity, which is a specific verb and resource. It implicitly distinguishes from siblings like apps or app-switcher by focusing on foreground state, but it does not explicitly name or contrast against those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as apps, snapshot, or events. The description implies a use case but gives no exclusions, prerequisites, or routing to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses two useful behavioral traits: progress is streamed and there is no fixed client timeout. This goes beyond the schema and helps an agent understand the tool may be long-running. It does not address failure behavior or resource implications, but the core behavioral traits are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence with no filler and front-loads the core action. The structure is slightly awkward—'suite Streams progress' reads like a missing sentence break—but it remains compact and information-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 30 parameters, no annotations, and only partial schema coverage, yet the description provides only two behavioral facts: serial execution and streaming/no-timeout. Important context such as when to use this vs replay or batch, how sharding works, or what failure modes exist is missing. The output schema covers return shape, but invocation context is still under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 30 parameters and only 60% schema description coverage, the description adds almost no parameter-level meaning. It only implies that 'paths' are the replay scripts via 'one or more replay scripts.' Many parameters such as retries, failFast, shardAll, shardSplit, timeoutMs, and recordVideo are left without description in either the schema or the tool description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Run one or more replay scripts as a serial test suite.' This makes the core purpose clear. However, it does not distinguish this tool from siblings like 'replay' or 'batch', so an agent must infer the differentiator from 'serial test suite.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'as a serial test suite' implies this tool is for running replay scripts in sequence, which gives some usage context. But there is no explicit guidance about when to choose this over 'replay' or 'batch', and no stated exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure and does add a concrete trait: 'Times out after 90s.' It also constrains usage to active or completed sessions. However, it does not disclose timeout failure behavior, authentication needs, or whether results are partial, so transparency remains moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, and the timeout warning is a valuable second sentence. There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 optional parameters and no output schema, the description is thin: it does not describe the shape of the returned artifact list, how a session is identified among the many selectors, or the effect of choosing daemon vs cloud provider. The timeout is mentioned but not the failure mode, leaving an agent to guess about invocation and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 17 parameters have schema descriptions (100% coverage), so the baseline of 3 is appropriate. The tool description adds no parameter-level detail and does not link 'session' to a specific field, but the schema already documents each selector.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('List') and resource ('daemon or cloud provider artifacts') with a session scope, which makes the tool's purpose reasonably clear. It does not define what counts as an artifact or explicitly differentiate from sibling tools like logs or trace, but the 'daemon or cloud provider' qualifier provides some separation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool applies to 'active or completed session' and warns about a 90s timeout, which gives some usage context. It does not name alternative tools or exclusion conditions, so an agent must infer when to choose this over logs, trace, or snapshot.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose at least one useful operational trait: a 90-second timeout. However, it does not explicitly state whether the operation is read-only, what pre-existing artifacts are required, or whether any device/state is modified during comparison.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The purpose is front-loaded, the mode guidance is immediately actionable, and the timeout is an extra worthwhile operational fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 22 parameters and no annotations, this description is too thin. It does not explain which selectors/identifiers are needed to perform a meaningful diff, how the screenshot mode is requested when the schema only allows 'snapshot', or what operational prerequisites exist. The output schema covers return values, but the invocation context remains under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
For a tool with 22 parameters, the description adds very little parameter-level guidance and never explains how the two snapshots or screenshots to compare are selected. The mention of snapshot vs screenshot does not map cleanly to the schema because 'kind' only permits 'snapshot', and the many common selectors documented in the schema are not tied to any invocation pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action ('Compare... snapshots or screenshots') and an explicit outcome ('identify UI changes'), which distinguishes it from capture-oriented siblings like snapshot and screenshot. However, the advertised screenshot mode is not backed by the schema: the required 'kind' parameter is constrained to 'snapshot' only, so the description is slightly inconsistent with the input schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives actionable mode-selection guidance: use snapshot comparisons for semantic tree changes and screenshot comparisons for pixel differences. It does not state when to prefer sibling tools or when not to diff, but the primary mode decision is clearly explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 behavioral disclosure. It mentions that the gesture is 'structured' and that it times out after 90 seconds, but it does not describe the actual effects on the device UI, whether the gesture is recorded or replayable, what response the caller can expect, or what happens on failure. This is a significant transparency gap for a tool that performs physical user interactions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the tool's capabilities, and the second sentence delivers the essential selection rule and a timeout constraint that the schema cannot express.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is high-complexity with 31 parameters, multiple device selectors, and several overlapping gesture types. The rich schema descriptions compensate for much of the missing kind-to-parameter mapping, but the description itself leaves that mapping implicit and does not address when to choose this tool over the dedicated 'swipe' sibling. This is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 31 parameters, so the baseline is 3. The description adds meaning beyond the schema by instructing the agent to provide only the inputs that apply to the selected gesture kind, which is critical conditional knowledge given the large number of gesture-specific parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Perform') and lists the specific gesture kinds: pan, fling, swipe, pinch, rotate, transform, and drag. It does not fully distinguish the tool from the sibling 'swipe' tool, which creates some ambiguity about whether 'gesture' with kind=swipe or the dedicated 'swipe' tool should be used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage pattern: select the gesture kind, then provide only the inputs that apply to that kind. However, it does not explain when to prefer this tool over specialized siblings like swipe, scroll, click, or longpress, nor does it state any exclusions or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It does add one useful non-schema fact — a 90-second timeout — but it does not mention side effects on the app/device, delivery guarantees, failure modes, or whether the notification can wake or alter app state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences: the first states the action, the second adds a concrete timeout constraint. There is no filler, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the output schema covering return values, this is a complex 18-parameter tool with no annotations. A single-line description does not explain how to choose among platform/device/target selectors, what payload forms are acceptable, what prerequisites must hold, or what happens after the push is delivered. The schema helps, but operational context remains largely missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is approximately 89%, so the parameter schema already documents most fields well. The description adds no parameter-level meaning; it does not elaborate on payload shape, device selection, or how the various selectors interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Deliver'), a specific resource ('push notification payloads'), and the target context ('an installed app'). This makes it easy to distinguish from siblings like click, type, or install, even without naming an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions or exclusions. Usage must be inferred entirely from the one-line purpose, which is insufficient for a command with 18 parameters and many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden. It usefully discloses the 90-second timeout and notes that the device is selected via separate inputs. It does not disclose whether the command blocks until boot completes, whether it is idempotent, or what failure/return behavior to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The main purpose is front-loaded, the selection caveat is second, and the timeout is a useful standalone detail. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple boot operation, especially with a 100%-covered schema and an output schema present. However, the tool has 16 parameters and no annotations, and the description does not clarify which selectors apply to which platform, whether the command waits for boot completion, or what 'prepare' entails beyond booting, leaving meaningful gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 16 parameters. The description adds a small amount of conceptual guidance by referring to 'device-selection inputs' and clarifying that the device is not named here, but it does not map which of the many parameters count as device-selection inputs or add syntax-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Boot or prepare') applied to a clear resource ('the selected device or simulator') and explains the intent ('so later commands can target it'). It does not explicitly differentiate from sibling tools, but the scope is specific enough that an agent can understand what the tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys when to use the tool: before later commands that target the device, and it clarifies that device selection happens through device-selection inputs rather than by naming the device here. However, it does not state when not to use it or mention any alternative tools, leaving some usage guidance to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior itself. It adds a useful operational detail (90s timeout) and the verb clearly indicates a power-off action, but it omits other behavioral context such as whether the shutdown is graceful, whether a running target is required, or what side effects occur on the device/session.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler: the action is front-loaded and the timeout constraint is a separate, relevant operational note. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema and full parameter descriptions reduce the need to explain return values or individual fields. Still, for a tool with 15 optional parameters and no required fields, the description leaves target selection ambiguous ('selected' is not mapped to the selectors).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 15 parameters already have individual descriptions. The tool description adds no guidance about which selector fields (udid, serial, device, platform, session, etc.) are alternatives or how to construct a valid target, so it does not improve on the schema here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Shutdown a selected simulator or emulator'), so the core function is clear. However, it does not explicitly distinguish itself from sibling tools like boot or close; it relies on the tool name to carry that differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: call this when a selected simulator or emulator needs to be powered off. It offers no explicit guidance about when not to use it, how it relates to boot/close, or which of the many optional selector parameters should be supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the 90-second timeout and the ability to extend it with a caller-supplied budget, and implies a read-only snapshot behavior. However, it does not mention possible side effects such as the optional 'record' behavior, or describe the response format, which matters given the absence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences: purpose, usage guidance, and a critical behavioral note. It is front-loaded with the main action, avoids fluff, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 24 parameters, no annotations, no output schema, and 52 sibling tools, this three-sentence description is insufficient. It does not explain the return structure beyond 'refs', does not cover side effects, and does not provide enough differentiation or parameter guidance for correct invocation in a complex MCP environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 79%, slightly below the high threshold, so the description should add some parameter meaning. It adds context for timeoutMs by stating the default 90-second timeout and that a caller-supplied budget extends it, but it does not describe the five undocumented parameters or clarify the ambiguous 'diff option'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action: 'Capture the accessibility tree or compare it with the previous session baseline' and mentions returning refs for semantic interactions. However, the phrase 'diff option' is ambiguous because no diff parameter exists in the input schema and a sibling tool named diff is available, so it does not fully distinguish this tool from related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives direct usage guidance: use the returned refs for subsequent semantic interactions and use the diff option to verify UI changes. This provides a clear context for when to invoke snapshot, though it does not explicitly state when not to use it or name alternatives beyond the vague 'diff option'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses a 90-second timeout, which is a valuable operational trait, but does not mention whether the operation is read-only, how the command list is returned, or behavior on timeout.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the core action is front-loaded, followed by a targeted usage tip and a timeout warning. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 15 optional parameters and no output schema. The description states the purpose and timeout but does not describe the shape of the returned command list or any default behavior. This is adequate for a discovery tool, though more response context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description only adds a generic hint about device-selection inputs and does not elaborate on any specific parameter beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'List the commands supported by the selected device or active session', giving a specific verb and resource. It clearly distinguishes this from sibling tools that manage devices or sessions, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use device-selection inputs when checking support before a session is open' provides explicit guidance for a common scenario, implying that after a session is open the active-session path should be used. It gives clear context but does not state exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explains the session binding lifecycle, override semantics, clearing behavior on session close, and the 90-second timeout. It does not mention side effects or return values, but the disclosed behaviors are meaningful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler, front-loading the core action and resource. It packs binding behavior and timeout into a compact structure that is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 34 parameters, no output schema, and no annotations. The description covers key operational behavior like binding, override, and timeout, but it omits output shape, prerequisite conditions, and any guidance for resolving devices or selecting among the many parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 44%, so the description should compensate for undocumented parameters, but it does not. The only parameter-related guidance is the general 'runtime inputs' override statement, which does not clarify the many selectors, timeouts, hosts, or flags in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: preparing a React Native development server or asking connected apps to reload. It names the resource (the session-bound Metro dev server), but it does not explicitly distinguish itself from siblings like react-native or open.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: the tool uses a session-bound development server, and runtime inputs can override that binding for one call. It does not explicitly name alternatives or states when not to use the tool, but the binding and override behavior are practical and specific.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the behavioral burden. It adds a 90s timeout and identifies the action as dismissing the RN dev overlay, which is useful. It does not disclose what happens when no overlay is present, whether the action is disruptive, or what a successful result looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey the tool's scope, the concrete action, the condition for using it, and a timeout. It is front-loaded with the general purpose and specific use, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-action automation tool with a generous schema, the description covers the key trigger and the timeout. However, there is no output schema and no mention of return format, error conditions, or behavior when the overlay is absent, leaving an agent to guess at success/failure semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 94%, and the schema documents all 17 common parameters with descriptions and enums. The description adds no parameter-specific meaning, but the schema already provides the needed detail for the only action and selectors; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
Description identifies the tool as handling React Native automation helpers and specifically names the dismiss-overlay action with its purpose: closing a visible development error overlay. Without inspecting the schema, an agent can infer what invocation achieves. It is not fully distinguished from sibling tools, but its specific use case is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Description states when to use it: after a development error overlay appears, before continuing normal UI automation. It does not name alternative tools or exclusions, but the tool's single action and targeted condition make the usage context reasonably unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It usefully reveals the 90-second timeout, the caller-supplied budget extension, and the fact that app scroll physics determine the final offset. It does not mention side effects like triggering navigation or lazy loading, but the core execution expectations are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose, then adds amount semantics and timeout behavior in a compact, scannable way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and presence of an output schema, this is a reasonably complete description for a 23-parameter interaction tool. The main gaps are the lack of sibling differentiation and the vague reference to a 'caller-supplied budget' that is not visible in the parameter schema, but neither prevents an agent from using the tool correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 96% of parameters, so the baseline is 3. The description adds meaningful semantic value for the key 'amount' parameter by defining it as a finger-path fraction of the viewport axis, and clarifies that top/bottom target edges of the scrollable content. This goes beyond the generic schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Scroll'), a clear resource ('scrollable content'), and the direction/edge semantics via the direction enum values. However, it does not explicitly differentiate this tool from closely related siblings like swipe or gesture, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use scroll versus alternatives such as swipe or gesture, and no exclusion conditions are stated. The amount semantics are explained, but that is a how-to detail rather than usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It adds useful operational context by stating a 90-second timeout and warning that event names/payloads must be app-documented. However, it does not disclose potential side effects, whether the call blocks until the app finishes handling the event, or error behavior—significant for a trigger-like action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no redundancy: purpose, usage restriction, and timeout are each stated once. Every sentence earns its place, and the tool name is not merely echoed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally viable for a complex 18-parameter tool, especially because the schema has full coverage and an output schema exists. Still, it omits side-effect guidance, alternative-tool differentiation, and detail about what happens after the event is triggered, which leaves an agent without a complete safety picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 18 parameters. The description adds only general context—that the payload is optional and that event names/payload shapes must follow app documentation—which is marginal beyond the schema's own detailed descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action—asking the app to handle an app-defined automation or test event—and mentions an optional structured payload. It conveys the target resource and distinguishes this from a generic event query, though it does not explicitly contrast it with sibling tools such as 'events'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit precondition: 'Call this only for event names and payload shapes the app documents.' This tells the agent not to invent or assume events. It does not name alternative tools or provide exhaustive when-not-to-use guidance, but the core usage constraint is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It does well by flagging that the visible system UI changes, focus may move away from the current app, and the operation times out after 90 seconds. These are meaningful side-effects and constraints beyond a bare action statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the primary action and purpose, the disruptive UI side-effect, and the timeout constraint. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage, an output schema, and no nested objects, the description is sufficiently complete. It adds the non-obvious behavioral context and timeout. It could mention platform-specific switcher behavior, but that is not essential for most uses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter semantics are already fully documented in the input schema. The description adds no extra parameter context, which is acceptable given the baseline for high schema coverage is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Open the device app switcher') and its purpose ('to inspect or change foreground apps'), distinguishing this tool from a generic app launcher or app-state query. It does not explicitly name sibling tools, but the unique system-UI resource is implied strongly enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when the agent needs to inspect or change foreground apps via the system app switcher. However, it does not explicitly contrast this with alternatives like `open`, `apps`, or `appstate`, nor does it say when to avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It usefully discloses the 90-second timeout and the mutating write mode, but it does not mention side effects of overwriting clipboard contents or any platform-specific restrictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core operation and a single high-value timeout constraint. Every sentence earns its place and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read/write tool with an output schema and a well-covered parameter schema, the description captures the essential behavior and timeout. It could clarify that write expects text, but the schema and enums already cover most of the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the baseline is 3. The description only hints at the text parameter with 'given text' and restates the action modes, adding little meaning beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs two distinct verbs, 'Read' and 'replace', with a specific resource ('device clipboard text') and explicitly covers both action enum values. An agent can tell exactly what the tool does without opening the schema, and it is clearly distinct from sibling tools like type or click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use for read vs write is obvious, but there is no explicit guidance about when to prefer this tool over alternatives or any exclusions. The agent must infer that read is for retrieving clipboard content and write is for setting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure; it adds a concrete 90s timeout, which is useful. The read-only nature is only implied by the verb 'List', and no side effects, permission, or failure-mode details are stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by a usage hint and a timeout warning. Every sentence carries distinct information and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list-style tool with a full output schema and 100% parameter documentation, the description covers the core use case, cross-command selector guidance, and a key operational constraint. It is not exhaustive about alternatives, but nothing critical is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining that platform, device, udid, and serial are meant to target one result on later commands, giving workflow meaning to those parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List available devices and simulators' for automation selection. It clearly conveys what the tool returns, though it does not explicitly name a sibling tool to distinguish itself from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: this is the discovery step before targeting a device, and it tells the agent to use platform, device, udid, or serial on subsequent commands. It stops short of naming alternative tools or explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It usefully states that the operation is read-only ('without changing the app') and that it times out after 90s. It does not describe return shape, failure behavior, or side effects of options like record/noRecord, but the core safety and timeout traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the purpose, then cover format selection and timeout. There is no filler or repetition of schema content. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 21 parameters and no output schema or annotations, the description is minimal but the schema covers the optional parameters well. It omits return value expectations and guidance for choosing among related sibling tools, which leaves an agent to infer some usage context. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is about 95%, so the schema already documents most parameters. The description adds real semantic value for the required format parameter by explaining that 'text' gives visible content and 'attrs' gives the element attribute map. This goes beyond the bare enum in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Read text or accessibility attributes from a snapshot ref or selector.' It also explicitly states the operation does not change the app, which distinguishes it from mutation-oriented siblings like click, type, and swipe. The two formats (text vs attrs) further clarify what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear direction on choosing between 'text' and 'attrs' formats, which is useful usage guidance. However, it does not name sibling tools such as find or snapshot, nor does it state when to prefer this tool over those alternatives. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are not provided, so the description carries the burden of behavioral disclosure. It discloses a 180-second timeout but does not mention whether the operation is destructive or reversible, what side effects occur (e.g., overwriting), or what the response includes. The description adds some value with the timeout but is not rich on behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with the core action and then the key exception (reinstall) and timeout. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for basic usage but lacks context about behavioral side effects, return values, or resolution semantics across the many platforms/selectors. With 18 parameters and no output schema or annotations, a bit more context about expected behavior or failure modes would help. Still, the core operation is simply stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 18 parameters. The description adds the note about providing an app identifier for explicit app selection, which is useful, but it doesn't go beyond that. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Install an app binary from a local path') and distinguishes itself from the sibling tool reinstall ('use reinstall to replace an already installed app'). It also mentions explicit app selection, which helps an agent identify the tool's purpose clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when the app identifier is needed and explicitly routes to reinstall for replacing an installed app. It does not discuss other alternatives like install-from-source or broader platform/device selection context, but the core usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It adds a useful timeout detail (90s) and implies a read-only predicate check, but it does not disclose what happens on failure, whether the check waits/retries before returning, or what the response shape looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose, then immediately provides the key usage alternative and the timeout constraint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 23 parameters, no annotations, and no output schema, the description covers the essential core behavior and timeout but leaves gaps around return values, failure semantics, and how the many optional parameters affect resolution. The 87% schema coverage mitigates this, but the description is not fully complete on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 87%, so the optional parameters are mostly self-documenting. The description adds meaning to the two required parameters, `selector` and `predicate`, by explaining the relationship between them and listing example predicate values. This is helpful but does not go significantly beyond the schema's existing enum and structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: checking whether a selector satisfies a UI predicate, with concrete examples such as visible, hidden, editable, selected, focused, or text. It also distinguishes itself from the wait sibling by explicitly naming when wait should be used instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives actionable guidance: use wait when the condition may appear asynchronously. This provides a clear alternative and condition for choosing between `is` and `wait`. However, it does not explicitly compare against other related siblings like `find` or `snapshot`, so usage context is good but not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals notable behaviors: long Android recordings may return multiple artifacts, HarmonyOS supports whole-screen recording on physical devices, and the operation times out after 90 seconds. It does not detail every side effect, but the disclosed traits go beyond the basic start/stop functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the primary action, and uses only three sentences to convey the core function plus key caveats. No filler or redundancy is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 22-parameter tool with no annotations, the description is relatively brief and leaves some operational context unclear, such as how start/stop pairing is expected to work and what platform selector combinations are relevant. The output schema exists, so return values need not be explained, but the high parameter count and platform-specific behavior warrant a bit more operational guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description loosely aligns with parameter semantics by mentioning 'active app session' and 'selected device', which relate to session/device selectors, and 'start or stop' maps to the action enum. However, it adds no meaning for important parameters like fps, path, quality, or recordingScope, and schema coverage is 73%, so the description does not substantially compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair, 'Start or stop', and a clear resource, 'screen recording', which distinguishes it from sibling tools like screenshot. Stating the scope as 'active app session or, where supported, the selected device' further clarifies what the tool acts on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context about platform support and timeout behavior, but it does not explicitly state when to use this tool versus alternatives such as screenshot or replay. The usage is implied rather than spelled out with clear when-to-use/when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses the timeout ('Times out after 180s') and the replacement semantics, but it does not mention potential data loss, whether app data is preserved, required preconditions, or failure behavior. It adds some useful behavioral context but remains incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core action is front-loaded, followed by the usage condition and a practical timeout detail. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description provides the essential purpose, usage, and timeout. However, it does not mention what happens on success or failure, whether existing user data is preserved, or any response shape. The high schema coverage compensates for parameters, but behavioral context remains only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (94%), so most parameters are already explained by the schema. The description itself does not add meaning to specific parameters like app or appPath beyond what is already documented. The baseline of 3 is appropriate because the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Replace an installed app with a binary from a local path') and a specific resource (an installed app + local binary). It distinguishes reinstall from sibling tools like install or install-from-source by emphasizing 'preserving the same app identity.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a condition for use: 'Use this when preserving the same app identity while installing a new build on the selected device.' It does not name alternative tools or state when not to use it, but the guidance is clear enough for an agent to select this over a fresh install.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the only source of behavioral information. It discloses the 90-second timeout and that accept/dismiss mutate the active alert state, which is useful safety-relevant context. It does not describe behavior when no alert is present or other side effects, but the core behavioral traits are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The action-resource statement is front-loaded, followed by usage guidance and a timeout warning. Every sentence contributes information that is not already present in the structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 18 parameters, four actions, and no output schema, the description omits return-value and outcome behavior: what get returns, what happens on timeout, and whether wait yields the alert text are left unstated. The timeout and mutation warnings help, but an agent still has to infer important response semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 89%, so the baseline is 3. The description adds meaning beyond the schema by mapping the action enum values to concrete verbs (inspect/wait/accept/dismiss) and by advising get before state-changing actions. Selector parameters are left to the schema, which is acceptable given their existing descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names a specific resource (platform alert) and a set of verbs (inspect, wait for, accept, dismiss) that map directly to the action enum. It does not explicitly contrast itself with sibling tools such as get or wait, and 'Use get before acting' could be slightly ambiguous about whether it means the alert tool's own get action or a sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit internal sequencing guidance: call get before acting when alert content matters, and warns that accept and dismiss change the active alert state. It does not discuss when to prefer sibling tools over alert, but for a specialized alert command the situational guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It covers the probe lifecycle, timeout behavior, and the dBFS-bucket output shape. It does not describe response details or potential side effects, but it is reasonably transparent for a measurement tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The purpose is front-loaded, followed by the key usage rule and a critical timeout constraint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter tool with no output schema and no annotations, the description is minimally viable but leaves gaps: it does not indicate which parameters matter for start vs status vs stop, nor what the probe result looks like. The core usage sequence is covered, but an agent would still need to infer much of the invocation context from parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema already documents most parameters. The description adds value by explaining the relationship between start/status/stop through the probe lifecycle, which is not fully apparent from the schema enums alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Measure'), resource ('audio'), and output format ('compact dBFS buckets'), making the core purpose clear. It does not explicitly distinguish itself from sibling tools like 'record', so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete operational guidance: start a probe before requesting status or stopping, and expects a 90-second timeout. It does not explain when to choose this tool over alternatives, but the sequencing advice is clear and useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does well: it reveals a non-obvious side effect (warming the XCTest runner build cache in the background on iOS simulators), a hard constraint ('Times out after 90s'), and the nature of the output (compact evidence). Minor gaps remain, such as whether the tool opens sessions or performs network calls beyond 'server reachability,' but the critical behaviors are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero filler: purpose and return shape in the first, the critical iOS cache-warming caveat and usage timing in the second, and the timeout in the third. Each sentence carries distinct, necessary information, and the primary purpose is front-loaded. For a 17-parameter tool, this is an exemplary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return-value details are already covered outside the description. For a complex tool with no annotations, the description covers the essential workflow: what it diagnoses, what it returns, the iOS-specific prerequisite behavior, and the 90s timeout. It is slightly incomplete in not addressing how local-vs-remote (the remote parameter) or platform selection changes the diagnostic scope, but the core orientation is solid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even without parameter details in the description itself. The description does not map its terms (e.g., 'server reachability', 'optional app discovery') to specific selectors like remote or targetApp, which would have added value. It adds no parameter-level meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (Diagnose) with an explicit resource scope: device, app, development-server, and React Native or Expo readiness issues. It also specifies what evidence is returned (local inventory, sessions, app discovery, toolchains, server reachability), making the purpose concrete. However, it does not explicitly differentiate from diagnostic siblings like devices, capabilities, network, or perf, which overlap in the diagnostic space.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit, actionable timing guidance: 'run it before the first Apple snapshot or interaction of a session' in connection with the XCTest cache-warming behavior. It also implies the tool's diagnostic role in a session workflow. It names no alternatives or when-not-to-use conditions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by disclosing that the action replaces text, that recordAs prevents sensitive text from entering a recorded replay while still sending it to the live app, and that the operation times out after 90s unless a caller budget extends it. These are meaningful behavioral details, though it does not cover error behavior or side effects beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: purpose, targeting/recording guidance, and timeout behavior. Every sentence earns its place, and the most important information is front-loaded in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (26) and the presence of an output schema, the description plus parameter descriptions provide a fairly complete picture. It gives the key operational context: prefer snapshot-based targets, handle sensitive text carefully, and expect a 90s upper bound. It does not explain the relationship to sibling `type`, which would make the contextual picture fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 26 parameters in detail. The description adds value around targeting modes and recordAs, but these are also represented in the schema. Baseline 3 is appropriate because the description does not need to compensate for undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (replace), the resource (text in a UI input), and the three targeting modes (snapshot ref, selector, coordinates). It is specific enough that an agent can understand the core function, but it does not explicitly differentiate this from the sibling tool `type`, which is a likely alternative for entering text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful contextual guidance: prefer refs or selectors after a snapshot, use recordAs for sensitive text, and be aware of the 90s timeout. It does not, however, provide explicit when-not-to-use guidance or name alternatives such as `type`, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It does disclose a few non-obvious traits: coordinate-based focus, no text entry, and a 90-second timeout. However, it does not explain side effects, whether the action is effectively a tap/click, prerequisites such as element visibility, or what a successful invocation returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the first defines the core action, the second gives routing guidance, and the third states the timeout. The description is front-loaded with the most important information and contains no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity command with only two required parameters, the description covers the core invocation context: coordinates, non-text behavior, semantic-preference guidance, and timeout. It omits details about return values and failure behavior, but no output schema exists and the tool is simple enough that the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 18 parameters with 100% coverage, including x and y coordinates. The description adds only the implicit context that coordinates are explicit screen coordinates. Since the schema carries the parameter meaning, the description does not need to compensate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'Move input focus to explicit screen coordinates', with a clear resource and mechanism. The clause 'without entering text' directly distinguishes it from text-input siblings like type and fill. It is specific enough for an agent to know what the tool does even without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: prefer semantic interactions when a snapshot ref or selector is available, and use type or fill after focusing. This gives the agent direction on when not to use the tool. It stops short of naming every alternative sibling, but the guidance is actionable and useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden, and it does add meaningful behavioral facts: the app session is preserved, the foreground is moved away, and the operation times out after 90 seconds. This goes well beyond a generic 'go home' statement, though it does not cover permissions or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the primary action and then add the two most important qualifiers (session-preserving behavior and 90s timeout). There is no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-action device command, the description plus the fully documented 16-parameter schema and existing output schema provide enough to invoke it correctly. It is slightly abstract about platform-specific behavior (tv/desktop home semantics), but that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 16 parameters. The description adds no tool-specific parameter meaning, which matches the baseline 3 for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb plus resource ('Send the selected device to its home screen') and adds a differentiating behavioral detail: the app session stays open while the foreground moves away. This distinguishes it from ambiguous navigation siblings like back or app-switcher.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'leaves the app session open but moves the foreground away' implies a use case—backgrounding the current app without closing it. However, it never explicitly names alternatives such as back or app-switcher nor gives a when-not-to-use condition, so guidance remains implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it taps the dismiss/hide key, verifies the keyboard closed, reports UNSUPPORTED_OPERATION when no dismiss key exists, never background-taps, and times out after 90s. Behavior for status, enter, and return actions is not covered, but the dismiss workflow is thoroughly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three front-loaded sentences covering purpose, usage, edge cases, and timeout with no filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The dismiss workflow is fully described, inspection is mentioned, and output schema handles return values. Minor gaps remain: enter/return semantics are not explicit, and the Android-specific phrasing may not fully align with the broader platform selectors in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 94%, so the baseline is 3 and the description need not repeat parameter docs. It does add action-level meaning for dismiss and status, but enter and return are left to inference from their enum names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the keyboard as the resource and names specific actions: inspect visibility/type, press, and dismiss. It does not explicitly differentiate from sibling tools like type or press, so it stops short of full distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage context for the dismiss path: 'To hide the keyboard, use keyboard dismiss.' It lacks when-not-to-use guidance and does not name alternative tools, so there is clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the active web viewport is modified and that the operation times out after 90 seconds. However, it does not state whether the resize persists across subsequent commands, is reversible, or impacts other workflows beyond snapshots/screenshots.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loads the core action and purpose, and includes a useful timeout detail. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, timing, and timeout behavior. The input schema documents all 18 parameters and an output schema exists, so return-value and parameter details are already structured. Minor gaps around persistence and side effects are already reflected in behavioral transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already documents width and height in CSS pixels. The description adds no additional parameter-specific meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Resize') and resource ('active web viewport') and explains why it matters before snapshots/screenshots. This clearly distinguishes it from sibling tools like screenshot and snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual guidance: use it before taking snapshots or screenshots, especially for fixed-layout or 100vh apps. It does not explicitly mention alternatives or when not to use it, but the use-case framing is strong enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does add useful context by stating the 90-second timeout and the remote daemon resolution behavior. However, it does not disclose side effects of installation (e.g., replacing an existing app), prerequisite lease/session requirements, or failure behavior on timeout.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, starting with the action verb and resource, then enumerating source types and ending with the timeout. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (19 parameters, nested source object, no output schema), the description covers the core purpose and timeout but leaves device-resolution semantics, return values, and post-install behavior entirely to the schema. This is adequate but not fully complete for an agent invoking the tool independently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 89%, so the baseline is 3. The description adds concrete meaning to the generic 'source' object parameter by spelling out that it can be a URL, remote source spec, or CI artifact. This is valuable beyond the schema's generic 'Install source object' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('install'), a resource ('app builds'), and the source domain ('URLs, remote source specs, or CI artifacts resolved by a remote daemon'). This is specific enough to distinguish it from the sibling 'install' tool without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool: when the build source is a URL, remote spec, or CI artifact resolved by a remote daemon. This provides clear context, though it does not explicitly name the alternative 'install' tool or state exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does a solid job: it reveals the boot side effect, the session-bound Metro/debug hint persistence and clearing behavior, and the 90-second timeout. It could also mention response or failure behavior, but the most decision-relevant side effects are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, no filler; core purpose is front-loaded, followed by selection guidance, binding behavior, and timeout. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 32-parameter tool with no annotations and no output schema, the description covers the core workflow, session binding semantics, and timeout, which are the main non-obvious facts an agent needs. It does not enumerate output/response behavior or advanced flags, but the rich schema descriptions cover the parameter space, so the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 97%, so the schema already documents most parameters; the description adds meaning beyond the schema by explaining the relationship between app/URL inputs and the foreground automation target, and by describing how Metro/debug hints become reusable session bindings. That extra context maps to parameters like metroHost and metroPort in a way the schema alone does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific action—boot the selected device when needed, then open an app, deep link, or URL in a session—and adds the foreground-target qualifier, which differentiates it from generic actions like boot or apps. It does not explicitly name sibling alternatives, so it stops just short of the highest bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use the tool ('when needed', 'use app or URL inputs') and explains how the session binding behaves on repeated opens. It does not state exclusions or name alternatives, but the guidance is enough to select it appropriately among the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose meaningful behavior: the start/stop state machine, artifact return at end of capture, artifact path pairing, and a 90-second timeout. It does not mention any side effects or permission requirements, but the self-contained behavior is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct information: the core capability, the path-pairing rule, and the timeout. The most important verb and resource are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateful capture tool, it covers the essential operational concerns (start/stop, artifact path, return timing, timeout) and an output schema exists. It could be more explicit about the start response versus the stop response, but nothing critical is missing for invoking correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 89%, so the schema already documents most parameters. The description adds value beyond that by explaining that path must be shared between matching start and stop requests, which is not evident from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific action (start/stop trace-log capture) and a concrete outcome (returning the resulting artifact), so an agent knows what the tool does. It does not explicitly differentiate trace from sibling tools like record or perf, but the trace-log capture resource is distinctive enough to avoid most ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear operational context: start or stop capture, reuse the same artifact path across matching requests, and expect completion within 90s. It does not list alternative sibling tools or when-not conditions, which prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses press vs. long-press capability, that ok/center/enter are aliases for select, and the 90-second timeout. Platform-specific duration behavior is left to the schema, but the description adds meaningful behavioral facts beyond a bare action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core action and platform scope come first, then the input hint, then the alias and timeout facts. Every sentence contributes distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter command with an output schema, the description covers the essential operational context: action, platforms, alias resolution, and timeout. It does not enumerate device selectors or response options, but those are fully documented in the schema, and the output schema covers return-value expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 94%, so the baseline is 3. The description adds one genuinely non-schema fact: ok, center, and enter all map to select, which is not reflected in the button enum. It otherwise wisely avoids repeating parameter details already documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Press or long-press a TV remote or D-pad button' and names the platforms Android TV, tvOS, and Vega OS. This clearly identifies the tool's job and distinguishes it from generic siblings like press/longpress, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: TV remote or D-pad button presses on Android TV, tvOS, or Vega OS. It does not explicitly state when not to use it or name alternatives, so an agent must infer the boundary with press/longpress/click.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral transparency burden. It usefully discloses the 90-second timeout and frames the operation as read-only. However, it leaves the default appsFilter behavior and device-selection prerequisites implicit, so it only partially covers the behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler: the purpose comes first, followed by the filter guidance and timeout constraint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with a full output schema and fully documented parameters, the description covers the core task, the filtering policy, and the timeout. Some cross-tool guidance is left implicit, but nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds actionable meaning beyond the schema by telling the agent when to include system/OEM apps, which maps directly to the appsFilter parameter choice. This extra guidance justifies the above-baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('apps installed on the selected device') and scope, making it easy to distinguish from sibling tools like install, reinstall, or appstate. The phrase 'apps installed' clearly identifies this as an enumeration tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context—list installed apps for the selected device—and an explicit filtering rule: include system or OEM apps only when needed as automation targets. It does not explicitly name alternative tools or exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It adds a useful timeout behavior and the existence of a caller-supplied budget, but it does not describe expected side effects, safety implications of pressing arbitrary UI elements, or whether this is a low-level input injection vs. a semantic click. That leaves a notable transparency gap for an interaction tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose first, alternative second, timeout behavior third. Every sentence earns its place and the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a complex 28-parameter schema but full schema coverage and an output schema, the description provides the core invocation contract: short-press action, target forms, key alternative, and timeout behavior. It could add more orientation about device resolution or optional verification modes, but the schema already supplies those details sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, so the description is not obligated to re-explain parameters. It does restate the three target forms, but those are already encoded in the target oneOf schema, so it adds little beyond the structured definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Short-press'), the resource ('UI target'), and the three supported targeting mechanisms ('snapshot ref, selector, or coordinates'), which map directly to the schema. It also distinguishes this tool from the sibling longpress by clarifying this is the short-press variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to prefer longpress instead: when the target 'requires a context-menu or hold gesture.' This is a direct, actionable when-not/alternative rule that helps an agent choose between two closely related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It discloses the append behavior and the 90s timeout, but it does not describe error cases, return values, or side effects beyond modifying the input. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: the primary action, routing to alternatives, and the timeout constraint. Every sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a primitive input-action tool with a well-documented schema, the description provides the essential usage context, timeout, and sibling disambiguation. It does not describe output/return behavior, but that is arguably less critical for an action command.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds the important semantic that text is appended rather than replacing, but it does not add detail about the other parameters such as delayMs or device selectors.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Append text to the currently focused input.' It clearly distinguishes itself from the siblings fill and focus, so an agent can tell this tool apart without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides routing guidance: use fill when replacing, use focus first when no input is active, and use type when appending to an already focused input. This covers the key alternatives and the condition for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It states that profiling output is evidence only with compact state, artifact path, and size, and discloses the 90-second timeout. It also clarifies the raw-artifact vs. summary behavior for CPU profiling, though it leaves sample/snapshot specifics and any side effects of starting a profile somewhat implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the tool's core purpose, then adds action guidance, output expectations, and the timeout. Every sentence contributes useful information with minimal redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers output shape and timeout, which is important since there is no output schema. However, this tool has 23 parameters and no annotations, and the description does not cover area/kind/action interactions, default behavior, or device/tenant resolution context. It is adequate for common CPU profiling use but leaves notable gaps for memory, frame, and trace workflows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high at 83%, so the baseline is 3. The description adds meaning beyond the schema by explaining how action values start, stop, and report behave for CPU profiles, and by tying output to artifact paths and compact summaries. It does not fully explain all action variants like sample or snapshot, but the added action semantics are valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Collect frame health, memory diagnostics, and platform profiling artifacts.' It clearly identifies the tool's domain and distinguishes it from generic UI or device tools like screenshot, click, and trace by focusing on profiling evidence and compact summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete guidance for CPU profiles: start and stop write the raw artifact while report writes a compact summary, and the report should be requested when readable native CPU evidence is needed. It does not name alternative tools explicitly, but it provides clear in-tool action selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose a notable behavioral trait: the 90-second timeout and extension via caller-supplied budget. It also clarifies that system mode triggers platform-native back behavior. It could mention side effects like exiting the app, but the provided details are meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each earning its place: the action, the mode-selection guidance, and the timeout behavior. The most important information is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a navigation command with a rich schema and an output schema, the description covers the core decision (mode choice) and a key behavioral constraint (timeout). It does not discuss device-resolution details or potential exit behavior, but those are less critical for correct invocation given the schema's high coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 95%, so the baseline is 3, but the description adds real semantic value by explaining the mode parameter's two values: in-app for the app navigation stack and system for platform back behavior. This goes beyond the raw enum and helps the agent pick correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action—'Navigate back in the app or through system navigation'—and clearly distinguishes the two modes it supports. This separates it from sibling navigation tools like home and app-switcher without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use each mode: in-app for the app navigation stack and system for platform back behavior. It does not name alternative tools like gesture or swipe, but the mode-level guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full transparency burden. It explicitly warns 'This can change app state' and discloses the 90s timeout plus caller-budget extension, which are material behavioral facts. It also explains the confirmation strategy without a follow-up snapshot. It does not cover failure modes or reversibility, but the core side effects are well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each carrying distinct value: what the tool does, how to choose the target, what side effect to expect and how to confirm, and how long it may run. No filler, no repetition of schema content, and the most important usage rule is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—29 parameters, many device and platform selectors, and a union target schema—the description covers the critical agent-facing concerns: state mutation risk, snapshot-preferred targeting, and timeout behavior. The output schema exists, so return values do not need elaboration. A small gap is the lack of explicit differentiation from sibling input tools like press, but this is not a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all 29 parameters with 100% coverage, so the baseline is 3. The description adds real meaning beyond the schema by prioritizing the target union variants, telling the agent that ref/selector should be preferred and coordinates are a fallback. This is directly useful for choosing the correct target shape, justifying a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair, 'Activate a UI target', and immediately enumerates the three supported addressing modes: snapshot ref, selector, or coordinates. This clearly distinguishes the tool's mechanism from raw gesture tools and leaves no ambiguity about what 'click' does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit, actionable guidance on targeting: prefer ref/selector after a snapshot, and fall back to coordinates only when semantic targeting is impossible. It also recommends settle or verify over a follow-up snapshot after the action. It does not explicitly compare click with sibling action tools like press or longpress, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does disclose a 90-second timeout and the intentionally narrow scope, which is useful. However, it does not mention side effects such as writing an output file, return behavior, or any permissions/lease requirements, so transparency is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no waste: purpose is front-loaded, sibling routing follows, and the timeout is stated last. Every sentence earns its place and the structure allows an agent to quickly determine applicability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 20 parameters, the schema is rich enough to carry parameter detail, and the description covers purpose, boundaries, and timeout. The main missing piece is the lack of any description of return values or output behavior, and there is no output schema to compensate, so it is nearly complete but not fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 95%, so the schema already documents most parameters clearly. The description adds meaningful semantic context beyond the schema by explaining the 'matching dSYM UUIDs' requirement, which clarifies how dsym and searchPath relate to the crash artifact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Symbolicate Apple crash artifacts with matching dSYM UUIDs.' It also distinguishes itself from sibling tools by explicitly listing logs, network, perf, record/trace, and react-devtools as the correct tools for other artifact types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit: 'This debug namespace is intentionally narrow' and the description names exactly which sibling tools should be used for app logs, HTTP evidence, performance samples, media/traces, and React Native profiles. This gives clear when-to-use and when-not-to-use direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses the 210s timeout, the existence of a caller-supplied budget to extend it, and the default hold duration behavior around durationMs—all beyond what the schema states. It does not detail failure modes or side effects, but the output schema helps cover response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and resource, then purpose, optional override, and timeout. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 23 parameters and no annotations, the description covers the most critical aspects: what the tool does, how to specify the target, the duration override, and the timeout behavior. The extensive schema and output schema document the remaining parameters and return shape, making this adequately complete without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds genuine meaning by clarifying that durationMs overrides an unsuitable default, and by summarizing the three target variants (ref, selector, coordinates) in plain language. This goes beyond the schema's raw descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Hold' and identifies the resource (a UI target) along with the three accepted target forms: snapshot ref, selector, and coordinates. It also states the intended outcome ('open a context menu or perform another hold gesture'), which clearly separates it from sibling tools like click or press.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by stating the purpose (context menu or hold gesture) and offers a conditional parameter guidance ('Set durationMs when the default hold duration is unsuitable'). It does not explicitly name alternatives or when-not-to-use, so it stops short of a 5, but the context is clear enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the default timeout, the ability to extend it, and the distinct semantics of stable waiting versus condition-based waiting. It does not state whether a timeout results in an error or what the return shape is, but the core behavior an agent must understand before calling is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences deliver the full purpose, mode guidance, and timeout behavior with no filler. The most important information is front-loaded, and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 27 parameters, the description covers the essential wait-specific decisions: which mode to use and the timeout behavior. The output schema exists, so return values need not be spelled out, and many shared parameters are already documented in the schema. It leaves minor gaps around exact parameter names for duration and quiet window, but is complete enough for an agent to invoke the tool correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 59%, and several wait-critical parameters (kind, durationMs, quietMs, timeoutMs, stable) lack descriptions. The description compensates by explaining what 'duration', 'text', 'ref', 'selector', and 'stable' modes mean, and by relating the quiet window and timeout budget to the wait behavior. It does not explicitly map 'duration' to durationMs or 'budget' to timeoutMs, but it adds meaningful semantic value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Wait') and identifies concrete target resources: duration, text, snapshot ref, selector, and stable UI. This clearly distinguishes it from sibling tools like get, snapshot, or is by framing it as a readiness/synchronization operation rather than a query or assertion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit mode-selection guidance: text, ref, or selector for specific readiness conditions, and stable for waiting until the UI quiets. It also explains the 90-second timeout and how a caller-supplied budget extends it. It does not explicitly contrast this tool with non-wait alternatives like polling via get or snapshot, but the internal usage guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It fully discloses the behavioral modes (full card vs. specific guide, flag reference) and enumerates valid topics. It doesn't explicitly state non-mutating behavior, but that is inherent for a help tool, so it's sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The content is dense but well-organized: it starts with a clear summary, then explains the no-topic case, then the topic list, then usage restrictions. Every phrase adds value, but it's a single long sentence that could be split for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple help tool with one optional parameter, the description is complete: it covers the default behavior, all valid inputs, alternative usage, and when to avoid the tool. No output schema is needed because the tool's return is self-evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description significantly enriches the schema's parameter description by listing all valid topics and explaining the two usage modes (omit for card, tool name for flag reference). This goes well beyond the schema's 'Guide topic or tool name; omit for the card.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides usage guides and distinguishes between the full workflow card (no topic) and specific guides/flag references (with topic). It is specific and stands apart from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use guidance is given: 'For specialized work or an unclear command shape only; not a startup step, not needed after an error that carries a hint.' However, it does not name alternative tools for these cases, so I deduct one point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and it uses the space well: it clarifies that the pointer moves 'without pressing', that the behavior is Web-only, that the operation times out after 90s, and that a caller-supplied budget can extend it. It also explains the settle behavior as best-effort observation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler; the core action and purpose are front-loaded, followed by the essential platform constraint, workflow hint, and timeout behavior. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 22 parameters and no annotations, the description covers the key operational facts an agent needs: how to target the element, why to use hover, when it is unavailable, how to observe the result, and the timeout bound. The rich schema and output schema cover the remaining details, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all 22 parameters described, so the baseline is 3. The description adds a high-level mapping to target modes and mentions settle and timeout, but it does not add parameter-level detail beyond what the input schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Move the pointer over a UI target') and exactly how targeting can be supplied ('snapshot ref, selector, or coordinates'). It also states the reason for the action ('reveal hover-gated UI') and the platform limit ('Web only'), which distinguishes hover from click/press siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear when-to-use context: reveal hover-gated UI such as row toolbars or menus, and it excludes non-web/touch platforms ('touch platforms have no hover state'). It also suggests using settle to observe the result without a follow-up snapshot, but it does not explicitly name sibling alternatives such as click or press as the alternative for actual activation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It adds the 90s timeout, the fallback to the active session app, and the scope boundary between closing an app and shutting down a simulator/emulator. It does not describe failure behavior or side effects in detail, but the core behavior is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each doing useful work: the main action and fallback, the shutdown alternative, and the timeout. There is no filler or redundant restating of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter tool with no annotations and no output schema, the description covers the core invocation decisions: which app to close, what happens when app is omitted, when to prefer shutdown, and the timeout. The generic selector parameters are well documented in the schema, so the description does not need to repeat them. Minor gaps remain around response shape and failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is about 95%, so the baseline is 3 and the schema already documents most parameters. The description adds value by clarifying that app is optional and defaults to the active session app, and by framing shutdown as a separate operation rather than repeating schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names the verb and resource precisely: close an app, or close the active session app when app is omitted. It also separates itself from the shutdown sibling by noting when shutdown should be used instead, so an agent can distinguish close from nearby tools like open, apps, and shutdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives explicit routing guidance: use shutdown only when the selected simulator or emulator should also stop. This directly addresses the most likely alternative to close and tells the agent exactly when to choose it, with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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