Skip to main content
Glama

ui_capture

Read-only

Captures an allowlisted iOS app's UI as a summary, screenshot, or both with automatic session reuse. Returns a snapshot_id for paging through detailed view hierarchies.

Instructions

One-call allowlisted app capture with automatic session reuse/attach. Required mode=summary, screenshot or both; screenshots and text require explicit selection. Summary returns snapshot_id for paging.

Input Schema

NameRequiredDescriptionDefault
modeYes
depthNo
limitNo
fieldsNo
formatNosummary
offsetNo
bundle_idYes
device_idYes
max_nodesNo
window_idNo
include_textNo
root_view_idNo
visible_onlyNo
controls_onlyNo

Output Schema

NameRequiredDescriptionDefault
okYes
dataNo
errorNo
elapsed_msYes
request_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds meaningful behavior beyond that: automatic session reuse/attach, allowlist restriction, explicit selection requirements for screenshots/text, and snapshot_id paging. It still does not mention permissions or rate limits, so a 4 rather than 5.

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

Conciseness4/5

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

The description is three front-loaded sentences with no filler, and key constraints are stated early. However, it is extremely terse for a 14-parameter tool, which makes the structure feel under-developed rather than maximally efficient.

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

Completeness2/5

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

The tool is complex: 14 parameters, 0% schema description coverage, and an output schema. The output schema covers return values, but the description only addresses mode, explicit selection, and paging, leaving most input parameters without any explanation. That is not complete enough for reliable invocation.

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

Parameters2/5

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

Schema description coverage is 0% across 14 parameters, so the description must compensate heavily. It explains the mode enum, implies include_text selection, and mentions paging via snapshot_id, but leaves most parameters (depth, limit, fields, format, offset, max_nodes, window_id, root_view_id, visible_only, controls_only) undocumented in both description and schema.

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

Purpose4/5

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

The description states a specific verb ('capture') and resource ('allowlisted app'), and names the three modes, so an agent can tell this is a UI capture tool. It does not explicitly distinguish itself from siblings like ui_snapshot or ui_automate, so it falls 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/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternative sibling is mentioned. The statement that mode is required is a parameter constraint, not guidance on choosing this tool over ui_snapshot or ui_automate.

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