Skip to main content
Glama

Retrieve a saved image

relay_image
Read-onlyIdempotent

Retrieve an already-saved VM image from a display phase, application file, or reference for inspection, and recover pending or missed snapshots without capturing again.

Instructions

Retrieve one already-saved image; never a new capture, input or directory export, and it never acquires a VM. target selects a display phase (sessionId/executionId/phase: before/after), a declared application file (name, plus a relative path for a directory declaration), or an immutable reference (imageId). PNG, JPEG and WebP only; originals up to 64 MiB and 40,000,000 decoded pixels; the delivered preview is at most 2000x2000 px and 4 MiB of base64 (PNG originals are resampled in-process; JPEG/WebP pass through only within bounds). Each delivery has a 90-second deadline and up to three transfer attempts. A relay_run tool image is the application file name: "relay-run" at the path its result gives. A run's after-snapshot is pending in its result; retrieve it here with its imageId or display selector, which waits for its background download within the same deadline. If an image did not arrive, recover it here the same way, never by repeating the input or capturing again, and stop after at most two such recovery calls if it still cannot be inspected. A closed enclosure returns stale-reference for a display or reference target; its delivered originals stay readable with host file tools. An attached image proves only that the block was included, not that anyone inspected or reviewed it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.1

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantial operational context: accepted formats, 64 MiB and 40,000,000-pixel original limits, 2000x2000/4 MiB delivered preview with in-process resampling for PNG, a 90-second deadline, up to three transfer attempts, and `stale-reference` on a closed enclosure with originals still readable via host file tools.

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?

Purpose and the negative scoping are front-loaded, and nearly every sentence adds a constraint an agent could not otherwise know. The cost is a single dense block with long parenthetical sentences, which makes selective re-reading harder than a short structured layout would.

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

Completeness5/5

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

With no output schema, the description still covers outcomes: pending after-snapshots that resolve within the same deadline, the stale-reference error for closed enclosures, and the caveat that an attached image only proves the block was included. Nothing an agent needs to call this correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry the load, and it does: it explains the three target selectors (display phase via sessionId/executionId/phase before|after, application file via name plus relative path, immutable reference via imageId) and adds meaning the schema cannot, e.g. that a relay_run image is the file named 'relay-run' at the path its result gives.

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 ('Retrieve one already-saved image') and immediately fences off what it is not: not a new capture, input, directory export, and it never acquires a VM. This cleanly separates it from siblings like relay_acquire, relay_run and relay_extract without opening any schema.

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

Usage Guidelines5/5

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

Explicit routing: use this for the after-snapshot marked `pending` in a relay_run result, and for recovery when an image did not arrive, with the direction 'never by repeating the input or capturing again' and a hard cap of two recovery calls. When-not guidance and the alternative action are both named.

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