Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

CueFrame

REMOTE · API.CUEFRAME.AI

Turn footage into finished video: reframing, captions behind the subject, motion graphics, renders.

Available components

+3 this week 86 Trust /100

Last scanned (11 hours ago)

Scores higher than 93% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 22516 tokens (~210/item across 107 items; 107 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage93
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 77% of tool parameters carry a description.Partial
  • Structured output schemas are declared (70% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 108 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 0
    • Tool “apply_composition” rewrote its description, which is the text the model reads security
    • Tool coverage: 82% → 77% ▼ functional
    • Server version: 0.13.1 → 0.13.4-ea20261031.1 functional
    • New tool “acquire_registry_item” functional
    • New tool “create_template_package_upload” functional
    • New tool “describe_tool_input” functional
    • New tool “export_template_package” functional
    • New tool “get_registry_acquisition” functional
    • New tool “get_registry_item” functional
    • New tool “get_template_job” functional
    • New tool “get_template_package_download” functional
    • New tool “import_template_package” functional
    • New tool “refresh_registry_snapshot” functional
    • New tool “search_registry_items” functional
  • 30 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_composition” rewrote its description, which is the text the model reads security
    • Tool “preview_frame” rewrote its description, which is the text the model reads security
    • Tool “apply_composition” now declares an output schema ▲ functional
    • Tool “get_composition” now declares an output schema ▲ functional
    • New prompt “cueframe-reference-video” functional
    • Server version: 0.12.0 → 0.13.1 functional
    • New tool “compare_frames” functional
    • “apply_composition” added an optional parameter “response” cosmetic
    • “get_composition” added an optional parameter “clipIds” cosmetic
    • “get_composition” added an optional parameter “dependencyKeys” cosmetic
    • “get_composition” added an optional parameter “response” cosmetic
    • “wait_job” added an optional parameter “imageIndices” cosmetic
  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 24 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://api.cueframe.ai/v1/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.cueframe.ai CN=WE1,O=Google Trust Services,C=US 10 Oct 2026 8 Jan 2027 ECDSA 256 ECDSA-SHA256 45851ae969a634b4137a79e2bed24c83
SANs: api.cueframe.ai
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.cueframe.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 1814, 3799 8, 8 Verified
cueframe.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://api.cueframe.ai/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://api.cueframe.ai/.well-known/oauth-protected-resource"

Protected resource metadata

Document https://api.cueframe.ai/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://api.cueframe.ai/v1/mcp
Authorisation server https://api.cueframe.ai

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.cueframe.ai/v1/mcp Verified 200
http (plaintext) http://api.cueframe.ai/v1/mcp HTTPS enforced 301 https://api.cueframe.ai/v1/mcp
MCP tools · 107 exposed · ~18,710 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_account ~339

ORIENT FIRST — show THIS key's account before you spend a metered call: the org it is bound to, the current plan, a per-feature entitlements map, and per-call cost ceilings. READ `balance`, NOT `included`. CueFrame is credit-funded: rendering (entitlements.exports), generation (generate), preview stills (compose_capture), the judge (compose_verify) and the Director (compose) have NO separate per-plan allowance — they all spend one shared wallet, named in `fundedBy` (`credits`; generation is metered in provider-cost units against that wallet). Each `balance` restates that ONE wallet in that feature's own unit at `creditCost` credits per unit, so they are alternative ways to spend the same money, not four budgets. Each entitlement also carries `listUsdPerUnit`: the dollar quote for ONE unit before you call (0 = a plan grant that draws no credits, e.g. resource_import — stock search + import are free; null = not quotable up front). Check the requested cost against the balance. For generation, also check generationLimit: free accounts have a separate provider-cost cap even with a positive wallet. A billing_required error with reason free_generation_cap requires a credit-pack purchase through normal checkout. `included:false` means the plan genuinely lacks the feature. Every new org starts with a free credit grant, so an account with an empty usage history can still render, generate, preview and score. costCeilings.generateMediaUsdPerCall is the generate_media per-call USD cap. No args — identity is resolved from your key (never echoed from input).

Input schema present but exposes no named parameters.

NameTypeReqDescription
billingConfiguredboolean–false = billing is not configured in this environment, so plan/entitlement values are best-effort and may be null (unknown), not authoritative.
costCeilingsobject–Discoverable per-call cost ceilings so an agent can price/right-size a request before a guaranteed 402.
displayNamestring|null–Org/customer display name from the billing record; null when not set or unknown.
entitlementsobject–Per-feature entitlements keyed by featureId. Covers the billing-gated capabilities: `exports` gates create_render AND generate_media output; `compose` gates compose; `brand_kits` gates create_brand_k…
generationLimit––Separate lifetime generation cap before a credit-pack purchase. Wallet balance is still shared; generation must also fit this remaining provider-cost allowance. null means unknown.
orgIdstring–The org this API key is bound to — resolved server-side from the Authorization credential, NEVER from the request body/query.
plan––The customer's current base plan/tier. null = unknown (billing not configured, or no active plan resolvable yet).
surfacesobject–The browser URLs that actually exist, so an agent asked to "show me" can hand the user a real link instead of guessing one from an id. A null means the surface is not built, not that it is hidden fro…

No examples provided.

get_brief ~40

Read a brief by id — the persisted intent plus its current quote (compose + estimated render).

NameTypeReqDescription
briefIdstringyesbriefId (path).
NameTypeReqDescription
audiencestring––
audioobject––
beatsarray––
captionstring––
captionsobject––
createdAtnumber––
ctastring––
durationSecnumber–Target output duration. HONOR-OR-REFUSE: compose validates it against the beat-source window (±1.5s) and refuses a brief it cannot honor.
exclusionsarray––
formatobject––
gatesobject––
goalstring–What the video must accomplish.
hookstring––
idstring––
kindstring–authored = create_brief; clip = minted by suggest_briefs from an AI clip suggestion.
localestring–Output language (BCP-47 tag, e.g. 'es-419'): ALL on-screen copy + captions.
motionStyleobject––
mustIncludesarray––
namestring––
platformstring––
projectIdstring––
quoteobject––
referencesarray––
seededGraphicsarray–Client-authored graphic clips the Director must carry VERBATIM: seeded into the design loop's base composition as LOCKED clips (never re-authored, never discarded).
sourceSuggestionIdstring–kind:'clip' provenance — the suggestion this Brief was minted from.
tonestring––
updatedAtnumber––

No examples provided.

get_checkpoint ~170

Read a checkpoint packet — the durable approval unit a held compose pauses at (wait_job reports awaiting_input with {checkpointId, stage, version}). Carries the stage artifact, presigned storyboard stills (REVIEW THE EVIDENCE, not raw JSON), critic verdicts, the money triple {thisStepUsd, jobSpendSoFarUsd, estimatedJourneyTotalUsd} to relay to your human, and the recorded decision once resolved. When the Brief's gates set reviewMode:'hosted' the packet also carries reviewUrl — a browser review page where your human decides directly (relay THAT link instead of raw stills; you learn the decision via checkpoint webhooks / wait_job). Answer an awaiting packet with resume(checkpointId, ...).

NameTypeReqDescription
checkpointIdstringyescheckpointId (path).
NameTypeReqDescription
artifact––The stage artifact under review: the locked ComposePlan at content; the composition wire shape at layout/motion; the judged composition snapshot on kind:'score'.
briefIdstring––
composeJobIdstring––
createdAtnumber––
criticVerdicts––Per-criterion scores + critique from the design loop / judge, incl. lock_violation entries.
decision––The recorded decision {decision, comments?, globalNote?, decidedAt} once resolved.
idstring––
kindstring––
projectIdstring––
quoteobject––
reviewModestring–How this packet is decided (from the Brief's gates). 'hosted' = the review PAGE captures the decision; absent/'agent' = the decision flows back through the driving agent.
reviewUrlstring–Hosted review-page URL (present when reviewMode is 'hosted') — a human decides from this link, no account or agent session; the recorded decision rides the SAME resume rail, and the agent learns of i…
revisionCycleinteger–Revise cycles this gate has consumed. The brief quote states the included count (revisionCyclesIncluded); beyond it, resume(revise) is refused with a typed error.
stagestring––
statusstring––
stillUrlsarray–Presigned storyboard/eval stills — the packet's visual evidence (may be GC'd by the retention sweep after the job goes terminal; the decision record is immortal).
updatedAtnumber––
versioninteger––

No examples provided.

get_component_source ~202

Read an exact component source as complete JSON. Supply sourceVersionId from the selected catalog card to read that immutable revision, retaining sourceSnapshot with its complete versioned definition, manifest and template beside its exact pin and schema metadata. For an explicitly selected builtin, also supply builtinCollection:'native'|'curated-definitions' and its exact sourceVersionId; without builtinCollection resolution is scoped to the authenticated org. An unavailable exact pin refuses; never retry a head or another scope. To fork, keep the version-4 snapshot whole, change its componentId (the template root's data-composition-id too) and template, and send it to create_component. Builtins always require an exact collection and pin; ID-only builtin reads are refused. Declared slots are bound per placement in execution.assets, never caller params.

NameTypeReqDescription
builtinCollectionstring––
componentIdstringyescomponentId (path).
sourceVersionIdstring––
NameTypeReqDescription
componentVersionIdstring–Exact owned source history row; equal source hashes can have different ancestry.
descriptionstring––
durationInFramesnumber––
ejectedFromstring––
examplesarray–Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for b…
idstring––
manifest–––
metadataStatusstring–Historical source-only reads omit unavailable discovery name/description instead of borrowing current metadata.
namestring––
originstring––
propSchemaobject––
registryProvenanceobject–Server-derived acquisition ancestry for this exact source row; pending is not captured qualification or portable closure.
sourcestring––
sourceSnapshot––Immutable source snapshot: a version 4 template, a retired version 3 TSX module, or the historical version 2 source of a component stored before versioned sources (read-only; it never executes). sour…
sourceVersionIdstring–Exact immutable source pin; distinct from bundle revisions.
tokensobject––
tsxSourcestring––

No examples provided.

get_composition ~846

Read a compact structural composition view by default, preserving observed ETag, authority metadata, clip timing, token values and source pins without large HTML bodies. Ordinary exact-ETag reads can omit includeDependencies. With includeDependencies=true, compact returns a dependency key/size index, not executable tokens; these tokens can contain full sources. Request explicit dependencyKeys for exact selected tokens, or response:"full" for all tokens. Selection does not establish a sufficient operation basis. Use clipIds:[id] with response:"full" for complete exact selected sources; unknown IDs are refused. Use response:"full" without clipIds for the original full backend JSON. Local response/clipIds/dependencyKeys arguments never reach the backend. READ BACK a composition as JSON — the edit itself: tracks, clips, card HTML, reframe segments, captions, markers, format. This is what create_render encodes, so it is also what you hand to validate_composition (which needs a full inline composition body), what you diff after an edit, and what you archive/share so someone else can re-render the SAME video. Read-only and free. Authoring stays op-based (apply_composition) — do not round-trip this object back as a write. A composition too large for routine model context can be read selectively with clipIds and response:"full"; the compact view explicitly identifies omitted source bodies. Defaults to the project's ACTIVE composition; pass `compositionId` to read a specific one (the same id apply_composition takes as `composition_id`, and preview_frame / create_render take as compositionId) so an A/B variant can be read back, not just written. The result includes the exact HTTP etag string; copy it to apply_composition.body.if_match (the numeric revision is not an ETag). In a compose session this reads the session's scratch, the composition its edits, previews and renders target. Pass includeDependencies="true" on a v1 guarded endpoint to read composition_id, revision and d…

NameTypeReqDescription
clipIds––Read only these exact clip IDs. With response full their complete sources are returned. Unknown and duplicate IDs are refused. Omit for all clips.
componentExecutionVersions––The component execution versions this reader accepts, one parameter per version: 3, or 3 and 4 (native placements). Absent readers accept only the historical protocol.
compositionIdstring–Read a SPECIFIC composition instead of the project's active one. Omit it and the active composition is returned. Pairs with `composition_id` on the apply op: an edit you can make to a second composit…
dependencyKeys––Select these exact existing dependency keys from includeDependencies=true. Tokens are returned byte-for-byte; unknown or duplicate keys are refused. This selection does not establish that the basis i…
includeDependenciesstring–Return the immutable composition identity, project revision and shared v1 dependency expectations alongside the composition.
projectIdstringyesprojectId (path).
response––MCP response view. Default compact omits repeated source bodies. Full returns the complete backend receipt or requested sources. This does not change the saved composition.
session_idstring–Compose-session id: read that session's SCRATCH composition (what the session has been editing) instead of the active one. Mutually exclusive with `compositionId`. An unknown, foreign or scratch-less…

Structured output declared, but exposes no named fields.

No examples provided.

get_media_context ~157

Fetch bounded authoring context for a media item: dimensions/thumbnail, compact face roster, transcript counts/sample, temporal grids, and fact readiness. Transcript and word-grid counts cover one page only (default 20 utterances); pass transcript.data.pagination.nextCursor as after to get_media_context for the next context page, or use get_transcript for exact paginated word timings.

NameTypeReqDescription
afterstring–Zero-based utterance cursor from transcript.data.pagination.nextCursor.
limitinteger–Transcript utterances per context page (default 20, maximum 100).
mediaItemIdstringyesmediaItemId (path).
projectIdstring–Read the item through this project, for media shared into it.
NameTypeReqDescription
audioRole––DECLARED audio role of this asset (audio-substrate P0): 'vo' (narration), 'music' (bed that ducks under speech), 'sfx' (one-shot hit), 'ambience' (a bed that HOLDS under VO — never ducks). Author the…
beatGrid––The MUSIC-role rhythm grid (audio-substrate MVP). Present only for a music bed that carries a computed beat grid; null otherwise. For a music-driven film, cut on these beats (transition midpoints on…
durationSecnumber|null––
envelope––Envelope evidence (audio-substrate P0). `envelopeClass` is always present when an envelope exists (the SFX pack carries it); the numeric probe stats are present only when an audio probe has run. Null…
facesobject––
factsarray–Derived facts about this source (subject tracks, mattes): what has been computed, its status, and what it was billed. Same shape as GET /media/{id}/facts.
heightnumber|null––
mediaIdstring––
offersarray–Enhancements this source does not have yet, with a server quote. Same shape as GET /media/{id}/facts. Mattes are quoted per-window via POST /media/{id}/matte, never here.
thumbnail––Presigned processing thumbnail (~1 week) — the footage at a glance. For stills at chosen timestamps, use preview_frame with a one-clip composition over this media.
transcriptobject––
widthnumber|null––
wordGrid––The VO-role rhythm grid for this bounded transcript page. Present when a transcript exists; null otherwise. Check pagination.hasMore before treating it as a complete voice spine.

No examples provided.

get_media_facts ~212

Read prepared subject tracks and behind-subject mattes for one media item. For an exact readiness check, pass kind + startSec + endSec together using the same SOURCE window sent to prepare_media; exact.state is pending | ready | failed | available | unavailable. If subjectTrack was prepared without intent, omit all three filters and check the whole-source subjectTrack in facts instead. Wait for the required fact to be ready before preview_frame / score_composition.

NameTypeReqDescription
endSecnumber–Source-out of the clip's trim, in seconds. Must be sent WITH startSec.
kindstring–Resolve one exact editor prerequisite. Requires startSec and endSec; the response includes the server-selected `exact` result.
mediaItemIdstringyesmediaItemId (path).
startSecnumber–Source-in of the clip's trim, in seconds. Must be sent WITH endSec — one without the other is a 400, never a silent whole-source default.
NameTypeReqDescription
exactobject–The server-selected fact or offer for one exact source window. Present when kind, startSec, and endSec are supplied; clients consume this instead of recreating the fact hash.
factsarray––
offersarray–What is NOT yet present and could be bought. A `matte` offer appears ONLY when the request carried `startSec`+`endSec` (the clip's SOURCE window) — a matte's price is a function of its duration, so t…

No examples provided.

get_profile ~114

The org's legible taste in ONE read: brand kits, registered critics (the machine-checkable standard both the Director's gates and score_composition enforce), their reference media (presigned thumbnails), the recent checkpoint-decision log, and the learned `taste` (style preferences saved with remember_taste). Read this BEFORE composing for an org you haven't worked with — it is the house style. Learned taste is advice: the current request, brief, project, brand kit, exclusions and critics take precedence; name any conflict.

Input schema present but exposes no named parameters.

NameTypeReqDescription
brandKitsarray–The org's brand kits (bind one to a project via update_project). `audio` carries the brand sound kit when set.
criticsarray–Registered critics — run in the Director's gates AND score_composition.
recentDecisionsarray–The last recorded checkpoint decisions — the raw log learned taste is saved from.
referencesarray–The union of critic reference media — the org's visual standard, with provenance.
tastearray–Learned style preferences. Advice only: the current request, its brief, the project and the brand kit, exclusions and critics all take precedence.

No examples provided.

get_registry_acquisition ~110

Recover an organization-owned immutable acquisition receipt, exact raw/transformed file descriptors, bounded source text and an expiring archive link. Retain the bundle digest and distinguish original upstream bytes, installer transformations and later CueFrame adaptations. Binary/large files are explicitly identified; omitted text is not empty source. Foreign live references refuse. Saved provenance supports owned forks; it never grants compatibility, ownership of another organization’s objects, or a fresh rendered preview.

NameTypeReqDescription
receiptIdstringyesreceiptId (path).
NameTypeReqDescription
archiveobject––
candidateobject––
filesarray––
receiptRefobject––

No examples provided.

get_registry_item ~130

Inspect one exact external registry item manifest, including examples. Supply all snapshot fields returned by discovery together, or omit all to inspect current. Unknown upstream metadata is preserved. Inspect actual source and requirements before adaptation; an upstream poster/movie is unverified reference evidence. This read never invokes add/init or executes downloaded source. An example can be inspectable while its init acquisition remains explicitly unsupported.

NameTypeReqDescription
cliArtifactSha256string––
inventorySha256string––
namestringyesname (path).
registryOriginstring––
sourceCommitstring––
NameTypeReqDescription
acquisitionobject––
admissionobject––
declaredRequirementsobject––
deprecationobject––
descriptionstring––
itemTypestring––
kindstring––
licenseEvidenceobject––
manifestSha256string––
namestring––
preview–––
rawMetadataobject––
snapshotobject––
sourceobject––
stabilitystring––
tagsarray––
titlestring––
variablesobject––

No examples provided.

get_render ~175

Read ONE render's record without waiting on it: status, progress while it runs, outputUrl + outputExpiresAt once complete, the typed failure (errorCode / category / retryable) if it failed, and WHAT RENDERED — compositionId (the composition it froze), format (aspect/fps/resolution it encoded at), engine, createdAt / completedAt, outputDurationSec, and the preview window for a preview_clip. Free, read-only, instant — use it to audit or correlate a past render (which composition, when, how long) where wait_job would block; wait_job remains the way to block until a running render finishes. An expired outputUrl is refreshed with refresh_render_url.

NameTypeReqDescription
projectIdstringyesprojectId (path).
renderIdstringyesrenderId (path).
NameTypeReqDescription
category––Failure taxonomy when status is `error`; null otherwise. `authoring` = deterministic defect in YOUR composition/request — fix it, retrying is futile; `transient` = temporary pipeline/infra failure —…
completedAtstring|null–ISO-8601 instant the render reached its terminal status (complete, error or cancelled); null while it runs. Pair with createdAt for the wall time.
compositionIdstring|null–The composition this render froze at create time (the project's active one, or the compositionId the request named). Null on renders minted before this was recorded.
createdAtstring––
engine––The render engine the row was minted for. Null on rows minted before the engine was recorded.
errorstring|null–Human-readable failure message. Pair with `errorCode` for a stable, machine-readable code an agent runner can branch on.
errorCodestring|null–Stable, 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.
errorDetails––Structured failure context — `{ targetUrl?, upstreamStatus?, upstreamCode?, attemptedAt? }`. Surfaced so agent runners can distinguish operator-config issues from upstream-down vs route-missing witho…
format––The resolved output format the render was encoded at (aspectRatio, fps, resolution): the frozen composition's, after any create-time scale override. Null on legacy rows.
idstring––
listUsdnumber–A2 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…
outputDurationSecnumber|null–The output's length in seconds (the composition timeline's, or the preview window's), as billed. Null on legacy rows.
outputExpiresAtstring|null––
outputUrlstring|null––
preview––The scoped preview window when this is a preview_clip render; null for a full deliverable.
progressobject–Non-terminal render progress; phase is one of the worker's emitted stages.
retryableboolean|null–Whether 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_re…
statusstring––
updatedAtstring–ISO-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.
warningsarray–Non-fatal advisories surfaced at render-CREATE (omitted when none, and on GET — create-time only).

No examples provided.

get_template ~145

Read a saved organization template by id or a known public catalog template by slug. The answer is a summary: the media and value parameters with their kinds and options, presets with their values and brand kit, the brand kit, rubric, components (id, version, asset slots) and an outline of the tracks and clips; never component sources (read one with get_component_source, or pass full: true for the whole document). Use the exact reference with start_template or apply_template. Do not invent a slug from a component-library card.

NameTypeReqDescription
full––Return the whole template document, component sources included, instead of the summary.
templatestringyestemplate (path).
NameTypeReqDescription
createdAtstring––
documentobject–A CueFrame template document (kernel TemplateDocument): v: 1, slug, name, composition with {{name}} references, parameters, components by value, an optional brandKit, presets, rubric, gallery and pro…
documentSha256string––
fromCatalogboolean––
idstring––
namestring––
slugstring––
updatedAtstring––
versioninteger––

No examples provided.

get_template_job ~120

Read exact durable template preparation status. For library-import or library-export, ready means a saved organization template and destination-owned package receipt; projectId remains null. Preserve templateId/templateVersion, documentSha256 and package receipt; refresh its URL with get_template_package_download. Export sourceProjectId identifies the original saved project; projectId remains null. For ordinary instantiation/apply, read the returned projectId. Failed/cancelled states include the retained reason. Do not treat preparing as successful import.

NameTypeReqDescription
jobIdstringyesjobId (path).
NameTypeReqDescription
createdAtstring––
documentSha256string|null––
errorCodestring––
errorMessagestring––
jobIdstring––
modestring––
packageobject––
projectIdstring|null––
sourceProjectIdstring––
stagestring––
statusstring––
templateIdstring––
templateRefstring––
templateVersioninteger––
updatedAtstring––

No examples provided.

get_template_package_download ~103

Refresh the short-lived download URL for an exact organization-owned portable template package receipt. Supply the receiptId from a ready import/export template job. Server verifies retained immutable package/document authority; never pass bucket keys or arbitrary archive URLs. Project-bound editors must also pass the exact ready export jobId for their bound source project and this receipt; an unrelated job or receipt refuses.

NameTypeReqDescription
jobIdstring––
receiptIdstringyesreceiptId (path).
NameTypeReqDescription
archiveBytesinteger––
archiveSha256string––
documentSha256string––
expiresAtstring––
receiptIdstring––
urlstring––
warningsarray––

No examples provided.

get_transcript ~123

Read exact source-time transcript words in bounded utterance pages. Word start/end values are seconds from the source media start. Default limit is 20; pass pagination.nextCursor as after for later pages. The formatter omits the unbounded fullText duplicate.

NameTypeReqDescription
afterinteger–Zero-based utterance cursor returned as pagination.nextCursor.
beforeinteger–Zero-based utterance cursor for a backward page. Do not combine with after.
limit––Utterances per page.
mediaItemIdstringyesmediaItemId (path).
NameTypeReqDescription
dataarray––
fullTextstring––
languagestring|null––
mediaItemIdstring––
paginationobject–Cursor pagination metadata.
utterancesarray––

No examples provided.

get_usage ~228

The A2 usage ledger: every metered billing event newest-first with attribution — featureId, amount, the project/job that produced it, and the event's LIST price in USD (a plan allowance may zero it on the invoice). Answer "what did project X cost this period?" with a query instead of summing your own quotes. Filter by projectId, jobId, and/or a [from, to) epoch-ms window. Requires the billing:read scope.

NameTypeReqDescription
afterstring–Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.
frominteger–Period start, epoch milliseconds, INCLUSIVE.
jobIdstring–Only events produced by this job — how to answer "did my failed render post a charge?" for one run.
limitinteger–Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.
projectIdstring–Only events attributed to this project.
tointeger–Period end, epoch milliseconds, EXCLUSIVE.
NameTypeReqDescription
dataarray––
paginationobject–Cursor pagination metadata.

No examples provided.

import_media ~149

Import a media item into your library from a public URL — the agent-friendly ingest path (single call, no upload protocol). Pass url (https) + filename (+ optional contentType). Returns { id, status:"importing" }. Processing is async: call wait_job(kind="media", id=mediaItemId), or register a webhook (create_webhook on media.completed — status: complete|failed rides the payload). Use the returned id with get_media_context, suggest_briefs, or as a composition source.

NameTypeReqDescription
bodyobjectyesPOST /media/import body.
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
NameTypeReqDescription
idstring––
statusstring––

No examples provided.

import_resource ~233

Import a stock candidate (candidateId from search_resources) into a project as an ORG-OWNED media item — provider/externalId/license provenance preserved, bytes deduped across orgs. Pass projectId + candidateId. Returns { id, status:"importing"|"ready" }; processing is async — call wait_job(kind="media", id=mediaItemId), then use the returned id as a composition source. Gated on the resource_import plan feature (402 billing_required if your plan lacks it). COST: 0 credits — search and import are both free for a keyed caller (get_account → entitlements.resource_import.listUsdPerUnit is 0); imported bytes count toward the storage gauge. 422 candidate_mismatch if the candidate expired — re-run search_resources.

NameTypeReqDescription
bodyobjectyesPOST /resources/import body — stock candidate lane { projectId, candidateId } OR curated pack lane { kind:"sfx-pack"|"music-pack", id }.
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
NameTypeReqDescription
idstring––
statusstring––

No examples provided.

import_template_package ~135

Import an uploaded portable template package using only uploadId and idempotencyKey. The reservation binds archive bytes and ownership; never supply storage keys, document bodies or provenance assertions. Optional destinationSlug/name creates an explicit fork. Updating an existing slug requires both expectedVersion and expectedDocumentSha256. Returns a durable library-import job; use get_template_job until ready. Read its destination templateId/templateVersion and package receipt. Organization-library operation; project-bound editor credentials are refused.

NameTypeReqDescription
bodyobjectyes–
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
NameTypeReqDescription
createdAtstring––
documentSha256string|null––
errorCodestring––
errorMessagestring––
jobIdstring––
modestring––
packageobject––
projectIdstring|null––
sourceProjectIdstring––
stagestring––
statusstring––
templateIdstring––
templateRefstring––
templateVersioninteger––
updatedAtstring––

No examples provided.

list_briefs ~166

List briefs. DEFAULT shows human-authored briefs only; kind:"clip" shows the machine-minted clip briefs (suggest_briefs output), kind:"all" shows everything. Each carries its quote.

NameTypeReqDescription
afterstring–Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.
kindstring–Which briefs to list. `authored` (default) = human-authored only; `clip` = the machine-minted clip briefs from suggest_briefs; `all` = both.
limitinteger–Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.
projectIdstring–Scope to one project. Omit for every brief in the org.
NameTypeReqDescription
dataarray––
paginationobject–Cursor pagination metadata.

No examples provided.

list_catalog ~765

Use projection:'component-library' for the unified source-free library page, returned as complete JSON with exact scoped definition/preset/recipe cards and pagination. Choose origin:'builtin' for the maintained builtins or origin:'library' for the authenticated serving home; use libraryKind, category, q, limit and after to filter/page. Preserve each card identity.scope and identity.revision, its source/definition pin or exact recipe document identity; same names/IDs in different scopes remain distinct. Resolve the selected exact source with sourceVersionId (plus builtinCollection for an explicitly selected builtin), never a latest-head or another-home lookup. Presets identify their exact presetVersionId, definition pin and historical document witness; recipes identify their complete exact document and member source pins. This projection contains no source bodies or legacy thumbnail substitution. Omit projection for the historical catalog protocol below. DISCOVER WHAT TO BUILD WITH — list the component catalog: the one built-in primitive (heroText, the behind-subject overlay) plus your org-installed components. Desktop also includes bundled kind:'component-package' entries: these are complete reusable authored packages; insert them with the desktop apply_template tool using placement.template and explicit insert.startTime/idPrefix, media bindings and parameter values. Do not pass their ids to clip.add, get_component_source, or cueframe://component resources. Their draft status does not certify visual review or licensing. For hosted builtin preset/recipe cards, call resolve_builtin_component with the exact collection, id and revision, then apply_template with template:<builtin id> and body:{projectId,documentSha256,insert:{startTime,idPrefix},...}. Hosted tool request fields live under body; desktop tool shapes may differ. The agent-safe default page is 20 entries; use pagination.nextCursor as `after`, or narrow with category, kind, tier, useCase, mood, q, or intent.…

NameTypeReqDescription
afterstring–Opaque cursor from a previous page's nextCursor (forward-only).
categorystring–Filter to one category bucket (text|effects|transitions|layouts|backgrounds|ui-blocks|scenes).
intentstring–Alias of `q` framed as recommend-by-intent (e.g. intent=intro). Recommend-orders results.
kindstring–Filter by render kind (component|transition|scene).
libraryKindstring––
limit––Page size (1..100). Omit to return the whole filtered catalog in one page.
moodstring–Filter to entries whose mood tags include this value (e.g. cinematic, minimal).
originstring–With component-library projection, builtin selects immutable builtin cards; library selects the authenticated org's exact serving datastore.
projectionstring––
qstring–Free-text match across id/name/description/intent/useWhen/tags/mood. Recommend-orders results.
tierstring–Filter by curation tier (recommended|standard|niche).
useCasestring–Filter to entries whose useCase includes this edit role (e.g. intro, title-over-footage, grade).

No output schema declared.

No examples provided.

list_checkpoints ~150

List checkpoint packets newest-first (filter with composeJobId for one run's v1→vN gate history, or projectId). The version stack with per-version status + decisions IS the review history — nothing is deleted.

NameTypeReqDescription
afterstring–Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.
composeJobIdstring–Scope to ONE compose run — its v1→vN gate history with per-version status and decisions.
limitinteger–Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.
projectIdstring–Scope to everything reviewable in one project.
NameTypeReqDescription
dataarray––
paginationobject–Cursor pagination metadata.

No examples provided.

list_compositions ~67

List every composition (video) in a project, with its format and which one is active. Use a returned compositionId with create_render(compositionId=...) to render a specific video, or apply_composition to edit it.

NameTypeReqDescription
projectIdstringyesprojectId (path).
NameTypeReqDescription
dataarray––

No examples provided.

list_critics ~66

List registered critics: criticId, label, tier (rules|rubric|evaluator), phase, floor, referenceMediaIds. Rubric text / rules / evaluator URLs are write-only — never echoed. Manage with register_critic (upsert) / delete_critic.

Input schema present but exposes no named parameters.

NameTypeReqDescription
criticsarray––

No examples provided.

list_media ~196

List the media in your CueFrame library. Filter a real library with kind (video|audio|image|gif|asset|source|stock), source (upload|generated|import-url|stock), or tag — so you find YOUR footage, not e2e debris. Returns media item IDs and metadata; use an ID with get_media_context, suggest_briefs, or as a composition source.

NameTypeReqDescription
afterstring–Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.
kindstring–Filter to one media kind.
limitinteger–Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.
projectIdstring––
sourcestring–Filter by how the item entered the library.
tagstring–Filter to items carrying this EXACT tag (not a prefix or substring match).
NameTypeReqDescription
dataarray––
paginationobject–Cursor pagination metadata.

No examples provided.

list_plans ~52

List the plan catalog (tiers, intervals, product ids, prices) BEFORE a checkout, so create_checkout requests a real {plan, interval} instead of guessing an id. No args — reads the platform catalog.

Input schema present but exposes no named parameters.

NameTypeReqDescription
billingConfiguredboolean––
plansarray–Every purchasable {tier, interval} and its product id.

No examples provided.

list_projects ~93

List your projects — re-orient in an existing workspace instead of minting duplicates (steady-state entry, A9). Each row carries the id every other tool needs.

NameTypeReqDescription
afterstring–Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.
limitinteger–Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.
NameTypeReqDescription
dataarray––
paginationobject–Cursor pagination metadata.

No examples provided.

list_render_fonts ~230

The fonts the RENDERER can actually draw — read this BEFORE authoring type, not after a refusal. Per family: the exact family name authoring accepts, the weight RANGES a shipped file declares (a static face has min===max; a variable face gives its axis range), the caption default weights, and whether the bytes are bundled or an aliased metric-compatible stand-in. Anything listed here passes validation by construction: it is derived from the same table the font gate refuses by. Two facts worth reading off it — every family's `styles` is ["normal"], because NO bundled family ships an italic FILE (a real italic comes only from a brand-kit font asset), and a weight outside every range is REFUSED, never synthesised. Contrast search_fonts, which searches the GOOGLE catalog and will happily return families the renderer cannot draw. `manifestVersion` identifies this exact face table; record it beside a composition to state what a font choice was validated against. Covers the bundled set only — a brand kit's sealed faces are per-org and per-render. No args, read-only, free.

Input schema present but exposes no named parameters.

NameTypeReqDescription
familiesarray––
manifestVersionstring–Identifies this exact face table. Derived from the table's own content, so it moves when and only when the admitted set moves. Record it beside a composition to state which face table a font choice w…

No examples provided.

list_taste ~68

Read the org's learned taste: whether the owner has it on (`enabled`) and its saved entries, oldest first. While `enabled` is false, do not apply the entries. Learned taste is advice: the current request, brief, project, brand kit, exclusions and critics take precedence.

Input schema present but exposes no named parameters.

NameTypeReqDescription
enabledboolean–The owner's switch. While off, nothing is saved or recalled.
entriesarray––

No examples provided.

list_templates ~93

List this organization's saved templates. Follow pagination.nextCursor with after to read further pages. Public catalog slugs are not enumerated here; read a known public slug with get_template.

NameTypeReqDescription
afterstring–Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.
limit––Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.
NameTypeReqDescription
dataarray––
paginationobject–Cursor pagination metadata.

No examples provided.

new_composition ~207

Create a NEW composition (a new video) inside a project — a project is a workspace that holds many videos. Returns { compositionId, format, etag }. Pass an optional name and format (aspectRatio/fps/resolution); format defaults to the project's compositionFormat. The first composition becomes the project's active default. To author it, seed with apply_composition then compose({ fromComposition: true }) — your authored graphics ride as locked clips, carried verbatim; to render a specific one, pass its compositionId to create_render. (For a reframed sibling in another aspect, use derive_composition.)

NameTypeReqDescription
bodyobjectyesPOST /projects/:id/compositions body — create a new video (composition) in the project. `format` defaults to the project's compositionFormat when omitted.
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
projectIdstringyesprojectId (path).
NameTypeReqDescription
compositionIdstring–The new composition's id: `composition_id` for apply_composition, `compositionId` for preview_frame and create_render.
etagstring–The strong ETag of the empty composition, for If-Match on its first write.
formatobject––

No examples provided.

prepare_media ~236

Prepare the perception artifact an authored edit needs BEFORE sighted review. Pass body.kind="subjectTrack" for face/active-speaker reframing, or body.kind="matte" for a true zPlane:"behind-subject" graphic. Pass body.intent {startSec,endSec} using SOURCE time (the media trim, not timeline time); it is required for mattes and strongly recommended for subject tracks so the prepared fact exactly matches the clip and quote. This is the supported product path — never accept a preview that silently flattens depth or ignores speaker tracking. Returns a fact receipt; with intent, poll get_media_facts using the same kind/window until exact.state is ready; without intent, omit all three filters and find the whole-source subjectTrack in facts until status is ready (failed is terminal). Existing pending/ready facts are reused without another charge.

NameTypeReqDescription
bodyobjectyesPOST /media/:id/facts body.
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
mediaItemIdstringyesmediaItemId (path).
NameTypeReqDescription
alreadyExistedboolean–True when this exact fact was already pending or ready. Nothing was dispatched and nothing will be charged.
factIdstring––
quotedUsdnumber––
statusstring––

No examples provided.

preview_card ~268

Render ONE authored card on its own and SEE it, before placing it in a composition. Pass the same `html` (+ optional `tokens`) you would put in a {kind:"card"} clip; you get the still back as an image. Use this while writing a card — it is the fast loop for catching type that overflows the frame, a headline that collides with a logo, or tokens that did not resolve. Sized to the format you name, so what you see is what that aspect ratio will show. To judge MOTION rather than layout, shell the card with a motion preset and use preview_clip.

NameTypeReqDescription
aspectRatio––Frame to size the card into. Default 9:16 — a card that fits 16:9 often overflows vertical.
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
htmlstringyesThe card markup, exactly as it would appear in a {kind:"card"} clip source.
projectIdstringyesprojectId (path) — the card is rendered inline; nothing is persisted to the project.
tokens––Token substitutions the html references (e.g. brand colours, fonts). Same shape as the clip source `tokens`.

No output schema declared.

No examples provided.

preview_clip ~184

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.

NameTypeReqDescription
bodyobjectyesPOST /projects/:id/preview-clip body.
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
projectIdstringyesprojectId (path).
NameTypeReqDescription
category––Failure taxonomy when status is `error`; null otherwise. `authoring` = deterministic defect in YOUR composition/request — fix it, retrying is futile; `transient` = temporary pipeline/infra failure —…
completedAtstring|null–ISO-8601 instant the render reached its terminal status (complete, error or cancelled); null while it runs. Pair with createdAt for the wall time.
compositionIdstring|null–The composition this render froze at create time (the project's active one, or the compositionId the request named). Null on renders minted before this was recorded.
createdAtstring––
engine––The render engine the row was minted for. Null on rows minted before the engine was recorded.
errorstring|null–Human-readable failure message. Pair with `errorCode` for a stable, machine-readable code an agent runner can branch on.
errorCodestring|null–Stable, 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.
errorDetails––Structured failure context — `{ targetUrl?, upstreamStatus?, upstreamCode?, attemptedAt? }`. Surfaced so agent runners can distinguish operator-config issues from upstream-down vs route-missing witho…
format––The resolved output format the render was encoded at (aspectRatio, fps, resolution): the frozen composition's, after any create-time scale override. Null on legacy rows.
idstring––
listUsdnumber–A2 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…
outputDurationSecnumber|null–The output's length in seconds (the composition timeline's, or the preview window's), as billed. Null on legacy rows.
outputExpiresAtstring|null––
outputUrlstring|null––
preview––The scoped preview window when this is a preview_clip render; null for a full deliverable.
progressobject–Non-terminal render progress; phase is one of the worker's emitted stages.
retryableboolean|null–Whether 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_re…
statusstring––
updatedAtstring–ISO-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.
warningsarray–Non-fatal advisories surfaced at render-CREATE (omitted when none, and on GET — create-time only).

No examples provided.

preview_component ~173

Queue a typed preview artifact for ONE org-installed component — ASYNC: returns a jobId immediately; then wait_job(kind="preview", id=jobId). The preview and production compositor consume the same content-addressed component bundle and verified artifact contract. `body.componentId` selects the component; pass `body.params` to render it with props (the mount's `params`); declared manifest slots are bound separately and reach the scene's `assets`, never params. Admission/runtime/capability failures land on the job terminal with sanitized author-fixable messages. Idempotent per immutable render key.

NameTypeReqDescription
bodyobjectyes–
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
projectIdstringyesprojectId (path).
NameTypeReqDescription
jobIdstring–Poll GET /v1/jobs/{jobId} / wait_job until terminal.
jobKeystring–Deterministic identity of the work (content hash of every input the result depends on). Re-enqueueing the same key returns the same job while it runs; a failed key revives as a fresh attempt.
kindstring–Job family, e.g. `verify` | `preview` | `brand_kit_extract`.
statusstring–running on a fresh/deduped enqueue; succeeded when an identical request already completed. Cancelled is part of the shared status vocabulary; identical cancelled work revives to running.

No examples provided.

preview_frame ~194

Queue durable still-frame evidence for layout/copy judgment. Returns immediately with {jobId, kind:'preview_frame', status}; then call wait_job(kind="preview_frame", id=jobId) for artifact metadata and up to four embedded frame images; fetch failures or payload limits may return fewer. Use wait_job imageIndices to read other original image artifacts from the completed job, at most four indices per call, without rendering again. Repeating the same arguments repeats the same selection. Artifact URLs alone are not observed pixels. The immutable snapshot records geometry, layers, warnings, and whether the target was persisted, inline, or session scratch. A still cannot prove motion — use preview_clip or preview_component for animation.

NameTypeReqDescription
bodyobjectyes–
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
projectIdstringyesprojectId (path).
NameTypeReqDescription
jobIdstring–Poll GET /v1/jobs/{jobId} / wait_job until terminal.
jobKeystring–Deterministic identity of the work (content hash of every input the result depends on). Re-enqueueing the same key returns the same job while it runs; a failed key revives as a fresh attempt.
kindstring–Job family, e.g. `verify` | `preview` | `brand_kit_extract`.
statusstring–running on a fresh/deduped enqueue; succeeded when an identical request already completed. Cancelled is part of the shared status vocabulary; identical cancelled work revives to running.

No examples provided.

refresh_registry_snapshot ~176

Explicitly refresh external registry metadata: resolve moving main once to a full commit, then capture one coherent fixed inventory/manifest snapshot using the qualified client. Pass body:{commandId,expectedSnapshot,expectedRevision}; both expected values are null only for first selection. Preserve the observed snapshotRevision returned by current discovery and the exact snapshot as the CAS witness. Native author sessions inject their existing replay-stable top-level commandId. Stale head/revision refuses rather than rebasing silently. Refresh does not change customer sources, local forks or timeline placements. Preview/variable/dependency metadata changes remain separate, and actual source-byte differences require explicit acquisition before adaptation, review and guarded adoption.

NameTypeReqDescription
bodyobjectyes–
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
NameTypeReqDescription
commandIdstring–Create with boundedCommandId(ulid(), digest) from @cueframe/studio-contracts/commandIdentity, using ulid from the ulid package: cf1:<26-character uppercase ULID>:<64 lowercase hexadecimal characters>…
completenessstring––
diffobject––
previousSnapshot–––
revisioninteger––
snapshotobject––
warningsarray––

No examples provided.

refresh_render_url ~163

Re-sign a COMPLETE render's output URL. A render's presigned MP4 link lasts ~7 days, so wait_job / getRender on an old render hands back a link that 403s; this mints a fresh one for the same file and returns { outputUrl, outputExpiresAt }. Needs projectId + renderId (from create_render). 422 render_not_complete while the render is still running or failed — wait_job for it first. Requires renders:write (the row's stored URL is updated).

NameTypeReqDescription
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
projectIdstringyesprojectId (path).
renderIdstringyesrenderId (path).
NameTypeReqDescription
outputExpiresAtstring––
outputUrlstring––

No examples provided.

register_critic ~304

Register a custom eval into the compose critic panel — the critic contract is { rubric (or rules/evaluator), referenceMediaIds?, floor }. Three tiers: rules (declarative constraints — keep-out regions, required elements, max overlays, brand colors), rubric (a text criterion scored by the judge as an extra column), or evaluator (your HTTPS webhook — CueFrame POSTs the composition+stills+facts, you return { score, critique }). referenceMediaIds (≤6 org media ids) attach YOUR reference frames as the standard — the judge scores candidates for consistency with them, so "indistinguishable from mine" is a machine check. Lane scope: rules + rubric critics run in BOTH lanes (the Director's gates AND standalone score_composition); evaluator webhooks run in the Director lane only. Use phase 'static' (the default) — 'temporal' (final-render evaluation) is accepted but not yet wired, so a temporal critic produces no verdicts today. A low client score drives a refine like a built-in criterion. You see your eval output + our scores, never our rubric. Re-registering the same criticId upserts (list_critics / delete_critic manage the set). Evaluator tier returns a signing secret ONCE.

NameTypeReqDescription
bodyobjectyesRegister a custom compose critic.
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
NameTypeReqDescription
criticIdstring––
idstring––
secretstring–evaluator tier: Standard-Webhooks signing secret, returned ONCE.
tierstring––

No examples provided.

remember_taste ~190

Save one durable style preference to the org's learned taste, with its source (the job, checkpoint or chat, plus the date). Only for a preference the user stated: a revise comment, a chat correction or an explicit "remember this"; never one-off brief content, footage facts or secrets. Tell the user what you saved and that they can say undo (forget_taste). Saving text the org already holds changes nothing. Refused, never truncated, past 2,048 bytes per entry or 4,000 characters per org, or while the owner has learned taste off; a refusal is final. get_profile returns the saved entries as `taste`.

NameTypeReqDescription
bodyobjectyesRemember a style preference for the org. Saving text the org already holds changes nothing.
commandId––Retry identity. A call repeated with the same commandId returns the first result instead of acting twice.
NameTypeReqDescription
createdboolean–False when the org already held this exact text.
entryobject–One learned style preference: advice for agents, never enforcement.

No examples provided.

Install

How do I install the CueFrame MCP server?

CueFrame is a hosted endpoint at https://api.cueframe.ai/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.cueframe.ai

# add to Claude Code
claude mcp add --transport http ai-cueframe-cueframe 'https://api.cueframe.ai/v1/mcp'
Common questions

What is the CueFrame MCP server?

CueFrame is an MCP server listed in the public MCP registry as ai.cueframe/cueframe. Turn footage into finished video: reframing, captions behind the subject, motion graphics, renders. This page covers its hosted endpoint (https://api.cueframe.ai/v1/mcp).

Is the CueFrame MCP server safe to use?

CueFrame scores 86 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the CueFrame MCP server expose?

CueFrame exposes 107 tools: search_registry_items, get_registry_item, acquire_registry_item, get_registry_acquisition, refresh_registry_snapshot, and 102 more. Their descriptions and schemas cost roughly 18,710 tokens of context every time the server is loaded.

Does the CueFrame MCP server require authentication?

Yes. CueFrame asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the CueFrame MCP server still maintained?

CueFrame is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.