Skip to main content
Glama

qemu_wait_screen

Read-onlyIdempotent

Blocks until a headless QEMU VM's display stops changing or times out, enabling reliable screenshots or input after VGA-only BIOS splash or boot animations.

Instructions

Block until the VM's display stops changing, or time out.

Polls screendumps every poll_interval_s and waits for stable_polls consecutive frames that each differ from the previous one by at most max_changed_pixels pixels (default 64: a blinking text-mode cursor flips about 18, so identical frames never happen on a text console, while boot output changes hundreds; use 0 to require identical frames) - the reliable way to know a VGA-only guest (no serial output) has finished a BIOS splash or boot animation before you screenshot or type. For guests with serial output, prefer qemu_wait_serial - it doesn't need a fixed number of polls to decide. Always polls at least once, even if timeout_s is 0 or negative. poll_interval_s must be positive.

Input Schema

NameRequiredDescriptionDefault
nameYes
timeout_sNo
stable_pollsNo
poll_interval_sNo
max_changed_pixelsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, but the description adds behavioral detail beyond the annotations: it polls at a set interval, requires consecutive stable frames, always polls at least once even with a zero or negative timeout, and rejects a non-positive poll_interval_s. The explanation of why max_changed_pixels defaults to 64 (a blinking cursor flips about 18 pixels, while boot output changes hundreds) is a concrete detail about how the tool behaves that the annotations do not provide.

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 purpose is front-loaded in one sentence, then the mechanism and the sibling routing follow in a logical order. The long parenthetical about pixel counts is dense but pays for itself by explaining the default, though the paragraph could be split for easier scanning.

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?

An output schema exists, so return values need not be described. For a five-parameter blocking wait tool, the description covers the mechanism, defaults, edge cases, and the sibling alternative, leaving nothing an agent needs in order to call it correctly.

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

Parameters4/5

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

Schema description coverage is 0%, so the description has to carry the full load for parameter meaning, and it does for stable_polls, poll_interval_s (must be positive), timeout_s (edge case of zero or negative), and max_changed_pixels (default 64, use 0 for identical frames). The only gap is the required 'name' parameter, which is never described, though its meaning (VM name) is obvious from the qemu_* tool family.

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?

The first sentence gives a specific verb and resource: 'Block until the VM's display stops changing, or time out.' It also names the sibling it is not (qemu_wait_serial) and the condition that selects it, so the agent can distinguish it from alternatives 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?

The description states explicitly when to use this tool (a VGA-only guest with no serial output that must finish a BIOS splash or boot animation before screenshotting or typing) and when to use the alternative instead ('For guests with serial output, prefer qemu_wait_serial - it doesn't need a fixed number of polls to decide').

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