Skip to main content
Glama

Preview Clip

preview_clip

Render a scoped, cheap MOTION preview — ONLY body.fromSec→body.toSec of the composition (max 60s) at preview quality (capped resolution, lighter encode) through the real render pipeline. THE way to judge motion — a cut, a transition, a component's animation — at full fidelity BEFORE paying for a full render (a still cannot show motion; a full render costs the export). ASYNC: returns a render job; wait_job(kind="render", id=renderId) or a render.completed webhook for the URL. Meters the capture feature, never an exports credit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesPOST /projects/:id/preview-clip body.
projectIdYesprojectId (path).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
errorNoHuman-readable failure message. Pair with `errorCode` for a stable, machine-readable code an agent runner can branch on.
statusNo
listUsdNoA2 money stamp: the metered event's LIST price (USD), stamped at the success terminal (exports for deliverable renders, compose_capture for A8 previews). A plan allowance may zero the actual invoice line — this is the list price, never a Stripe charge. Absent while running, on failure, and for x402 orgs (on-chain receipts). Mirrors the get_usage ledger.
categoryNoFailure taxonomy when status is `error`; null otherwise. `authoring` = deterministic defect in YOUR composition/request — fix it, retrying is futile; `transient` = temporary pipeline/infra failure — safe to retry_render; `internal` = unexpected server fault — retry once then escalate. Mirrors the render.failed webhook's `category`.
progressNoNon-terminal render progress; phase is one of the worker's emitted stages.
warningsNoNon-fatal advisories surfaced at render-CREATE (omitted when none, and on GET — create-time only).
createdAtNo
errorCodeNoStable, machine-readable error code (e.g. `render_pipeline_unavailable`, `render_route_missing`, `render_pipeline_failed`). Null when status is not `error` or unavailable for an older render.
outputUrlNo
retryableNoWhether re-attempting the SAME render can succeed (status `error`); null otherwise. true → call retry_render. false → deterministic (category authoring/internal); fix the composition first — retry_render alone reproduces it. Mirrors the render.failed webhook's `retryable`.
updatedAtNoISO-8601 timestamp of the render's most recent progress update. Compute staleness = now − updatedAt to distinguish a wedged render from a slow one and decide whether to wait, cancel, or retry.
errorDetailsNoStructured failure context — `{ targetUrl?, upstreamStatus?, upstreamCode?, attemptedAt? }`. Surfaced so agent runners can distinguish operator-config issues from upstream-down vs route-missing without parsing `error`.
outputExpiresAtNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare only the generic profile (not read-only, not idempotent); the description supplies what they cannot: it is ASYNC and returns a render job, with two completion paths (wait_job(kind="render", id=renderId) or a render.completed webhook), and it meters the capture feature rather than an exports credit. That is exactly the extra context annotations leave out.

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-loaded with the core scope, then the motivation, then the async contract and billing — a good information order and no filler sentences. The heavy capitalization and em-dash stacking make it denser to parse than necessary, but nothing is redundant.

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?

Output schema exists, so return values need no explanation, and the description still fills the remaining gaps: duration cap, async completion mechanism, and which quota is consumed. For a mutating, job-returning tool with a nested body this is complete enough to call 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 coverage is 100%, so baseline is 3, and the description maps the parameters to their domain role (body.fromSec→body.toSec as a window) while adding a constraint the schema does not encode: the 60s maximum duration. It does not explain compositionId's default/override behavior, which the schema already covers.

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+resource (render a motion preview) with explicit scope: only body.fromSec→body.toSec, max 60s, at capped preview quality through the real render pipeline. It distinguishes itself from sibling tools by name and effect — a still (preview_frame) cannot show motion, a full render (create_render/export) costs an export credit.

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?

Explicit routing: 'THE way to judge motion — a cut, a transition, a component's animation — at full fidelity BEFORE paying for a full render', with the alternatives (still, full render) named and their costs stated. An agent knows exactly when to pick this over the frame/still and full-render paths.

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.