Skip to main content
Glama

capture_screen

Captures a screenshot of the Android or iOS Simulator screen and lists visible elements with AutomationId, text and bounds, so you can compare a mobile app screen against its Figma design.

Instructions

Takes a screenshot of the device (Android or iOS Simulator) and lists the visible elements with their AutomationId (resource-id on Android, accessibilityIdentifier on iOS), text and bounds in dp or pt. On iOS it takes a few more seconds: it reads the accessibility tree with a UI test, which is built the first time.

Input Schema

NameRequiredDescriptionDefault
deviceSerialNoDevice serial or UDID (from list_devices). Optional: uses the first one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
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 add real operational context: iOS is slower because it reads the accessibility tree via a UI test that is compiled the first time. It also discloses unit differences (dp vs pt) and platform-specific id attributes. It stops short of saying whether the screenshot is persisted to a file path or returned inline.

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?

Two sentences, front-loaded with the core action and output shape, then the platform caveat. Every clause carries information; nothing is redundant, though the iOS sentence is dense.

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

Completeness4/5

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

No output schema exists, so the description must explain returns — it does so by enumerating element fields and units, which is the key information. The remaining gap is the screenshot artifact itself: whether a path or image reference is returned, and any device-availability errors.

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

Parameters3/5

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

Schema coverage is 100% and the single optional deviceSerial parameter is fully documented there, including the default of 'first one'. The description adds no parameter guidance, which is acceptable at full coverage but earns only the baseline.

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

Purpose5/5

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

States a specific verb and resource ('Takes a screenshot of the device') and goes further to specify the returned payload: visible elements with AutomationId, text, and bounds. Platform-specific naming (resource-id on Android, accessibilityIdentifier on iOS) makes it unmistakable against siblings like compare_screen or get_design_specs.

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

Usage Guidelines3/5

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

Usage is implied by 'Takes a screenshot... and lists the visible elements', but there is no explicit when-to-use vs compare_screen or get_design_specs, which are the closest alternatives for screen inspection. The iOS cost warning hints at a tradeoff but never names when to pick an alternative.

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