Skip to main content
Glama

Check a video

check_video

Checks a rendered video's size, frame rate, length, black/still/silent stretches, loudness, peaks, and beat-synced cuts, then writes pass/fail reports and preview images for fixes.

Instructions

Checks any rendered video by measuring it: size, frame rate, length, black, still and silent stretches, loudness, peaks, and whether the cuts land on the beat. Writes CHECK.md (pass or fail, with every check), check.json, sheet.png (a frame from each shot) and wave.png. A failed check is a normal result here; read CHECK.md for what to fix. (launch-film 0.2.0, on this machine.)

Input Schema

NameRequiredDescriptionDefault
cuesNoThe music's cues.json (from fit_music), to check the cuts land on the beat.
cutsNoThe cuts in seconds, like 3.2,7.5, or a JSON file, when the video has no timeline from launch-film.
filmYesThe video to check, like film.mp4.
lufsNoThe integrated loudness it should have, like -14 (give or take 1 LU).
allowNoStretches meant to hold still, black or silent, in seconds, like 27-30,0-0.5.
expectNoThe size and frame rate it should have, like 1920x1080@30.
out_dirNoFolder to save into, absolute or relative to /app. Default: {dir:film}/check.
secondsNoThe length it should have: 30 (give or take half a second) or a range like 28-32.
wait_secondsNoHow long to wait for the result before returning a job_id to wait on. 45 is safe for clients that stop a tool call after 60 seconds.

Output Schema

NameRequiredDescriptionDefault
kitYes
toolYes
filesNo
folderNoWhere the kit saved its files.
job_idYes
passedNoFor checks: whether the check passed.
statusYes
exit_codeNo
last_lineNoWhat the kit was doing last.
next_actionNo
elapsed_secondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, consistent with a tool that writes files. The description adds valuable behavioral detail beyond annotations: it specifies the exact output files (CHECK.md, check.json, sheet.png, wave.png) and clarifies that a failed check is a normal outcome, not an error. It does not describe overwrite behavior or rate limits, but the core side effects are disclosed.

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 front-loaded with the core action and measurements, then lists outputs and usage guidance. It is dense but well-organized; the parenthetical version/machine note is minor and does not distract. Every sentence contributes useful information.

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?

Given the presence of an output schema and 100% schema description coverage, the description need not explain return values. It covers what the tool measures, what files it writes, and how to interpret failures, which is sufficient for an agent to invoke it correctly. The only minor gap is explicit guidance on when to run it relative to the render step.

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 description coverage is 100%, so the input schema already explains every parameter in detail. The description adds little semantic meaning beyond what the schema provides, aside from implicitly linking the 'cues' parameter to the beat-checking behavior. Baseline 3 is appropriate when the schema does the heavy lifting.

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 states a specific verb ('Checks') and resource ('any rendered video') and enumerates the exact measurements it performs: size, frame rate, length, black/still/silent stretches, loudness, peaks, and beat-cut alignment. This clearly distinguishes it from siblings like render_launch_film or plan_launch_film.

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

Usage Guidelines4/5

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

It gives clear context that this is for rendered videos and that a failed check is a normal result, directing the agent to read CHECK.md for fixes. However, it does not explicitly name when to use this versus alternatives (e.g., after render_launch_film), leaving that to inference from the tool name and sibling set.

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