Skip to main content
Glama

qt_record_gif

Records an animated GIF of a selected Qt window or widget for a set duration while the application keeps running.

Instructions

Record an animated GIF of a window or widget for duration seconds.

Identify the widget exactly like qt_screenshot (ref, or describe/window_title/ class_name/object_name; the active window if nothing is given). The app keeps running normally while recording; interact with it meanwhile via other tools or by hand. Works on Windows and Linux (frames come from Qt's own rendering, no screen capture needed). For longer or interleaved recordings use qt_record_start / qt_record_stop.

Input Schema

NameRequiredDescriptionDefault
fpsNo
refNo
indexNo
expandNoauto
describeNo
durationNo
instanceNo
max_widthNo
min_scoreNo
class_nameNo
object_nameNo
window_titleNo
search_fieldsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

There are no annotations, so the description carries the full burden, and it mostly does: the app keeps running while recording, you can interact concurrently, it works on Windows and Linux, and frames come from Qt's own rendering rather than screen capture. It does not say where the GIF is written or how large the output may be, but the output schema covers return values.

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?

Three sentences that are front-loaded. The scoping sentence comes first and the alternative-tool pointer comes last. The widget identification listing is a dense parenthetical but earns its place because it points the agent to the sibling's semantics.

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?

For a 13-parameter recording tool with an output schema and no annotations, the description conveys the recording semantics, the platform support and the target-identification rules. The gaps (fps, expand, max_width, min_score) are tuning knobs whose defaults are probably acceptable, but an agent still has to guess what they do.

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 0% across 13 parameters, so the description must compensate. It names and explains duration and the identification parameters (ref, describe, window_title, class_name, object_name), but leaves fps, index, expand, max_width, min_score, search_fields and instance unexplained, so it compensates only partly.

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 description opens with a concrete verb+resource: 'Record an animated GIF of a window or widget for `duration` seconds.' It also distinguishes itself from the siblings qt_record_start/qt_record_stop for longer or interleaved recordings.

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?

It states exactly how to identify the target ('identify the widget exactly like qt_screenshot', defaulting to the active window) and names the alternative tools plus the condition that selects them. An agent does not need to infer when to use this rather than qt_record_start.

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