Skip to main content
Glama

frames

Extract evenly spaced frames from a demo video into a specified folder for review. Provide a project directory, output path, frame width, source type, and interval to generate frame snapshots.

Instructions

Dump evenly spaced PNG frames from the final video (or the raw take) into output/frames/ for review — look at them instead of hand-running ffmpeg -ss. Needs only the video (no key). Returns a jobId immediately — poll job_status. Rejects if another job is running.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dirYesdemo project directory — pass an absolute path
outNooutput directory (default <dir>/output/frames)
widthNoframe width in px, aspect kept (default 640)
sourceNofinal = output/final-demo.mp4 (default); raw = the latest raw file; take = the whole recorded take, across the raw files a resumed take is spliced from
everySecNoseconds between frames (default 3)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
jobIdYes
statusYes
demoDirYesresolved absolute demo directory
logFileYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.14.1

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the async job behavior, the rejection when another job is running, and the lack of authentication requirement. It does not mention potential overwriting of existing frames or error conditions, but the key behaviors are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose and followed by usage notes. It is efficient and includes no fluff, making it highly concise.

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 that the tool has an output schema (so return values are defined) and the description covers the core behavior, async pattern, concurrency limitation, and the alternative usage, it is fairly complete. It could mention error handling or file naming, but those are not critical for an agent to call the tool correctly. The description is adequate for this complexity.

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 each parameter is documented in the schema. The description adds a little context by mentioning 'final video (or the raw take)' which relates to the 'source' parameter, and 'output/frames/' which relates to the default 'out' directory. However, it does not add substantial meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool dumps evenly spaced PNG frames from a video into a directory for review, with specific verbs and resources. It does not explicitly differentiate from the sibling tool 'stills', which could serve a similar purpose, so it is clear but not fully distinguishing.

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 explicitly tells when to use it: instead of hand-running `ffmpeg -ss`. It also notes it needs only the video (no key) and describes the async behavior (returns jobId, poll job_status) and the concurrency restriction (rejects if another job is running). This provides clear usage context and alternatives.

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