Skip to main content
Glama

Contact Sheet

lab_contact_sheet
Idempotent

Build a contact sheet for a generated clip — N frames spread evenly over its runtime, tiled into ONE image — and show it. This is how a clip gets judged at all: MCP has no video content type, so without a sheet a clip is just a URL and a promise. It is also the fastest way to SEE camera drift: measured 2026-08-04, the wander in one clip was a PSNR number until frames sat side by side. The sheet is cached on the video row — a second call returns the same URL without re-rendering (pass force to redo it). Rendering downloads the clip and runs ffmpeg, so the first call takes a few seconds.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
colsNoGrid columns (default 3)
rowsNoGrid rows (default 3). cols x rows = number of frames
forceNoRe-render even if a sheet already exists
widthNoTotal sheet width in px (default 1280)
previewNoAttach the sheet itself, downscaled to 512px, instead of only its URL. Default true — showing it is the whole point; pass false to get just the URL.
video_idYesGenerated video id (from lab_animate/lab_job_status) — positive integer as string

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses caching on the video row with same-URL reuse, the force escape hatch, and the cost model ('downloads the clip and runs ffmpeg, so the first call takes a few seconds'). The readOnlyHint=false/idempotentHint=true pair is consistent with the described render-and-cache behavior.

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?

Front-loads the purpose, then rationale, cache behavior, and latency in a logical order. It is slightly long due to rhetorical asides ('just a URL and a promise', the PSNR anecdote), but each sentence still carries usable information.

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 explains what comes back (a tiled image and/or its URL), the caching semantics, and the latency to expect. An agent has everything needed to call it and set expectations for the first vs. subsequent calls.

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 100%, so cols/rows/width/preview are already fully documented in the schema. The description adds only a framing detail ('N frames spread evenly') and restates force's re-render purpose, which the schema already covers, so the baseline 3 is appropriate.

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 ('Build a contact sheet for a generated clip') plus the exact composition rule ('N frames spread evenly over its runtime, tiled into ONE image'). This clearly separates it from siblings like lab_render_frames or lab_letzter_frame, which produce different frame artifacts.

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?

Gives strong when-to-use motivation ('MCP has no video content type, so without a sheet a clip is just a URL and a promise') and a second use case (spotting camera drift). It does not name the sibling tools an agent might otherwise pick, so routing is by inference rather than explicit exclusion.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources