BlitzReels Video Editor
Server Details
Create, edit, reframe, caption, organize, generate, and export short-form videos with BlitzReels.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 66 tools
Some tools have overlapping purposes: clips_manage aggregates actions also exposed by clips_get and exports_start, and the timeline editing tools (update_timeline_clip, batch_update_timeline_clips, timeline_edit_apply/preview) can be confused for similar mutations. The descriptions do provide enough detail to differentiate most cases, but the boundaries are not always crisp.
Most tools follow a resource_action pattern (media_*, generation_*, series_*, story_kits_*), but a notable subset uses verb_noun or mixed order (add_text_overlay, timeline_media_add, delete_timeline_items, mute_clip_audio). The inconsistency is readable but not predictable across the whole set.
With 66 tools, the server is extraordinarily heavy for an MCP surface, far beyond the typical well-scoped range of 3–15 tools. Even accounting for the broad video-editing domain, the count is an extreme mismatch that suggests over-fragmentation and likely redundancy.
Core workflows are well covered: project creation, media import/upload, timeline editing, generation, clips, exports, and reusable assets like series and story kits. Minor lifecycle gaps exist—no project delete/update, no media asset delete, no character/story kit delete—but these are workable omissions in an otherwise comprehensive surface.
Available Tools
66 toolsadd_text_overlayAdd Text OverlayAIdempotentInspect
Add an editable text overlay to a project timeline at an exact time and layer.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| text | Yes | ||
| projectId | Yes | UUID string. | |
| layerIndex | No | ||
| startSeconds | No | ||
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| durationSeconds | No | ||
| expectedRevision | No | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds that the overlay is 'editable' and placed at an exact time/layer, but does not discuss retry semantics, expectedRevision behavior, or effects of defaults. Adds some context beyond annotations but not deeply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence with no wasted words. It front-loads the core action and object, then adds placement details, achieving high clarity in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and an output schema, the description is serviceable but sparse. It does not mention required idempotencyKey, default duration of 4 seconds, or revision handling. It is adequate for basic selection but not fully complete for correct invocation without deeper schema inspection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, so the description should compensate for undocumented parameters. It only hints at startSeconds and layerIndex via 'exact time and layer' and implies text content, but says nothing about durationSeconds, name, expectedRevision, or idempotencyKey semantics. This leaves most parameters underexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Add') and resource ('editable text overlay') with precise placement ('at an exact time and layer'). This distinguishes it from sibling tools like add_transition or timeline_media_add, which handle different timeline additions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for adding an editable text overlay to a project timeline. It does not explicitly enumerate exclusions or alternatives, but the specificity makes the intended use obvious relative to siblings. Lacks explicit 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_transitionAdd TransitionCIdempotentInspect
Add a timed transition effect, optionally attached to one timeline item and paired with sound.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| easing | No | easeInOut | |
| preset | No | flash | |
| intensity | No | ||
| projectId | Yes | UUID string. | |
| includeSfx | No | ||
| layerIndex | No | ||
| startSeconds | Yes | ||
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| timelineItemId | No | ||
| durationSeconds | No | ||
| expectedRevision | No | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-destructive, idempotent, open-world mutation. The description adds no further behavioral context such as what exactly is created, permissions required, side effects on the timeline, or how expectedRevision affects the write. It does not contradict annotations, but it does not enrich them either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. However, it is too sparse for a 12-parameter mutation tool with low schema coverage, so its brevity becomes under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter tool with 25% schema coverage, existing annotations, and an output schema, this description is incomplete. It gives the purpose but omits the parameter meanings and usage context needed to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema description coverage, the description must compensate for 9 undocumented parameters. It indirectly touches on timelineItemId (optional attachment) and includeSfx (paired with sound), but ignores name, easing, preset, intensity, layerIndex, durationSeconds, and expectedRevision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a timed transition effect.' It distinguishes itself from timeline siblings like add_text_overlay or timeline_audio_add by resource type, though it does not explicitly name an alternative. Clarity is high but lacks sibling routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. The phrase 'optionally attached to one timeline item and paired with sound' implies the tool can be used standalone or attached, but this is context about parameters, not selection guidance versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_update_timeline_clipsBatch Update Timeline ClipsAIdempotentInspect
Update timing, trim, layer, or state for up to 100 timeline items in one sequence transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | Each update needs at least one field to change besides timelineItemId. | |
| projectId | Yes | UUID string. | |
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| expectedRevision | No | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent=true, readOnly=false, and destructive=false. The description adds valuable behavioral context: the operation is transactional and limited to 100 items. It does not contradict the annotations and provides insight beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence. It front-loads the verb, specifies the supported fields, and includes the critical constraints (up to 100 items, one transaction) without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema (100% coverage) and the presence of an output schema, the description is sufficient for understanding the core operation. It captures the essential batch and transactional behavior. A minor gap is not explicitly directing users to the singular update_timeline_clip for single updates, but that is more of a usage guideline than a completeness issue.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter already has a description. The phrase 'timing, trim, layer, or state' adds semantic grouping to the fields, but it does not provide new syntax or details beyond what the schema already documents. This is the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update'), the resource ('timeline items'), and the scope ('up to 100 ... in one sequence transaction'). It explicitly lists the kinds of updates (timing, trim, layer, state), which distinguishes it from singular siblings like update_timeline_clip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for use: it is for batch updating up to 100 items atomically ('one sequence transaction'). It does not explicitly name an alternative for single-item updates, but the batch limit and transactional phrasing imply the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captions_themes_listList Caption ThemesARead-onlyIdempotentInspect
List built-in caption looks and saved caption themes available to a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| includeSavedThemes | No | Include saved workspace caption themes. | |
| includeBuiltInLooks | No | Include built-in caption looks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| themes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds that it includes both built-in looks and saved themes, which is useful context, but does not disclose additional behaviors like pagination or ordering. This is adequate given the annotations, but not overly rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the action and scope. No redundant words or filler, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the description, combined with comprehensive annotations and a full output schema, provides complete context. There are no missing details about return values or safety, and the tool's simplicity means no additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have full descriptions in the input schema, achieving 100% schema coverage. The description itself does not add parameter-level meaning, but the schema is sufficient, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists built-in caption looks and saved caption themes for a workspace, using a specific verb and resource. It distinguishes itself from sibling tools by focusing on caption themes, which is unique among the provided tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a simple listing tool, but provides no explicit guidance on when to use it versus alternatives or when not to use it. Since no alternative theme-listing tools exist among siblings, this is acceptable but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
characters_applyApply Reusable CharacterAIdempotentInspect
Create or update a reference-based character for repeatable faceless story generation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | No | human | |
| species | No | ||
| storyFacts | No | ||
| characterId | No | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. | |
| defaultVoiceId | No | ||
| idempotencyKey | Yes | ||
| defaultVoiceStyle | No | ||
| referenceAssetIds | No | ||
| canonicalDescription | No | ||
| confirmLikenessConsent | No | For a human character, set true only after the user confirms consent to use the depicted person's likeness. | |
| primaryReferenceAssetId | No | ||
| confirmRightsToReferences | No | Set true only after the user confirms they own the reference media or have permission to use it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| character | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose idempotentHint=true and destructiveHint=false; the description adds the upsert-like 'create or update' behavior and the fact that the character is reference-based. It does not disclose important operational constraints such as consent or rights gates, but those are documented in the schema properties, so the additional behavioral gap is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence that front-loads the operation, the resource kind, and the use case; no filler or restatement of the title. It earns its place, even though it sacrifices detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the tool has 14 parameters and a very low schema description coverage. The description leaves critical invocation questions open—how updates are keyed (characterId vs idempotencyKey), what reference assets are required, and which consent flags must be set. This is not complete enough for a complex write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 21%, so the description should compensate for the many undocumented parameters. It does not: no mention of idempotencyKey, characterId as the update selector, referenceAssetIds/primaryReferenceAssetId, voice fields, or storyFacts. The only hint is 'reference-based,' which weakly maps to the reference asset parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create or update') and resource ('reference-based character'), and adds the purpose context 'for repeatable faceless story generation.' This is enough to distinguish it from sibling read tools like characters_get/characters_list and from story-generation tools, even though it does not name a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear context by describing the intended use case—reusable characters for faceless story generation—but does not articulate exclusions or point to alternatives such as characters_list or generation_faceless_create. The agent can infer when to use it but is not explicitly steered away from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
characters_getGet Reusable CharacterARead-onlyIdempotentInspect
Inspect one reusable character and its ordered reference-image set before planning a story.
| Name | Required | Description | Default |
|---|---|---|---|
| characterId | Yes | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| character | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the annotations. 'Inspect' aligns with readOnlyHint=true and destructiveHint=false. The mention of 'ordered reference-image set' hints at the output structure, but no further details about auth, rate limits, or idempotency are provided. Annotations already cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of 14 words that is front-loaded and efficient. However, it is slightly terse and could be more explicit about the core resource (e.g., 'Reusable character' is a domain term that may not be universally understood). Still, it earns its place without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (read a single character), the presence of annotations and an output schema, the description is mostly complete. It clarifies the use case and the ordered reference-image set. However, it does not explicitly state that the characterId is required or that the operation is read-only, though these are inferred from context and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention any parameters. Schema coverage is 50% (workspaceId has a description in the schema, but characterId does not). The tool description could have explained what characterId represents, but it fails to compensate for the undocumented parameter, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'Inspect' (read-only) and the resource 'one reusable character and its ordered reference-image set', with a clear scope ('before planning a story'). This distinguishes it from siblings like 'characters_list' (list all) and 'characters_apply' (apply a character).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use this tool ('before planning a story'), but does not explicitly mention when not to use it or alternatives such as 'characters_list' for browsing. The sibling list implies the differentiation, but the description could be more direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
characters_listList Reusable CharactersARead-onlyIdempotentInspect
List bounded reusable characters with identity, voice, facts, and image-reference metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. | |
| includeArchived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| characters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the agent knows this is a safe, repeatable read operation. Description adds the term 'bounded' which hints at scope but doesn't explain what 'bounded' means (e.g., workspace-scoped, project-scoped) nor mention pagination behavior that offset/limit implies. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 14 words, zero waste. Each part ('List', 'bounded reusable characters', metadata details) serves a clear purpose. Front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low parameter description coverage, the output schema exists and parameter names are clear. The description lacks a note about workspace scoping or archived behavior, but for a simple list tool with rich annotations and output schema, it is largely complete. Could mention that workspaceId is optional and defaults to user's default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 4 parameters but description coverage is only 25%—it does not mention or elaborate on any parameter. However, the output schema exists and parameters like limit/offset/workspaceId/includeArchived are self-explanatory from names and schema defaults. Baseline 3 is appropriate since description adds no value beyond schema, but schema names provide adequate context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states specific verb ('List'), resource ('bounded reusable characters'), and included data ('identity, voice, facts, and image-reference metadata'). It clearly distinguishes this tool from sibling tools like characters_get or characters_apply by framing it as a list operation. However, it doesn't explicitly differentiate from other list tools in the sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is listing characters, but no explicit guidance on when to use this vs alternatives like characters_get (for a single character) or characters_apply (for applying characters). No exclusion criteria or context about filtering, pagination, or prerequisites beyond schema-bound parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clip_batches_deleteDelete Clip BatchADestructiveIdempotentInspect
Preview or delete a terminal clip batch. Dry-run is the default; real deletion requires explicit confirmation, retention choice, workspace delete permission, and an idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | ||
| batchId | Yes | UUID string. | |
| retention | No | retain_projects_and_exports | |
| workspaceId | No | UUID string. | |
| confirmDelete | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (which already indicate destructive and idempotent). It discloses that dry-run is the default, real deletion requires confirmation and a retention choice, workspace delete permission is needed, and an idempotency key is required. This fully informs the agent of conditions and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys purpose, default behavior, and prerequisites. Every phrase adds value without wordiness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior and preconditions for this destructive, idempotent tool with 6 parameters. Given that the output schema exists (so return format is already specified), the description provides sufficient context for the agent to understand the tool's workflow, though it does not elaborate on what the dry-run preview returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage, the description must compensate for the lack of parameter details. It does add semantic value by referencing dry-run, confirmation, retention choice, workspace permission, and idempotency key. However, it does not explain the precise conditions for each parameter (e.g., dryRun must be false, confirmDelete must be true, or the meaning of retention enum values), leaving some ambiguity for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Preview or delete a terminal clip batch.' It distinguishes itself from sibling tools like delete_timeline_items by focusing on clip batches, and the dual preview/delete nature is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for previewing or deleting a terminal clip batch. It implies that real deletion requires explicit confirmation and permissions, giving the agent actionable guidance. It doesn't explicitly name alternatives, but the resource type is distinct enough from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_createCreate ClipsCInspect
Create a private BlitzReels clip batch from an existing asset or a user-provided video URL. Supports public social videos, Google Drive, and direct media URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Video URL to import before clipping. Supports social video links, Google Drive file links, and direct video file URLs. | |
| assetId | No | Existing BlitzReels video asset ID. Provide assetId or url, not both. UUID string. | |
| seriesId | No | Optional Series UUID. Omitted inherits the source Series; null creates standalone clips. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| clipPresetId | No | Clip style preset. Use high-retention for High Retention clips or demo-focus for product and screen demos. | default |
| captionThemeId | No | Saved theme UUID or built-in caption look. Omitted inherits Series defaults; null uses workspace captions. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| autoTrimSilence | No | Trim silence around selected moments. | |
| createSharePage | No | Create a public showcase page where completed clips appear. | |
| confirmRightsToMedia | No | Set true only after the user confirms they own the media or have permission to import it. Not needed for an existing BlitzReels asset. |
Output Schema
| Name | Required | Description |
|---|---|---|
| batch | Yes | |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it creates a 'private' batch and supports certain URL sources, which is useful. But it does not mention side effects (it triggers a creation job), batch/asynchronous behavior, the need for rights confirmation for external media, or any downstream consequences. With no annotations provided, the description carries a heavier burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The key purpose and source types are front-loaded, making the description easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex creation tool with 10 parameters, including idempotency and rights confirmation, yet the description does not explain the overall workflow, what a 'batch' means, or external-URL requirements. An agent would need to read every parameter description to understand important constraints like confirmRightsToMedia. The short description leaves key operational context unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents each parameter thoroughly (e.g., confirmRightsToMedia, idempotencyKey, assetId/url mutual exclusion). The description adds only the supported URL types and 'batch' context, which partially repeats schema information. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Create a private BlitzReels clip batch') and identifies two input sources ('existing asset' or 'user-provided video URL'), which is clear and specific. However, no sibling tool names are provided, so it cannot differentiate from related tools like clip_batches_create or media_import_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives the general scenario (create clips from an asset or URL) but no explicit guidance on when to choose this tool over alternatives, no prerequisites (e.g., rights confirmation for external URLs), and no mention of intended workflow. Without sibling context, an agent is left to infer usage from the parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_getGet Clip BatchARead-onlyIdempotentInspect
Get status, generated clips, render counts, and download links for a BlitzReels clip batch.
| Name | Required | Description | Default |
|---|---|---|---|
| batchId | Yes | Clip batch ID returned from clips_create. UUID string. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| batch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds valuable behavioral context by enumerating the specific output fields (status, clips, counts, links), which goes beyond the generic annotations. This merits a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and lists key outputs in a compact manner. No unnecessary information or filler, earning a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only getter with an output schema and strong annotations, the description is complete. It clearly states the purpose and return contents, with no missing critical context. The tool's simplicity and structured data make this comprehensive without needing extra detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (batchId, workspaceId) fully described including UUID format and default behavior. The description adds no parameter-specific meaning, so the baseline of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and names the resource 'BlitzReels clip batch', listing the exact outputs: status, generated clips, render counts, download links. This clearly distinguishes it from siblings like clips_create or clips_manage, which handle creation or broader management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after creating a batch (e.g., via clips_create) by stating it retrieves batch data. It gives clear context for when to use it, though it does not explicitly name alternatives or exclusions. Given the tool's name and sibling context, this is sufficient for a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_manageManage ClipsCInspect
List or inspect clips, regenerate, repair visual QA, start export, promote an accepted delivery export, inspect caption words, or apply a verified caption look.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| clipId | No | ||
| format | No | mp4 | |
| lookId | No | ||
| offset | No | ||
| status | No | ||
| assetId | No | UUID string. | |
| exportId | No | UUID string. | |
| matchText | No | ||
| operation | Yes | ||
| projectId | No | UUID string. | |
| endSeconds | No | ||
| layoutMode | No | ||
| repairMode | No | auto | |
| resolution | No | 1080p | |
| workspaceId | No | UUID string. | |
| startSeconds | No | ||
| suggestionId | No | UUID string. | |
| selectionMode | No | ||
| idempotencyKey | No | ||
| timelineItemId | No | ||
| captionsEnabled | No | ||
| confirmVisualQa | No | ||
| contentTypeHint | No | ||
| captionWordLimit | No | ||
| coverFrameSeconds | No | ||
| clearWordOverrides | No | ||
| maxDurationSeconds | No | ||
| minDurationSeconds | No | ||
| allowBlockingQaBypass | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate this is a mutating, non-idempotent operation, and the description reinforces this with verbs like 'regenerate' and 'promote,' but it does not disclose side effects, prerequisites, or reversibility. For example, 'promote an accepted delivery export' implies a state change but no details are given about what is affected or whether confirmation is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs many operations into a comma-separated list, making it somewhat run-on but still efficient in length. It is front-loaded with 'List or inspect clips' but the long list of loosely related actions reduces clarity and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 30 parameters, 7 enums, and an output schema, the description provides only a high-level operation list. It lacks critical contextual details such as parameter dependencies, operation-specific behaviors, or typical use cases, making it incomplete for an agent to reliably invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 30 parameters and only 17% schema description coverage, the description carries a heavy responsibility to explain parameters, but it names none of them. It does not map operations to required fields (e.g., which params are needed for 'repair' vs 'export') nor explain enums like selectionMode or layoutMode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates the tool's operations with action verbs (list, inspect, regenerate, repair, start export, promote, inspect, apply), making its broad purpose evident. It distinguishes from siblings like clips_get or exports_start by covering a wider range of clip management actions, though the list-like structure prevents a single focused purpose from being stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use clips_manage versus sibling tools such as clips_get, clips_create, or exports_start. The description only lists operations without explaining which to choose for a given scenario or when a more specific sibling tool would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_presets_listList Clip PresetsARead-onlyIdempotentInspect
List available clip batch presets and their clipping/caption defaults.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| presets | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well-covered. The description adds the factual content (clipping/caption defaults) but does not disclose additional behavioral traits such as return format, pagination, or whether presets include custom user-defined ones.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately states the action and object. It contains no redundant phrases or filler, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and comprehensive annotations, the description is largely complete for a simple list tool. However, it could provide slightly more contextual value by hinting at how these presets are used (e.g., 'These presets can be applied when creating clip batches'), which would help new users understand the workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100% and the description has no parameter burden. A baseline score of 4 is appropriate since there is nothing to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('List') and resource ('available clip batch presets'), and specifies the included information ('clipping/caption defaults'). This distinguishes it from sibling tools like captions_themes_list and clips_get, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the tool's name and description—if you need to list presets, this is the tool—but there is no explicit guidance on when to use it versus alternatives, nor any mention of prerequisites or follow-up actions. The description could benefit from noting that these presets are for use with clip batch creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_timeline_itemsDelete Timeline ItemsBDestructiveIdempotentInspect
Preview or delete up to 100 timeline items and optionally remove linked captions.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | ||
| projectId | Yes | UUID string. | |
| confirmDelete | No | ||
| idempotencyKey | No | ||
| timelineItemIds | Yes | ||
| expectedRevision | No | Expected sequence revision, or null. | |
| removeAssociatedCaptions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds information about the preview mode and optional caption removal beyond the annotations, which already indicate destructive behavior. Still, it doesn't explain the dryRun/confirmDelete workflow or other behavioral nuances, so only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant filler. Efficiently conveys the core functionality and primary option.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having annotations and an output schema, the description omits essential workflow details for a destructive tool—such as how preview (dryRun) and confirmDelete interact, the purpose of idempotencyKey, and revision handling. This is a significant gap for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to timelineItemIds (up to 100) and removeAssociatedCaptions (linked captions), but schema coverage is only 29%, leaving many parameters (dryRun, confirmDelete, idempotencyKey, expectedRevision) unaddressed. The description does not compensate enough for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it previews or deletes timeline items and optionally removes linked captions. The verb 'delete' and resource 'timeline items' are specific, though it doesn't explicitly distinguish from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Preview or delete' implies a safe preview mode before deletion, providing some usage context. However, there's no explicit guidance on when to use this tool versus alternatives, nor on when to choose preview vs actual deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exports_listList ExportsARead-onlyIdempotentInspect
List exports with render status and progress. Completed exports include a signed download URL. Pass exportId to return one export.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum exports to return when exportId is absent (1-50). | |
| offset | No | Export offset when exportId is absent. | |
| exportId | No | Return only this export, including its signed download URL when the render is complete. UUID string. | |
| projectId | No | Filter exports by project ID. UUID string. | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| exports | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable behavioral context beyond annotations: render status/progress and the presence of signed download URLs on completed exports. This informs the agent about the data shape and what to expect, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. It front-loads the primary action and then adds the key differentiator (single export via exportId). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, rich annotations, complete parameter schemas, and presence of an output schema, the description is sufficiently complete. It covers what the tool does, the main data included (status/progress, signed URLs), and the single-record mode. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter clearly explained. The description adds no new information about parameters beyond saying 'Pass exportId,' which the schema already documents. This meets the baseline of 3 when the schema carries the parameter-semantics burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List exports with render status and progress.' It also distinguishes two modes — listing all exports vs. returning one by exportId — which separates this from sibling tools like exports_start. The verb 'List' and resource 'exports' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it lists exports with status/progress and notes that completed exports include signed download URLs. It also instructs when to pass exportId to retrieve a single export. While it does not explicitly name alternatives or exclusions, the single-vs-list distinction serves as effective usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exports_startStart ExportAInspect
Render/export a BlitzReels video project after timeline edits. Returns export and job IDs that can be polled with exports_list.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Export container format | mp4 |
| projectId | Yes | BlitzReels project ID. UUID string. | |
| resolution | No | Export resolution | 1080p |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| coverFrameSeconds | No | Optional cover thumbnail timestamp |
Output Schema
| Name | Required | Description |
|---|---|---|
| export | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond annotations: the tool returns export and job IDs and can be polled via exports_list, implying an asynchronous operation. Annotations already indicate it is not read-only or idempotent, and the description does not contradict them. It could mention side effects (e.g., rendering costs or project state changes), but the polling hint covers the main follow-up behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences. The first states exactly what the tool does; the second explains the return value and the follow-up polling mechanism. No wasted words, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, an output schema, and is a side-effecting operation. The description covers the key flow (start export, get IDs, poll with exports_list) and leverages the complete schema. It could be slightly more thorough about asynchronous behavior or failure modes, but the essential context is present, especially given the rich schema and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for all parameters including enums and defaults. The description itself adds no parameter-specific detail, but given complete schema coverage, no additional compensation is needed. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Render/export') and names the exact resource ('BlitzReels video project after timeline edits'). It also states the return value (export and job IDs) and references the sibling tool exports_list for polling, which clearly distinguishes it from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual guidance: use after timeline edits, and poll results with exports_list. It does not explicitly state exclusions or alternative tools for this action, but the reference to exports_list implies the workflow and the timing is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_faceless_createGenerate Faceless VideoAIdempotentInspect
Turn a script into a full faceless video project: scene plan, generated visuals, optional voiceover, captions, music, and sound. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | The narration or story to turn into a video. | |
| voiceId | No | Optional voice override from the BlitzReels voice catalog. The Story Kit narrator voice is used when omitted. | |
| seriesId | No | Optional Series UUID. Inherits its Story Kit and branding defaults for this new video. | |
| storyKitId | No | Reusable Story Kit UUID for characters, references, locations, style, and narrator voice. | |
| videoModel | No | Image-to-video model used to animate scenes. | seedance-2.0-ref2v |
| projectName | No | Name for the created BlitzReels project. | Faceless Video |
| visualStyle | No | Optional art direction override. A Story Kit style is used when omitted. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| imageModelId | No | Model used to generate scene images. | fal-ai/nano-banana-pro |
| captionStyleId | No | Optional caption theme ID from captions_themes_list. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| plannerModelId | No | Model used to plan the video scenes. | google/gemini-3.8-flash |
| includeCaptions | No | Burn captions into the timeline. | |
| generateVoiceover | No | Narrate the script with a generated voice. | |
| generateSoundEffects | No | Add generated sound effects. | |
| targetDurationSeconds | No | Target runtime between 10 and 120 seconds. | |
| styleReferenceAssetIds | No | Optional stills that lock rendering medium, palette, lighting and texture. Not used as scene frames. | |
| generateBackgroundMusic | No | Add a generated background track. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly=false, destructive=false, idempotent=true, openWorld=false). The description adds genuinely useful behavior beyond them: it consumes AI credits and returns an asynchronous job to be polled. It does not quantify cost or say how long the job runs, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste: the pipeline scope is front-loaded, and the cost/polling consequence follows immediately. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, and the description still flags the credit spend and the polling handoff to generation_jobs_get. For a heavy 18-parameter generator, this is nearly complete, with only the absence of sibling routing leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 18 parameters are already documented in the schema; baseline is 3. The description's mention of optional voiceover, captions, music and sound loosely maps to the boolean toggles but adds no syntax, defaults, or enum guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Turn a script into a full faceless video project' with an enumerated pipeline (scene plan, visuals, voiceover, captions, music, sound). This scope implicitly separates it from single-asset siblings like generation_video_create or generation_voiceover_create, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says it 'returns a job to poll with generation_jobs_get', which implies the async usage pattern. However, it never states when to choose this full-pipeline tool over generation_video_create, generation_plan_brief, or the per-asset generators, so selection among siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_image_createGenerate ImageAIdempotentInspect
Queue an AI image generation into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Image model. Call generation_options_list for costs. | fal-ai/nano-banana-2 |
| prompt | Yes | What the image should show (8-5000 characters). | |
| folderId | No | Optional media library folder ID. | |
| resolution | No | Native image resolution. Call generation_options_list for model support and resolution pricing. Unsupported settings are rejected. | |
| aspectRatio | No | Output aspect ratio. | 1:1 |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| enhancePrompt | No | Enhance using BlitzReels model grammar and actual input context. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| referenceAssetIds | No | Ordered image references. Model-specific limits are listed in generation_options_list; unsupported references fail. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate idempotency and non-destructiveness, and the description adds meaningful behavioral context: it spends AI credits and returns an asynchronous job to poll. This reveals cost and job-based execution, which are not visible from the annotations alone. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary action is front-loaded, followed immediately by the most important operational facts (credit cost and job polling). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The rich input schema and annotations already cover parameters, idempotency, and non-destructive behavior. The description supplies the missing operational facts—credit spending and polling the returned job—which are exactly what an agent needs to invoke and follow up correctly. The output schema covers return details, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already well-documented (model defaults, prompt length limits, resolution behavior, aspect ratio, etc.). The description adds no extra parameter-level detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action ('Queue') and a clear resource ('AI image generation into the BlitzReels media library'), and it distinguishes this tool from sibling generation tools like generation_video_create or generation_music_create. It also includes the key outcome—returns a job to poll—so an agent understands exactly what this tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames this as the image-generation entry point and tells the agent to follow up with generation_jobs_get, which implies the async usage flow. However, it does not explicitly state when to use this tool over the other generation_* siblings or when not to use it, so the routing guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_jobs_cancelCancel Generation JobAIdempotentInspect
Cancel a queued or running generation before it finishes spending credits.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID returned by any generation_*_create tool. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds the state constraint (queued or running) and the credit-saving rationale, which is useful. However, it does not disclose what happens on cancel (e.g., whether credits are refunded or if cancellation is irreversible), but the output schema may cover return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose and key scope without any fluff. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple cancellation tool with good schema coverage, annotations, and an output schema, the description is nearly complete. It specifies the applicable states and the rationale, though it could explicitly mention side effects or edge cases (e.g., cancelling an already-finished job). Minor gap, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (jobId and workspaceId) have detailed descriptions in the schema. The tool description adds no additional parameter-level information beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Cancel') with a clear resource ('generation job') and adds meaningful scope ('queued or running generation before it finishes spending credits'). This clearly distinguishes it from sibling tools like generation_jobs_get and the various generation creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when a generation job is queued or running and you want to avoid spending credits. It specifies the applicable states ('queued or running') but does not explicitly name alternatives or exclusions, though the scope is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_jobs_getGet Generation JobARead-onlyIdempotentInspect
Check a queued generation. Completed jobs carry the media asset ID and a download URL.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID returned by any generation_*_create tool. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only and idempotent. The description adds value by revealing that completed jobs include a media asset ID and download URL, and by implying incomplete jobs do not. This is useful behavioral context beyond the annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose. Every phrase earns its place; no fluff or repetition of schema/annotations. Very concise and effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and strong annotations, the description need not explain every return field. It explains the key distinction between completed and non-completed jobs, which complements the structured data. Slightly missing polling guidance or error-state info, but not critical for a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the schema fully documents their meaning. The description does not add any additional insight into parameter semantics, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks a generation job and specifies what completed jobs return (media asset ID and download URL). It distinguishes from sibling generation creation/cancel tools, though the phrase 'queued generation' is slightly ambiguous about whether it handles all job states.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention that it should be used after a generation_*_create call or contrast with generation_jobs_cancel. Usage context is only implied by the presence of sibling tools and the parameter schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_music_createGenerate MusicAIdempotentInspect
Queue a background music track into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | Track mood. | neutral |
| prompt | No | Optional description of the track. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| durationSeconds | No | Track length between 10 and 120 seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context by disclosing that the operation spends AI credits and returns a job to poll via generation_jobs_get. This goes beyond the annotations, which only indicate idempotency and non-destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loading the core purpose and adding only essential behavioral context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema covers all parameters and an output schema exists, the description sufficiently conveys the operation's purpose, cost, and async workflow. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters are fully described in the input schema (100% coverage), so the description does not need to explain them. The description does not add additional parameter-level meaning, staying at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Queue') and resource ('background music track into the BlitzReels media library'), distinguishing it from sibling generation tools by specifying background music.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for background music and mentions the asynchronous job pattern and AI credit cost, but it does not explicitly contrast with alternative generation tools such as generation_sound_create or generation_voiceover_create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_options_listList Generation OptionsARead-onlyIdempotentInspect
List the models, defaults, limits, and credit costs available for one generation kind before queueing it. Video duration is an enum per model (durations_seconds), not a min-max range.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Generation kind to describe. |
Output Schema
| Name | Required | Description |
|---|---|---|
| options | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuine value beyond them by disclosing the shape of returned data: video duration is an enum per model (durations_seconds), not a min-max range — a trait an agent would otherwise guess wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded: the first states the purpose, the second immediately delivers the non-obvious durations_seconds caveat. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be described in full, yet the description includes the one detail most likely to cause misuse (duration enum vs range). For a single-enum-param read tool, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter (kind), and schema description coverage is 100% with a full enum of allowed kinds. The description adds no meaning to the 'kind' parameter itself, so the baseline 3 applies; the durations_seconds note pertains to output, not this parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (models, defaults, limits, credit costs) scoped to 'one generation kind before queueing it'. An agent can distinguish it from the generation_*_create siblings, which consume the options this tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before queueing it' clearly signals this is a pre-flight/discovery call that precedes a generation create. It does not explicitly name the alternative tools (generation_image_create, generation_video_create, etc.), but the sequencing intent is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_plan_briefGet Generation Plan BriefARead-onlyIdempotentInspect
Fetch the authoring brief for an AI video generation plan: the target model's prompting grammar, capability constraints, locked style contract, and the plan JSON schema. Author the plan yourself from this brief, then check it with generation_plan_validate.
| Name | Required | Description | Default |
|---|---|---|---|
| genre | No | Genre pack id (e.g. pixar-culture-skit). The brief lists available ids in availableGenres; the pack's beats and visual contract override the generic grammar. | |
| aspectRatio | No | 9:16 | |
| visualStyle | No | Visual style preset id; its locked style contract is included in the brief. | |
| videoModelId | No | Target video model id (see generation_options_list, kind: video). Defaults to the strongest single-take model. | |
| targetDurationSeconds | No | Desired final video duration in seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| brief | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is known. The description adds behavioral context by specifying what the brief contains and its role in the authoring workflow, going beyond the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and contains no filler. Every sentence earns its place, making it highly concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, detailed annotations, and 5 optional parameters, the description is sufficient. It explains the tool's purpose, what the brief contains, and the expected next step (validate), making it contextually complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, and the parameter descriptions are detailed (e.g., genre, videoModelId). The tool description does not add extra meaning to parameters beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Fetch the authoring brief') and clearly lists the brief's contents (prompting grammar, capability constraints, locked style contract, plan JSON schema). It distinguishes this tool from the sibling generation_plan_validate by stating the workflow: author the plan from the brief, then validate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: this tool provides the brief for authoring a plan, and the next step is validation with generation_plan_validate. It implies when to use it (before authoring) but does not explicitly state exclusions or alternatives beyond the validate sibling, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_plan_validateValidate Generation PlanARead-onlyIdempotentInspect
Validate a self-authored generation plan against the schema and the target model's real capabilities before execution. Returns directive errors to fix and revalidate; only a valid plan is executable.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | The generation plan object authored from generation_plan_brief's planJsonSchema. |
Output Schema
| Name | Required | Description |
|---|---|---|
| valid | Yes | |
| errors | Yes | Empty when valid. Each entry states exactly what to change. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds context about return behavior ('Returns directive errors to fix and revalidate') and establishes this tool as a gate for execution. This goes beyond annotations without conflicting with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundant wording. The purpose is front-loaded, and the second sentence efficiently conveys return behavior and the validity constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single well-documented parameter, output schema, and clear annotations, the description sufficiently covers purpose, usage context, and return behavior. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a full description for the 'plan' parameter, referencing generation_plan_brief's planJsonSchema. The tool description adds no additional parameter-specific semantics, but with 100% schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: validating a generation plan against the schema and model capabilities. It uses a specific verb ('validate') and resource ('generation plan'), and the phrase 'before execution' distinguishes it from planning or execution tools like generation_plan_brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: after authoring a plan and before execution. It does not explicitly name alternatives or exclusions, but the context is clear enough from 'self-authored' and 'only a valid plan is executable.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_sound_createGenerate Sound EffectAIdempotentInspect
Queue a sound effect into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | Produce a seamlessly loopable effect. | |
| prompt | Yes | The sound to create (3-500 characters). | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| durationSeconds | No | Effect length between 0.5 and 30 seconds. | |
| promptInfluence | No | How literally to follow the prompt, between 0 and 1. Higher is more literal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations by revealing the asynchronous nature ('Queue'), the cost implication ('Spends AI credits'), and the return of a job to poll with generation_jobs_get. Annotations only cover read-only/idempotent/destructive hints, so this adds substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the core purpose front-loaded. Every word earns its place, and the job-polling hint is included without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage and an output schema, the description fills the remaining gaps: async job model, credit cost, and media library destination. This is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions, so the baseline is 3. The description adds no param-specific meaning, but the schema already handles it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it queues a sound effect into the BlitzReels media library, distinguishing it from sibling generation tools for music, image, video, and voiceover. Also mentions returning a job to poll, which clarifies its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use for sound effects, spends AI credits, returns a job for polling. It doesn't explicitly name alternatives, but the sound-effect scope and job-based workflow make the usage unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_video_createGenerate VideoAIdempotentInspect
Queue an AI video generation into the BlitzReels media library, from a prompt or from an existing image asset. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional seed for reproducible output. | |
| model | No | Video model. Supported durations and text-to-video vs image-to-video differ per model; call generation_options_list first. | wan-2.1 |
| prompt | Yes | What should happen in the shot (3-5000 characters). | |
| folderId | No | Optional media library folder ID. | |
| provider | No | Explicit provider must support the model and input mode. auto uses a configured compatible provider. | auto |
| resolution | No | Output resolution. Call generation_options_list for model-specific supported values and defaults. Unsupported settings are rejected. | |
| aspectRatio | No | Output aspect ratio. | 9:16 |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| enhancePrompt | No | Enhance using BlitzReels model grammar and actual input context. | |
| generateAudio | No | null uses model audio behavior. Explicit true/false must be supported by the selected model. | |
| sourceAssetId | No | First-frame still. Required only when that model's parameters.source_asset_id.required is true. Optional on reference-capable I2V including Seedance 2.5. Text-to-video rejects it. Cannot combine with reference arrays and end_frame_asset_id. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| negativePrompt | No | What to avoid in the shot. | |
| durationSeconds | No | Choose a value from the selected model's durations_seconds. duration_seconds_min and duration_seconds_max are the bounds of that list, not a continuous range. | |
| endFrameAssetId | No | Last-frame still. Interpolates from the source first frame to this image across the full duration. Requires a source first frame; cannot combine with reference arrays. | |
| referenceAssetIds | No | Ordered reference images: Seedance 2.5 up to 30; Seedance 2.0 ref2v up to 9; other reference models up to 4. Source counts toward the limit. | |
| referenceAudioAssetIds | No | Reference audio: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. Other models reject them. | |
| referenceVideoAssetIds | No | Reference videos: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. Other models reject them. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write, idempotent, non-destructive, closed-world. The description adds two things annotations cannot convey: it consumes AI credits, and it is asynchronous — it returns a job rather than a finished asset, to be polled with generation_jobs_get. That async/cost behavior is exactly the context an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. The queueing action and input modes come first, then the cost and async follow-up, so the most decision-relevant facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter, credit-spending, async generation tool it covers the essential non-schema facts: cost, async polling, and the two input shapes. Output schema exists so return values needn't be enumerated, but a hint that model/options must be validated via generation_options_list is only in the schema, not the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 — the schema already documents model, duration, reference arrays, asset IDs, and their per-model constraints in detail. The description adds only a high-level encapsulation of the two input modes (prompt / image asset) and no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Queue an AI video generation into the BlitzReels media library") and names both input modes (prompt or existing image asset). The word "video" distinguishes it cleanly from generation_image_create, generation_music_create, and generation_voiceover_create without needing to inspect them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives the two valid entry paths (text prompt vs. existing image asset) and names the follow-up tool, generation_jobs_get. It stops short of explicitly stating when to prefer this over the sibling generation tools or generation_faceless_create, so routing guidance is clear but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_voiceover_createGenerate VoiceoverAIdempotentInspect
Queue a text-to-speech voiceover into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Script to read aloud (3-8000 characters). | |
| speed | No | Speaking rate between 0.5 and 1.6. | |
| voiceId | No | Voice ID. Call generation_options_list with kind voiceover for the catalog. | pNInz6obpgDQGcFmaJgB |
| voiceStyle | No | Delivery emotion. | neutral |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral context beyond what annotations provide: the operation 'Spends AI credits' (a cost consequence), is queued asynchronously rather than executing synchronously, and 'returns a job to poll' — all unstated in the annotations. The annotations cover idempotency and non-read-only status, and the description is fully consistent with them, while enriching the agent's understanding of side effects and workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The action and resource are front-loaded in the first sentence, and the second sentence delivers the two highest-stakes facts — cost and async polling — that an agent must know before invoking. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present to document the job return shape, 100% schema coverage, and annotations covering idempotency/safety, the description covers the remaining essentials for an async queue tool: what is produced, where it lands, that it costs credits, and how to follow up (poll with generation_jobs_get). Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters well, including the voiceId catalog lookup (generation_options_list with kind voiceover), speed range, voiceStyle enum, and idempotencyKey semantics. The description adds minimal parameter-level meaning beyond confirming 'text' is the read-aloud script via the 'text-to-speech' phrasing. Baseline 3 is appropriate since the schema carries the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('Queue') and names a precise resource ('text-to-speech voiceover into the BlitzReels media library'). The async nature ('returns a job to poll') clearly distinguishes this from synchronous siblings, and the 'text-to-speech voiceover' scoping separates it from the generation_music_create, generation_sound_create, generation_video_create, and generation_faceless_create siblings without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context for when to use this tool: when a voiceover is needed and the caller expects an async queued job. The explicit pointer to generation_jobs_get gives the follow-up workflow, and the TTS scoping implicitly routes the agent away from the music/sound/video/image generator siblings. It stops short of explicitly enumerating when-not-to-use conditions, so it doesn't reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_assets_getGet Media AssetARead-onlyIdempotentInspect
Get metadata and processing state for one media-library asset without returning transcript segments.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Media asset UUID. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint=false, the description adds meaningful behavioral context by specifying the type of data returned (metadata, processing state) and explicitly stating what is not returned (transcript segments). This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the verb and object, includes a necessary exclusion clause, and contains zero filler. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id tool with one parameter, a rich output schema, and strong annotations, the description is complete. It explains what the tool returns (metadata and processing state), what it excludes (transcript segments), and the tool is simple enough that no further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single parameter, describing it as 'Media asset UUID. UUID string.' The description reinforces the parameter's role by saying 'one media-library asset', but it does not add additional semantic detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Get metadata and processing state for one media-library asset'. It clearly identifies the verb (get), resource (media-library asset), and scope (one). The exclusion clause 'without returning transcript segments' also distinguishes it from sibling tools like media_transcript_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need metadata and processing state for a single asset. The phrase 'without returning transcript segments' provides guidance that this is not the tool for transcript retrieval, effectively directing users to a sibling tool. It does not explicitly name alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_assets_previewPreview Media AssetARead-onlyIdempotentInspect
Return one bounded JPEG as MCP image content for visual inspection. Images use the stored visual; videos use the existing thumbnail.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Media asset UUID. UUID string. | |
| maxDimension | No | Maximum preview width or height in pixels (256-1536). |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | Yes | |
| preview | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds valuable context beyond annotations by specifying the output as a bounded JPEG and the conditional behavior for images vs videos (stored visual vs thumbnail). This clarifies what the agent can expect from the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, each adding value. The first sentence states the action and result; the second clarifies behavior for different asset types. No wasted words, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has full schema coverage, an output schema, and safety annotations. The description covers the key behavioral distinction (image vs video) and clearly communicates the return format. Nothing critical is missing for the agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description mentions 'bounded' which relates to maxDimension, but doesn't add new parameter-specific meaning beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Return one bounded JPEG as MCP image content for visual inspection.' It specifies the verb (return), the resource (media asset), the output format (JPEG), and the purpose (visual inspection). It also distinguishes itself from siblings by noting the difference between image and video behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the phrase 'for visual inspection' and the tool name, but there is no explicit comparison to alternatives or guidance on when not to use it. No exclusions or alternative tool references are provided, so it falls short of a clear contextual distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_assets_updateUpdate Media AssetAIdempotentInspect
Rename one media asset, edit its description, move it to a folder, or change B-roll eligibility. Provide at least one of name, description, folderId, or allowUsingAsBroll.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New media asset name. | |
| assetId | Yes | Media asset UUID. UUID string. | |
| folderId | No | Target folder UUID, or null to move the asset to root. | |
| description | No | New description, or null to clear it. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| allowUsingAsBroll | No | Whether the asset may be selected as B-roll. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| asset | Yes | |
| updatedFields | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description accurately describes the write behavior but adds no extra context beyond what the annotations imply (e.g., side effects, reversibility, idempotency details). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: one sentence lists the actions, followed by the required at-least-one condition. It is front-loaded, contains no fluff, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with an output schema and clear annotations, the description is nearly complete. It covers the tool's purpose and the key usage constraint. It implicitly conveys partial update semantics but could be slightly more explicit about that. Overall, sufficient for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. However, the description adds the critical constraint that at least one of name, description, folderId, or allowUsingAsBroll must be provided, which is not enforced in the schema. This adds meaningful guidance beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a single media asset with specific actions: rename, edit description, move to folder, or change B-roll eligibility. It is unambiguous and differentiates from read-only sibling tools like media_assets_get or media_assets_preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (updating a media asset) but does not explicitly mention alternatives or when not to use it. The instruction to provide at least one of the updatable fields is a constraint, not a comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_folders_createCreate Media FolderAIdempotentInspect
Create one media-library folder in a workspace and return a retry-safe mutation receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder name. | |
| iconType | No | Folder icon type. | folder |
| description | No | Optional folder description. | |
| workspaceId | No | Workspace UUID, or null for the default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| parentFolderId | No | Parent folder UUID, or null for the root. |
Output Schema
| Name | Required | Description |
|---|---|---|
| folder | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'retry-safe mutation receipt' which aligns with the idempotentHint annotation, providing a bit more nuance. However, it does not disclose other behavioral aspects beyond what annotations already indicate, and the annotations already cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the primary action and result. It is concise without any redundant words, earning the highest score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complete schema coverage and existence of an output schema, the description is sufficient. It states the core action and the return of a receipt, providing all necessary context for an AI agent to understand the tool's purpose and outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters are fully described in the schema with 100% coverage. The description itself adds no additional parameter semantics or relationships, so the schema does the heavy lifting. A baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create') and resource ('media-library folder'), and mentions the return of a mutation receipt. This distinguishes it from siblings like media_folders_list, and the scope ('one folder') is explicitly defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage context: when you need to create a media folder. However, it does not explicitly name alternatives (e.g., media_folders_list for listing) or provide when-not-to-use guidance, so there is clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_folders_listList Media FoldersARead-onlyIdempotentInspect
List one bounded level of media-library folders and direct asset counts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum folders to return (1-50). | |
| offset | No | Folder offset. | |
| workspaceId | No | Workspace UUID, or null for the default workspace. UUID string. | |
| parentFolderId | No | Parent folder UUID, or null for root folders. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| folders | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive behavior, and the description adds useful behavioral context: it returns only one level of folders and direct (non-recursive) asset counts. This clarifies scope and return semantics beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that fully conveys the tool's purpose and key scoping behavior. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers the essential scope and return value, and the output schema and annotations fill remaining gaps (pagination, safety). No critical missing details for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning to the parameters; 'bounded level' implicitly relates to parentFolderId but does not explain parameter syntax or behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('media-library folders') and scopes the action ('one bounded level', 'direct asset counts'). This distinguishes it from sibling tools like media_folders_create (create) and media_list (likely asset-level listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by noting 'one bounded level' (i.e., not recursive), but it does not explicitly state when to prefer this over alternatives or provide exclusions. The parentFolderId parameter further hints at hierarchy traversal, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_import_inspectInspect Import URLARead-onlyIdempotentInspect
Inspect a user-provided public social-video or Google Drive URL and return available import metadata without creating media.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public video URL. Supports social video links and Google Drive file links. | |
| confirmRightsToMedia | No | Set true only after the user confirms they own the media or have permission to import it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| preview | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description reinforces 'without creating media' and adds the input constraint that the URL must be public, but it does not go beyond annotations to disclose failure modes, rights-confirmation effects, or provider-specific behavior. This is adequate but not especially rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every clause earns its place: the source ('user-provided public'), the supported link types ('social-video or Google Drive URL'), the behavior ('return available import metadata'), and the key non-effect ('without creating media').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With strong annotations, a 100%-covered input schema, and an output schema present, the description covers the core task well and reinforces the critical read-only distinction. It could be more complete by explicitly separating itself from media_import_scan_page or explaining what confirmRightsToMedia actually changes in the response, but those are minor gaps given the surrounding structured context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'url' and 'confirmRightsToMedia'. The description mostly restates the schema's URL domain (public, social video or Google Drive) and adds no new meaning about URL formats, required confirmation semantics, or edge cases. It does not elevate above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Inspect') with a clear resource ('a user-provided public social-video or Google Drive URL') and a clear outcome ('return available import metadata'). The phrase 'without creating media' distinguishes it from import-oriented siblings like media_import_url, making the tool's role as a read-only preflight step evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when a user provides a public URL and you need import metadata without creating media. It does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance, but the use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_import_scan_pageScan Page For VideoARead-onlyIdempotentInspect
Scan a user-controlled public page and return an importable video URL found on it without creating media.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Video page URL or direct media URL to inspect for an importable video. | |
| confirmAuthorizedToScan | No | Set true only after the user confirms they control the page or are authorized to scan it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| resolved | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose read-only, idempotent, and non-destructive behavior. The description adds meaningful context by explicitly stating no media is created and that the target must be a user-controlled public page, reinforcing the safety and authorization expectations beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, directly relevant sentence with no filler. The primary action, target, outcome, and non-destructive nature are all front-loaded and economically expressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with strong annotations and a fully documented schema, covers what the tool does and its key constraints. The presence of an output schema means return value details are not required here. A small gap is the lack of explicit guidance on when to use this tool versus its import-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are already well described in the input schema, so the description carries little additional parameter burden. It does not add extra semantics beyond what the schema provides, which matches the baseline expectation given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Scan a user-controlled public page') and outcome ('return an importable video URL found on it'), with a clear non-creation qualifier. It does not explicitly distinguish itself from sibling tools like media_import_inspect or media_import_url, but its page-scanning purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that the page must be user-controlled and public, which implies an authorization condition, and 'without creating media' signals a non-destructive inspection use case. However, it does not explicitly state when to prefer this tool over the related media_import_inspect or media_import_url tools, nor does it describe when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_import_urlImport Media From URLAInspect
Import a video, audio, or image from a user-provided direct URL into the private BlitzReels media library.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the media file to download and upload | |
| name | No | Optional name for the file | |
| projectId | No | Optional project ID to associate the upload with. UUID string. | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. | |
| contentHashSha256 | No | Optional SHA-256 hex hash of file bytes for dedupe optimization. 64-character hex string. | |
| confirmRightsToMedia | No | Set true only after the user confirms they own the media or have permission to import it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| media | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent operation, and the description's 'Import' wording is consistent with that. It adds helpful context about the destination and accepted media types, but it does not disclose behavioral nuances like network download behavior, validation failures, dedupe-by-hash semantics, or the rights confirmation requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficiently structured sentence that front-loads the action, resource type, source, and destination. There is no filler, and every phrase contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich schema descriptions, clear annotations, and an output schema present, the description provides enough context for an agent to call the tool correctly. It could be more complete by giving explicit routing guidance versus upload/inspect siblings, but that gap does not block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for all six parameters, so the description does not need to restate parameter details. The description adds no new parameter-level semantics beyond the schema, but the baseline of 3 applies because the structured schema already carries that burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb ('Import'), a clear resource (video, audio, or image from a direct URL), and a destination ('private BlitzReels media library'). This distinguishes it from sibling tools such as media_upload_file and media_import_inspect without requiring an agent to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'user-provided direct URL' implies the intended use case: importing remote media into the library. However, the description never explicitly names alternatives or states when not to use this tool, such as for local file uploads or pre-import URL inspection, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_listList MediaARead-onlyIdempotentInspect
List media files in user's library (videos, audio, images)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of assets to return (1-50) | |
| offset | No | Media asset offset. | |
| assetType | No | Filter by asset type | all |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| assets | Yes | |
| bounds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds minimal extra behavioral context beyond scope ('user's library'), but does not disclose pagination, ordering, or default workspace behavior beyond what schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's purpose without redundancy or filler. It is front-loaded and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple filtered-list tool, the description is sufficient when combined with complete schema documentation, strong annotations, and an output schema. There are no complex behaviors or hidden side effects to explain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter documented (limit, offset, assetType, workspaceId). The description adds no new parameter nuance beyond mentioning media types, which duplicates the assetType enum. Baseline 3 is appropriate because the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('media files in user's library'), and clarifies scope with media types ('videos, audio, images'). This clearly distinguishes it from siblings like media_assets_get (singular asset retrieval) and media_folders_list (folders).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly establishes usage context: use this tool to list media assets in the user's library. It doesn't explicitly name alternatives or exclusions, but the purpose is clear enough and no conflicting sibling offers the same list functionality with these filters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_transcript_getGet Media TranscriptARead-onlyIdempotentInspect
Get transcript summary metadata or a bounded window of transcription segments for a video asset.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Summary returns metadata only. Text returns joined text for a bounded segment window. Full returns the bounded segment objects without duplicating their text. | summary |
| limit | No | Maximum transcript segments to return (1-200). | |
| offset | No | Transcript segment offset. | |
| assetId | Yes | The media asset ID to get transcript for. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| transcript | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool's safety profile is clear. The description adds 'bounded window' to indicate pagination/limiting behavior, which is useful context beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no wasted words. It front-loads the action and clearly states the two output forms, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 4-parameter schema fully described, an output schema present, and annotations covering safety, the description provides adequate context. It might slightly under-explain the three modes, but the schema's mode enum descriptions fill that gap sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, including mode, limit, offset, and assetId. The description's reference to 'summary metadata or bounded window' loosely maps to mode but adds no concrete parameter details beyond what the schema already specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets transcript summary metadata or a bounded window of transcription segments for a video asset, using a specific verb ('Get') and identifying the resource and scope. This distinguishes it from sibling media tools, none of which handle transcripts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context implies this is the tool for retrieving transcript data from a video asset, with no sibling transcript tools offering an alternative. It does not explicitly state when not to use it, but the clarity of purpose and lack of transcript siblings provide sufficient usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upload_fileUpload FileAInspect
Import a video, audio, or image file from ChatGPT into the BlitzReels media library. Use this for a file the user attached or picked, and for an image ChatGPT generated in this conversation that the user wants to keep, animate, or edit in BlitzReels.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | A file from ChatGPT: attached by the user, picked from their file library, or produced earlier in this conversation. ChatGPT provides this value. | |
| name | No | Optional name to use in BlitzReels. | |
| projectId | No | Optional BlitzReels project ID to associate with the uploaded file. UUID string. | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| media | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (readOnly=false, destructive=false, idempotent=false), so the description carries the burden. It only says 'import' and does not disclose behavioral details like whether the file is copied or moved, whether any processing occurs, or whether permissions are needed. The source and types are stated, but these align more with purpose than with behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two clearly written sentences. The first sentence front-loads the action and target, and the second provides the exact use cases. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and a moderately complex nested input, but the description leaves gaps: it doesn't mention how this differs from media_upload_start/finish, whether import is one-step, or any preconditions. It covers the main use scenarios but could be more complete regarding alternatives and side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has descriptions in the schema. The description adds context that the file must come from ChatGPT, which clarifies the 'file' parameter's origin, but it doesn't add much for name, projectId, or workspaceId beyond what the schema provides. This matches the baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Import a video, audio, or image file from ChatGPT into the BlitzReels media library.' This is a specific verb ('import') with a clear resource and target, and it distinguishes from sibling tools like media_import_url and media_upload_start by emphasizing the source is ChatGPT-attached/generated files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool: for files the user attached or picked, and for ChatGPT-generated images the user wants to keep, animate, or edit. This provides clear context, though it doesn't explicitly name alternatives or exclusions (e.g., when to use media_import_url instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upload_finishFinish Media UploadAInspect
Complete the upload process after uploading to a presigned URL
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | Yes | Name of the uploaded file | |
| projectId | No | Optional project ID to associate the upload with. UUID string. | |
| storageKey | Yes | Storage key returned from media_upload_start | |
| contentType | Yes | MIME type of the file | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. | |
| fileSizeBytes | Yes | Size of the uploaded file in bytes | |
| contentHashSha256 | No | Optional SHA-256 hex hash of file bytes for dedupe optimization. 64-character hex string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| media | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (all false), so the description must carry the full burden. It only says 'Complete the upload process' without disclosing side effects, such as asset creation, validation, or potential errors. This is nearly a tautology of the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no redundant words, front-loading the action and context. It is appropriately short, though it could have included more behavioral context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description captures the essential step and references the presigned URL flow, and an output schema exists. However, it omits details about required preconditions (e.g., calling media_upload_start), validation, and what 'completing' entails, making it minimally adequate for a 7-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 7 parameters with rich descriptions (100% coverage), including formats, constraints, and optionality. The tool description adds no parametric detail, but the schema alone provides sufficient semantics, justifying the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifically states the action 'Complete' and the resource 'upload process,' with the context 'after uploading to a presigned URL.' This clearly identifies the tool's role in the upload workflow and distinguishes it from siblings like media_upload_start and media_upload_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after uploading to a presigned URL' provides clear sequencing and prerequisite guidance. However, it does not explicitly mention alternatives or when not to use this tool, leaving some room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upload_startStart Media UploadAInspect
Get a presigned URL for direct file upload (for large files)
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | Yes | Name of the file to upload | |
| projectId | No | Optional project ID to associate the upload with. UUID string. | |
| contentType | Yes | MIME type (e.g., video/mp4, audio/mp3, image/jpeg) | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| uploadInfo | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'get a presigned URL' and gives no insight into side effects such as creating an upload session, URL expiration, or the need to call media_upload_finish afterwards. Annotations are all false, providing no safety profile, so the description carries the burden and fails to disclose the state-changing nature of initiating an upload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the core action and includes a high-value qualifier. No filler or redundancy; the title and description align well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description does not explain the expected workflow: how to use the returned presigned URL, whether to follow up with media_upload_finish, or why this differs from media_upload_file. This is a meaningful gap for an upload-start tool, making the description incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already fully documented. The description adds no additional parameter semantics beyond implying 'large files', earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get a presigned URL for direct file upload', which clearly states the tool's function. The parenthetical 'for large files' distinguishes it from sibling upload tools like media_upload_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for large files' provides clear context for when to use this tool, implying it is intended for direct/large uploads. However, it does not explicitly name alternatives or establish exclusion criteria (e.g., 'for small files use media_upload_file').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upscaleUpscale VideoAIdempotentInspect
Queue a ByteDance upscale of one stored video asset to 1080p or 4k. Call media_upscale_estimate first. Spends AI credits and returns a new pending media asset to poll with media_assets_get.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Source video asset UUID. UUID string. | |
| projectId | No | Optional project UUID to attach the credit spend. UUID string. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| targetResolution | Yes | Output long-edge target. |
Output Schema
| Name | Required | Description |
|---|---|---|
| runId | Yes | |
| status | Yes | |
| assetId | Yes | |
| sourceAssetId | Yes | |
| creditsRequired | Yes | |
| mutationReceipt | Yes | |
| targetResolution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (non-destructive, idempotent, closed-world), and the description adds genuinely new behavior: it consumes AI credits and returns a new pending media asset requiring polling. Those are the two things an agent most needs to know before invoking an async, credit-spending job.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then prerequisite, then side effects and next step. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an existing output schema, the description still conveys the async contract (pending asset + polling), the credit cost, and the required prerequisite call. An agent has everything needed to invoke and follow up correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter including assetId, targetResolution, projectId, workspaceId, and idempotencyKey is already documented with format and defaults. The description only restates the resolution options, adding no meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (upscale), the single resource affected (one stored video asset), the provider, and the two valid outputs (1080p/4k). It is clearly distinguishable from media_upscale_estimate, which it explicitly defers to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite ('Call media_upscale_estimate first') and a follow-up path (poll with media_assets_get). It doesn't spell out when NOT to use it, but the sequencing guidance is strong and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upscale_estimateEstimate Video UpscaleARead-onlyIdempotentInspect
Estimate ByteDance upscale eligibility and credits for one stored video. Does not spend credits or queue a job. Call this before media_upscale.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Source video asset UUID. UUID string. | |
| projectId | No | Optional project UUID for the estimate context. UUID string. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| targetResolution | Yes | Output long-edge target. |
Output Schema
| Name | Required | Description |
|---|---|---|
| eligible | Yes | |
| targetFps | Yes | |
| sourceLongEdge | Yes | |
| targetLongEdge | Yes | |
| creditsRequired | Yes | |
| durationSeconds | Yes | |
| ineligibleReason | Yes | |
| targetResolution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description reinforces this with valuable context: 'Does not spend credits or queue a job,' which tells the agent the side-effect profile. It does not add rate limits, auth requirements, or latency expectations, so it falls slightly short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero waste. The purpose is front-loaded, the behavioral constraint follows, and the routing instruction comes last.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a read-only estimation tool. The description establishes purpose, side-effect profile, and sibling relationship; the schema and annotations cover parameters and safety. With an output schema present, no return-value explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are fully documented in the schema, including the enum for targetResolution. The description adds no parameter-level detail beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Estimate ByteDance upscale eligibility and credits for one stored video.' Explicitly distinguishes from the sibling media_upscale by noting it 'does not spend credits or queue a job' and instructs calling it 'before media_upscale.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing guidance: 'Call this before media_upscale' names the alternative and the condition that selects it. The agent knows exactly when to use this tool versus the actual upscale tool, with no exclusions left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mute_clip_audioMute Clip AudioAIdempotentInspect
Set one timeline media item's volume to zero.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| timelineItemId | Yes | ||
| expectedRevision | No | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states the direct effect (volume set to zero) and is consistent with annotations (idempotent, not destructive). It adds little beyond the tool name, but annotations carry the safety profile; no contradiction or extra context like reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, densely packed, no filler. Front-loaded with the primary action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has an output schema, and rich annotations. The description adequately identifies the single clip target; missing only explicit alternative guidance, but overall the context is sufficient for calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers projectId, idempotencyKey, and expectedRevision. Description clarifies timelineItemId as the target media item, compensating for the missing schema description. No additional syntax or relation to the optional expectedRevision is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Set') and precise resource ('one timeline media item's volume to zero'). It clearly distinguishes from sibling tools like timeline_audio_add or batch_update_timeline_clips by targeting a single clip's audio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one timeline media item' implies single-item usage, but the description does not explicitly state when to choose this over update_timeline_clip or batch_update_timeline_clips, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_createCreate ProjectBInspect
Create a new private BlitzReels video project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name (1-100 characters) | |
| seriesId | No | Optional Series UUID for this new project. | |
| frameRate | No | Video frame rate | 30 |
| aspectRatio | No | Video aspect ratio | 9:16 |
| description | No | Project description (optional, max 500 characters) | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=false, so the write nature is disclosed. The description adds that the project is 'private', a useful behavioral detail, but does not mention authentication, default workspace resolution, or any side effects beyond the creation itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean sentence delivers the core intent without waste. It front-loads the action and object, though given the 7-parameter surface, the description is relatively thin if not actively concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and output schema cover the parameter and return details. However, the description omits usage guidance (when to use vs alternatives) and does not clarify operational defaults or consequences like default workspace or private visibility, which would help an agent invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 7 parameters are already documented in the schema. The description adds no additional meaning or constraints about parameters (e.g., default aspectRatio, frameRate behavior) beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create') and a specific resource ('new private BlitzReels video project'), which clearly identifies it as a creation tool for projects. It distinguishes from sibling read/list tools like projects_get and projects_list, though it doesn't explicitly name any alternative as another option.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as workflow_runs_create or clips_create. There is no mention of prerequisites, idempotency usage, or scenarios where this should be preferred over other create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_getGet ProjectARead-onlyIdempotentInspect
Get details for one BlitzReels project, including timeline summary, clips, and captions.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID to get details for. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context by naming what details are included (timeline summary, clips, captions), which goes beyond the annotations. It does not mention error handling or permissions, but these are less critical given the safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the action and resource and lists included content. There is no redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one well-documented parameter and an output schema, the description is sufficiently complete. It even previews the return content, making the tool's purpose and result clear without needing to reference the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% description coverage for the single parameter, including type and format. The tool description does not add any additional meaning beyond what the schema states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details'), the resource ('one BlitzReels project'), and specifies key content ('timeline summary, clips, and captions'). This distinguishes it from list-style siblings like projects_list and from clip-specific tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is clear enough that usage is implied: use when needing details for a single project. However, there is no explicit guidance contrasting with projects_list or projects_inspect, so the agent must infer when this is the right choice among similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_inspectInspect ProjectARead-onlyIdempotentInspect
Read bounded project context for editing, including timeline items, media assets, transcripts, captions, and stable IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Bounded project context view to return. | timeline |
| search | No | Optional media search when mode is assets or full. | |
| projectId | Yes | Project UUID. UUID string. | |
| assetLimit | No | Maximum media assets to return (1-50). | |
| assetOffset | No | Media asset offset. | |
| timelineLimit | No | Maximum timeline items to return (1-1000). | |
| timelineOffset | No | Timeline item offset. | |
| transcriptLimit | No | Maximum transcript segments to return (1-500). | |
| captionWordLimit | No | Maximum caption words to return (1-2000). | |
| transcriptOffset | No | Transcript segment offset. | |
| captionWordOffset | No | Caption word offset. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| mode | Yes | |
| bounds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description is not burdened with safety disclosure. It adds the 'bounded' trait and lists content types, but does not describe pagination defaults, mode behavior, or other operational details beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, compact sentence that front-loads the core action ('Read bounded project context') and then efficiently enumerates the major content categories. No redundant words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (11) and the presence of a full output schema, the description provides a sufficient high-level overview without needing to explain return values or parameter syntax. It could have mentioned the default mode or the purpose of the 'mode' parameter, but that is covered in the schema, so the description remains adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself does not add parameter-specific meaning; it only states what content is included. All 11 parameters are fully documented in the schema, so no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and identifies the exact resource ('bounded project context for editing') with a clear list of included content (timeline items, media assets, transcripts, captions, and stable IDs). This clearly distinguishes it from sibling tools like projects_get or media_transcript_get by emphasizing the consolidated yet bounded nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage during editing workflows by stating 'for editing', but it does not explicitly mention when to use this tool versus alternatives such as projects_get, media_assets_get, or media_transcript_get. There are no exclusions or explicit alternative references, leaving the decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_listList ProjectsARead-onlyIdempotentInspect
List the user's BlitzReels projects with status, duration, and basic metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of projects to return (1-50) | |
| offset | No | Project offset. | |
| search | No | Search projects by name | |
| status | No | Filter by project status | active |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| projects | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that results include status, duration, and metadata, but does not disclose default status filtering (active) or workspace fallback behavior. It is not misleading and adds mild value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It front-loads the action and resource and usefully names the key return fields, making it immediately scannable and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward list tool, the description is adequate given the fully documented schema, an output schema, and comprehensive annotations. It does not mention pagination or filter defaults, but those are captured in the input schema, so nothing essential is missing for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 5 parameters documented in detail, including constraints, enums, and defaults. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('the user's BlitzReels projects') and states the returned information ('status, duration, and basic metadata'). This distinguishes it from sibling tools like projects_get and projects_inspect, which handle single-project retrieval or deeper inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a listing use case but does not explicitly explain when to use projects_list versus alternatives such as projects_get, projects_inspect, or projects_create. No exclusions or conditions are provided, so an agent must infer selection from the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_applyApply SeriesAIdempotentInspect
Create or replace a Growth+ Series identity and defaults. defaultCreationMode selects podcast branding or faceless Story Kit defaults; membership stays mixed. Updates require expectedRevision. Existing content keeps its settings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seriesId | Yes | ||
| storyKitId | Yes | ||
| description | Yes | ||
| logoAssetId | Yes | ||
| workspaceId | Yes | ||
| coverAssetId | Yes | ||
| captionThemeId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes | ||
| defaultCreationMode | Yes | podcast |
Output Schema
| Name | Required | Description |
|---|---|---|
| series | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description explains important behaviors: create or replace semantics, mode-dependent defaults, mixed membership, expectedRevision as an update guard, and that existing content settings are preserved. This substantially clarifies the tool's side effects and complements the idempotentHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, all of which earn their place. The core action is front-loaded, and the mode selection, update condition, and content-preservation guarantee follow without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite strong behavioral detail, the tool has 11 required parameters and no schema descriptions, and the description does not cover idempotency, asset/project relationships, or how to form a valid request. An agent would still struggle to populate most required fields correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must carry parameter meaning, but it only elaborates on defaultCreationMode and expectedRevision. The other nine required parameters (idempotencyKey, asset IDs, workspaceId, captionThemeId, etc.) remain unexplained, leaving the agent without enough semantic grounding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create or replace a Growth+ Series identity and defaults', which names the exact operation and resource. It clearly differentiates from siblings like series_assign or story_kits_apply by focusing on the Series identity/defaults object.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful context for the create-vs-update distinction: updates require expectedRevision, and defaultCreationMode selects branding mode. However, it never states when to choose this tool over related siblings such as story_kits_apply or series_assign, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_assignAssign Series ContentBIdempotentInspect
Assign, move or detach one source or project using expectedSeriesId. Moving a source does not move existing clips or change branding.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| seriesId | Yes | ||
| contentId | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedSeriesId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| kind | Yes | |
| changed | Yes | |
| seriesId | Yes | |
| mutationReceipt | Yes | |
| previousSeriesId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds one useful behavioral disclosure: 'Moving does not move clips or change branding.' However, it does not disclose the meaning of null seriesId/expectedSeriesId, concurrency-failure behavior, or side effects of assignment/detachment beyond the moving case.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the action and resource, and the follow-up sentence delivers a key side-effect warning without burying the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no parameter descriptions in the schema, the description must carry most of the semantic load. It omits concurrency semantics, detach behavior with null IDs, idempotency behavior, and any mention of workspaceId.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only expectedSeriesId is mentioned, and its role as an optimistic-concurrency guard is not explained. The schema has zero descriptions, so the meaning of contentId, workspaceId, seriesId null, and idempotencyKey is left entirely to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the exact verb set: 'Assign, move or detach one source or project,' which clearly identifies the action and resource. It also names the key parameter (expectedSeriesId) and adds a scoping detail (one source/project), so the tool's purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but gives no guidance on when to choose it over alternatives, and no preconditions or exclusions. With sibling tools such as series_apply present, an agent gets no help deciding between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_contentList Series ContentARead-onlyIdempotentInspect
List sources or projects in a Series. Null seriesId lists standalone content. sourceId filters projects by clip origin.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| limit | Yes | ||
| offset | Yes | ||
| search | Yes | ||
| seriesId | Yes | ||
| sourceId | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| bounds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful behavior around null seriesId and sourceId filtering, but does not disclose pagination, result shape, or how workspaceId influences the list; the output schema mitigates some of this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the primary purpose front-loaded and no filler. The null-seriesId behavior and sourceId filter are high-value details expressed economically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for the core list-and-filter scenario, and the output schema plus annotations supply return and safety context. Still, with seven parameters all listed as required and no explanation of workspaceId or search semantics, an agent may struggle to construct a fully correct request without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate, but it only clarifies seriesId, sourceId, and the kind distinction. It leaves workspaceId, search, limit, and offset semantics unexplained, and workspaceId is a required parameter with nullable/default ambiguity that an agent may not resolve from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource combination ('List sources or projects in a Series') and clarifies the key distinction between in-series and standalone content. This differentiates it from series_list and series_get, which focus on the series objects themselves rather than their contents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operative context: 'Null seriesId lists standalone content' tells the agent when to pass a null seriesId, and 'sourceId filters projects by clip origin' explains an important filtering scenario. It does not explicitly name alternative tools or exclusions, but the usage context is sufficient for a listing operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_deleteDelete SeriesADestructiveIdempotentInspect
Delete the Series container at an expected revision and detach its content. Sources, projects and exports are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| seriesId | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| detachedSources | Yes | |
| mutationReceipt | Yes | |
| contentPreserved | Yes | |
| detachedProjects | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: deletion is conditional on an expected revision, the operation detaches content rather than destroying it, and sources, projects, and exports are preserved. It does not contradict the destructiveHint or idempotentHint annotations, though it could disclose what happens on a revision mismatch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver the essential action, the concurrency condition, and the preservation guarantee with no filler. The destructive scope is front-loaded, making the tool easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a clear picture of what is deleted and what is preserved, and the output schema covers return values. However, with four required parameters and zero schema coverage, it does not explain idempotencyKey expectations or revision-conflict behavior, so an agent still lacks some operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only hints at expectedRevision via 'at an expected revision'. It does not explain seriesId, workspaceId, or idempotencyKey semantics, leaving the agent to rely on parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Delete the Series container') and clarifies the operation's scope by stating it detaches content while preserving sources, projects, and exports. This clearly distinguishes it from sibling tools like series_get, series_list, series_content, series_apply, and series_assign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when deleting the container itself rather than its content—but it does not explicitly name alternatives or state when not to use it. The preservation note provides useful context but no direct routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_getGet SeriesCRead-onlyIdempotentInspect
Read a Series identity, creative defaults and revision.
| Name | Required | Description | Default |
|---|---|---|---|
| seriesId | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| series | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description's 'Read' aligns with the readOnlyHint annotationating and there is no contradiction. It adds some transparency by listing what is read (identity, creative defaults, revision), but it does not explain side effects or lack thereof beyond what the readOnlyHint already signals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that leads with the operation ('Read') and lists the resource aspects. It is efficient and free of padding, though the phrasing 'a Series identity' is slightly awkward and could be more polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description leaves out important context: what the revision is, how it is selected, and what the workspace/series relationship is. While annotations cover safety, the description is too terse to fully prepare an agent to make correct use of this tool among many series-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for either parameter, so an agent must infer that `seriesId` identifies the resource and `workspaceId` scopes the read only from their names. The description fails to clarify how the parameters relate to the returned identity, creative defaults, or revision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'Read' and names the resource (a Series) plus the data facets: identity, creative defaults, and revision. It is specific enough for an agent to understand this is a read operation, though it does not explicitly contrast with sibling tools like series_content or series_apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many related series_* and get_* siblingsamental. It does not mention which series fields are included, whether the revision is current or historical, or any preconditions such as needing a project or workspace context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_listList SeriesCRead-onlyIdempotentInspect
List optional Series with bounded counts and cover previews.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| bounds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the operation's safety. The description adds 'bounded counts' and 'cover previews,' which suggests behavior beyond a plain list (e.g., limited results and preview fields), but it doesn't detail what 'bounded' means or what 'cover previews' entail. With annotations covering mutation concerns, a 3 is reasonable as it adds some context but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the verb, but it is not well-structured. It lacks detail on parameters and usage, making it concise at the cost of value. It reads like a fragment rather than a complete sentence, and the ambiguity in 'optional Series' undermines its efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema connectivity (there is an output schema, so return format is covered), but the description is was lacking for a list/read tool with 3 parameters. Without parameter semantics and sibling differentiation, the description is insufficient for an agent to correctly call it with the right workspace scope or understand pagination behavior, even with annotations present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter information. It doesn't explain 'limit', 'offset', or 'workspaceId' beyond what the schema names and types suggest. 'workspaceId' could be null, likely meaning 'all workspaces,' but the description leaves that unclear. For a tool with 3 parameters and zero schema descriptions, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'List optional Series with bounded counts and cover previews,' which is unusually worded: 'optional Series' is vague (optional as in list is optional? or series have optional fields?), and it doesn't clarify what a Series is or how it differs from siblings like series_get, series_content, or series_apply. It names the verb 'List' and resource 'Series' but the qualifiers add confusion rather than clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. There are many list tools (media_list, characters_list, projects_list) and series-specific tools (series_get, series_content, series_apply) but no mention of when series_list is preferred. The 'bounded counts' hint implies pagination but doesn't explain when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
story_kits_applyApply Story KitAIdempotentInspect
Create or update a Story Kit with optimistic concurrency and an idempotent mutation receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Stable Story Kit name. | |
| facts | No | ||
| locations | No | ||
| storyKitId | No | ||
| description | No | ||
| visualStyle | Yes | Canonical visual-style contract. | |
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. | |
| characterIds | No | ||
| idempotencyKey | Yes | ||
| expectedRevision | No | ||
| narratorCharacterId | No | ||
| styleReferenceAssetIds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| storyKit | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description adds value by specifying 'optimistic concurrency' and 'idempotent mutation receipt', which inform the agent about concurrency handling and return semantics. This is additive beyond annotations, though it could mention what happens on conflict or failure for a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence — concise and front-loaded with the core action ('Create or update a Story Kit'). It adds two key behavioral traits (optimistic concurrency, idempotent mutation receipt) without waste. However, given the high parameter count and low schema coverage, a few more words on parameter behavior might be warranted, dropping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 12 parameters, 25% schema coverage, and no enums, but offers an output schema. The description covers the high-level behavior (create/update, concurrency, idempotency) but does not explain what the output schema contains, how locations or facts are structured, or error handling. With moderate complexity and partial schema coverage, a 3 is appropriate — adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, meaning the description must compensate, but it only mentions the three required parameters (name, visualStyle, idempotencyKey) semantically. The term 'Canonical visual-style contract' clarifies visualStyle, but for 12 parameters, most (facts, locations, characterIds, etc.) receive no additional explanation. The output schema exists, which slightly reduces the burden, but the description is insufficient to fully guide parameter use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create or update a Story Kit' — a specific verb and resource combination that distinguishes it from siblings like story_kits_get and story_kits_list. However, it lacks the exclusive scope (e.g., 'bounded to a workspace') that would make it a 5, and the 'idempotent mutation receipt' phrase is somewhat technical and not as immediately graspable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this versus alternatives. The description mentions optimistic concurrency and idempotency, which imply it is used for safe create-or-update operations, but it does not name sibling tools (like story_kits_get for reading) or state when not to use it. The 'apply' name hints at upsert behavior, but context is missing for a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
story_kits_getGet Story KitBRead-onlyIdempotentInspect
Inspect one Story Kit and its revision before generating or updating a story.
| Name | Required | Description | Default |
|---|---|---|---|
| storyKitId | Yes | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| storyKit | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey this is a read-only, idempotent, non-destructive tool. The description adds 'Inspect one Story Kit and its revision', which aligns with annotations without contradicting them. The added value is minimal—just specifying the 'revision' aspect—but since annotations handle the heavy lifting, a 3 is appropriate. No contradiction detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action ('Inspect one Story Kit and its revision') and places context later ('before generating or updating a story'). No extraneous words. It could be structured to hint at the required parameter, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 params, 1 required, no enums/nested objects) and the presence of an output schema (which handles return values), the description is mostly complete. However, it fails to describe the 'storyKitId' parameter, which is required and has no schema description, leaving a gap for the agent. Additional hints about what kind of story kit (e.g., draft or published) would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: one required param (storyKitId) has no description, while workspaceId has a description in the schema. The description does not document the 'storyKitId' parameter or explain its format/expected value, and it doesn't clarify that 'workspaceId' is optional. With two parameters and half undocumented in both schema and description, a baseline 3 is reasonable, but no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Inspect' with 'one Story Kit and its revision', which clearly specifies the resource and scope (single item plus revision). It also alludes to a workflow purpose ('before generating or updating a story'), distinguishing it from sibling tools like story_kits_list (which lists kits) and story_kits_apply (which applies a kit). However, it doesn't explicitly exclude other potential actions like copying or deleting, leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('before generating or updating a story'), which helps an agent understand the typical workflow position. However, it does not explicitly state when NOT to use this tool vs alternatives like story_kits_list (for browsing) or projects_get (for inspecting a project instead of a story kit). No exclusion or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
story_kits_listList Story KitsBRead-onlyIdempotentInspect
List bounded reusable Story Kits that bind characters, locations, style, facts, and narrator voice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| storyKits | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds the concept of 'bounded reusable Story Kits' but does not disclose behavioral traits like pagination behavior, scoping (workspace filtering), or authentication requirements. This is adequate but not additive beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently states the purpose and defines the resource. Every word adds value, and there is no extraneous information. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core concept of Story Kits, but with an output schema present, it need not describe return values. However, it omits context about the three parameters (pagination, workspace filtering) and does not mention that the result is a list. For a list tool with multiple parameters, the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (workspaceId described). The description adds no parameter information at all. It does not mention that limit and offset control pagination or that workspaceId filters the workspace. Given the low schema coverage, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'List' and the resource 'Story Kits', and defines what a Story Kit is ('bind characters, locations, style, facts, and narrator voice'). This clearly distinguishes it from sibling tools like story_kits_get (single retrieval) and story_kits_apply (application), and from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., story_kits_get for a specific kit, story_kits_apply to apply a kit, or other list tools). It does not mention pagination, filtering, or any prerequisites. The agent is left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_audio_addAdd Audio To TimelineAInspect
Place an uploaded audio asset onto the actual BlitzReels project timeline at a timestamp. Use after media_upload_file when the user asks to add voiceover, music, or audio to a video.
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | Loop audio to fill requested duration | |
| volume | No | Audio volume multiplier, 1 is normal | |
| assetId | Yes | Audio media asset ID. UUID string. | |
| projectId | Yes | BlitzReels project ID. UUID string. | |
| startSeconds | No | Timeline start time in seconds | |
| fadeInSeconds | No | Fade-in length in seconds | |
| fadeOutSeconds | No | Fade-out length in seconds | |
| durationSeconds | No | Optional duration. Required if the audio asset duration is not known yet. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show this is a write operation (readOnlyHint=false), and the description confirms a mutation ('Place onto... timeline'). The description adds the prerequisite of a prior upload, which is useful, but it does not disclose other behavioral traits like validation of audio type, error cases, or reversibility. With minimal annotation detail, the description carries some burden but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core action and resource, and every word provides value. It does not waste space with redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 params, output schema exists), the description covers the primary use case, prerequisite, and audio-specific scope. It does not explain nuances like the required durationSeconds condition, but those are in the schema. It is adequately complete for an agent to decide when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description adds context that the asset must be an uploaded audio asset and that placement occurs at a timestamp, which reinforces but does not extend parameter meaning. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Place'), the resource ('uploaded audio asset'), and the destination ('actual BlitzReels project timeline at a timestamp'). It distinguishes this tool from siblings by specifically mentioning audio (voiceover, music), which separates it from timeline_media_add.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use after media_upload_file' and specifies the user intent ('add voiceover, music, or audio to a video'). This gives clear context for when to use the tool, but it does not mention when not to use it or explicitly name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_edit_applyApply Timeline EditAIdempotentInspect
Trim or extend one timeline item. Split one timeline item at an exact sequence position.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | ||
| projectId | Yes | UUID string. | |
| idempotencyKey | Yes | ||
| expectedRevision | Yes | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the operation types (trim/extend/split), which is useful but does not disclose behaviors like revision-based concurrency or potential side effects beyond what annotations already indicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that are front-loaded with the most important information. Every word contributes, with no redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the schema (nested operation union) and the presence of an output schema, the description is minimally adequate. It covers the core behavior but omits important context, such as the need for expectedRevision for optimistic concurrency and how this tool relates to timeline_edit_preview (apply vs preview).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with projectId and expectedRevision described. The tool description adds meaning by naming the two operations (trim/extend and split), which helps interpret the 'operation' union parameter. However, it does not explain parameters like trimStartDeltaSeconds, splitAtSeconds, or idempotencyKey, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with specific verbs and resources: 'Trim or extend one timeline item' and 'Split one timeline item at an exact sequence position.' It distinguishes two operation types and explicitly targets a single timeline item, making it easy to differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: when you need to trim, extend, or split a single timeline item. However, it does not explicitly mention alternatives or exclusions (e.g., batch edits or previewing), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_edit_previewPreview Timeline EditARead-onlyIdempotentInspect
Preview without mutation. Trim or extend one timeline item. Split one timeline item at an exact sequence position.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | ||
| projectId | Yes | UUID string. | |
| expectedRevision | Yes | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's 'without mutation' is consistent but not novel. However, it does add behavior beyond annotations by specifying that the preview covers trim/extend and split operations, which are concrete, non-obvious capabilities. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the critical 'without mutation' qualifier. Every phrase adds value—the first sentence establishes the read-only nature, the second enumerates supported operations. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (two operation variants), the presence of a detailed schema with oneOf, an output schema, and annotations covering safety, the description is sufficiently complete. It captures the essential behavioral contract (preview-only) and lists all supported operations; any remaining details are handled by the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for projectId and expectedRevision, but the operation parameter has no description and is expressed as a oneOf with const values. The description's enumeration of 'trim or extend' and 'split' maps to the two operation variants, but it does not clarify parameter semantics like 'expectedRevision' or delta meanings beyond what the schema names imply. With 67% schema coverage, the description gives partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Preview without mutation,' using a specific verb and resource that immediately distinguishes it from the sibling 'timeline_edit_apply.' It then enumerates the exact operations ('Trim or extend one timeline item,' 'Split one timeline item at an exact sequence position'), making the tool's scope unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Preview without mutation' clearly signals that this tool is for pre-flight checks rather than actual edits, and the sibling 'timeline_edit_apply' implies the alternative. However, it never explicitly states 'use this instead of timeline_edit_apply when you want to verify without persisting changes,' so it falls short of a fully explicit when/when-not directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_media_addAdd Media To TimelineAInspect
Place an uploaded image or video asset onto the actual BlitzReels project timeline at a timestamp. Use after media_upload_file when the user asks to add B-roll, a static image, or visual media to the video.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Image or video media asset ID. UUID string. | |
| projectId | Yes | BlitzReels project ID. UUID string. | |
| layerIndex | No | Exact timeline layer to use. Lower layer numbers render on top. Omit for intent-based placement. | |
| startSeconds | No | Timeline start time in seconds | |
| allowDuplicate | No | Allow inserting the same asset more than once | |
| positionPreset | No | Visual placement preset | fullscreen |
| animationPreset | No | Optional visual animation preset | none |
| durationSeconds | No | Duration in seconds. Required for still images when a specific length is needed. | |
| placementIntent | No | Layer intent used when layerIndex is omitted. Use overlay for visible B-roll/logo/sticker over video, background for behind video, exact when layerIndex is supplied. | overlay |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnlyHint=false, and the description reinforces the mutating nature by saying 'Place' onto the 'actual' timeline. It adds useful workflow context ('Use after media_upload_file') and media-type nuance, but it does not disclose side effects on existing timeline items or layer conflicts beyond what the schema already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences, front-loaded with the action and object, and every phrase adds value. The second sentence provides essential usage context without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 9-parameter schema that is fully described and an output schema, the description does not need to repeat internals. It covers core purpose and usage enough for an agent to select the tool, though it could mention layer/positioning semantics if the schema were less rich. Overall, it is sufficiently complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for every parameter, including enums and defaults. The description adds no additional parameter guidance, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Place'), a resource ('actual BlitzReels project timeline'), and object ('uploaded image or video asset'), clearly indicating what the tool does. It distinguishes from siblings like media_upload_file and timeline_audio_add by specifying B-roll/static image/visual media and 'actual' timeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use: after media_upload_file and when the user wants to add B-roll, a static image, or visual media. It gives a clear workflow but does not explicitly name alternative tools or provide when-not-to-use guidance, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_timeline_clipUpdate Timeline ClipAIdempotentInspect
Update one timeline item's start, duration, trim, layer, ignored state, or blurred background. Provide at least one field to update besides timelineItemId.
| Name | Required | Description | Default |
|---|---|---|---|
| ignored | No | ||
| projectId | Yes | UUID string. | |
| layerIndex | No | ||
| startSeconds | No | ||
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| timelineItemId | Yes | ||
| trimEndSeconds | No | ||
| durationSeconds | No | ||
| expectedRevision | No | Expected sequence revision, or null. | |
| trimStartSeconds | No | ||
| blurredBackground | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds the constraint about providing at least one field, but no additional behavioral traits like return formats or revision checking. It is consistent with annotations but does not go beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a necessary usage constraint. Every word earns its place, and it is appropriately compact for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 11-parameter schema and output schema presence, the description covers the key functional fields and distinguishes from similar tools. It omits explicit guidance on when to use this tool versus batch_update_timeline_clips, but the 'one' qualifier mitigates this. Overall, it is sufficiently complete for a concise tool description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 27%, but the description names several updatable fields (start, duration, trim, layer, ignored state, blurred background), providing some semantic guidance. It does not elaborate on parameter-specific details like the meaning of trimStart vs trimEnd or expectedRevision, leaving a gap for 8 undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('one timeline item'), and lists specific attributes ('start, duration, trim, layer, ignored state, or blurred background'). It distinguishes from the sibling 'batch_update_timeline_clips' by emphasizing 'one' timeline item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for single-item updates by saying 'one timeline item' and provides a key prerequisite: 'Provide at least one field to update besides timelineItemId.' It does not explicitly name alternatives or exclusions, but the sibling tool name suggests batch usage, making the context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_runs_createCreate Workflow RunBInspect
Create an interactive workflow run from a workflow and optional inputs.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Optional workflow input values. Omit to use workflow defaults. | |
| projectId | No | Optional project ID for workflows that operate on an existing project. UUID string. | |
| workflowId | Yes | Workflow ID to run. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
All annotations are negated hints (readOnly=false, destructive=false), so the description carries the burden of behavioral disclosure. It only adds the ambiguous term 'interactive' without explaining lifecycle, blocking behavior, or prerequisites, which is insufficient for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence that is front-loaded with the verb and contains zero filler. It communicates the core action efficiently without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and parameter descriptions cover return values and inputs well. However, the description fails to explain the 'interactive run' concept and its relationship to workflow_runs_execute_step, which is essential context for a moderately complex tool with nested object inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear per-parameter descriptions, so the baseline applies. The tool description mentions 'workflow and optional inputs' but adds no semantics beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('interactive workflow run'), which clearly distinguishes it from siblings like workflow_runs_get and workflow_runs_execute_step. However, the term 'interactive' is not elaborated, leaving some ambiguity about what makes this run type distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as workflow_runs_execute_step, nor does it explain when an interactive run is appropriate. No exclusions or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_runs_execute_stepExecute Workflow Run StepAInspect
Execute one pending workflow run step and return updated run status.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Workflow run ID. UUID string. | |
| stepRunId | Yes | Step run ID from workflow_runs_create or workflow_runs_get. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | Yes | |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-idempotent action, so it is understood to mutate state. The description adds the 'pending' constraint and that it returns updated status, but does not disclose side effects, failure behavior, or consequences of re-execution. Given the low annotation information, the description carries much of the burden and only partially meets it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that places the verb and object first, with no redundant information. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two well-documented parameters, an output schema present, and a straightforward action, the description provides sufficient context for a tool of this complexity. It lacks detail on state prerequisites or error handling, but these are partially mitigated by the output schema and the 'pending' qualifier.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (runId and stepRunId), each described as UUID strings with context. The description adds no parameter-specific meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute'), the specific resource ('one pending workflow run step'), and the outcome ('return updated run status'). This distinguishes it from sibling tools like workflow_runs_get (which retrieves) and workflow_runs_create (which creates a run).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it is for executing a pending step, implying it should be used when a run has steps ready to advance. It does not explicitly mention alternatives or exclusions, but the scope is unambiguous given 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.
workflow_runs_getGet Workflow RunARead-onlyIdempotentInspect
Get workflow run status, step statuses, outputs, warnings, and dashboard URL.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Workflow run ID. UUID string. | |
| stepLimit | No | Maximum workflow run steps to return (1-100). | |
| stepOffset | No | Workflow run step offset. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, idempotent, non-destructive nature. The description adds context by specifying the response contents (status, step statuses, outputs, warnings, dashboard URL), which is valuable beyond the structured annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that lists exactly what the tool returns with zero wasted words. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations covering safety, and a fully described parameter schema, the description is sufficient. It covers the core purpose and response scope without needing to duplicate structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all parameters described. The description mentions 'step statuses' but does not directly map to stepLimit/stepOffset; however, the schema already documents these parameters thoroughly, so the description adds no significant semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with a clear resource ('workflow run') and enumerates exactly what is returned (status, step statuses, outputs, warnings, dashboard URL). This distinguishes it from sibling tools like workflow_runs_create or workflow_runs_execute_step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for retrieving workflow run details, and the sibling tool names (create, execute_step) make the context unambiguous. However, it does not explicitly state when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows_getGet WorkflowARead-onlyIdempotentInspect
Get a workflow definition, input schema, defaults, and ordered steps.
| Name | Required | Description | Default |
|---|---|---|---|
| stepLimit | No | Maximum workflow steps to return (1-100). | |
| stepOffset | No | Workflow step offset. | |
| workflowId | Yes | Workflow ID. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds 'ordered steps' as return content but does not disclose additional behavioral traits like pagination limits or error conditions, which would be useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, front-loaded with the verb 'Get' and resource. Every word adds value, with no repetition of schema details or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema, full parameter coverage, and comprehensive annotations, the description is sufficiently complete for a get operation. It captures the core return value (workflow definition, input schema, defaults, ordered steps) and does not leave major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (workflowId, stepLimit, stepOffset) already documented. The description does not add parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a workflow definition, input schema, defaults, and ordered steps, which is specific and distinct from just listing workflows. However, it does not explicitly differentiate from sibling tools like workflows_list or workflow_runs_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as workflows_list or workflow_runs_get. There is no mention of typical use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows_importImport WorkflowAInspect
Import a public BlitzReels workflow into the user's workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | Public workflow ID to import. UUID string. | |
| workspaceId | No | Optional target workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (readOnlyHint=false, destructiveHint=false), so the description carries full responsibility for behavioral disclosure. It only states 'Import' without explaining side effects, idempotency, permission requirements, or outcomes on duplicate imports, leaving significant ambiguity for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the essential action without redundancy. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, output schema present), the description is adequately complete for selection and invocation. It does not explain behavioral nuances like idempotency or error cases, which are not covered by the output schema, but the core usage context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and clearly explains both workflowId and workspaceId, including their types and defaults. The description adds no parameter-specific insight beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Import'), the object ('a public BlitzReels workflow'), and the destination ('into the user's workspace'). This distinguishes it from read-only siblings like workflows_get and workflows_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is clear: to bring a public workflow into the user's workspace. However, the description does not explicitly mention alternatives or exclusions, such as using workflows_get to inspect before importing, though the context is sufficient for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows_listList WorkflowsARead-onlyIdempotentInspect
List public BlitzReels workflows that can be imported into a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum workflows to return (1-50). | |
| offset | No | Pagination offset. | |
| search | No | Optional search query for workflow name or description. | |
| trigger | No | Optional trigger filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| workflows | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds the scope that only public workflows are listed and that they are importable, which is useful context beyond the annotations. However, it does not disclose pagination behavior, response structure, or any filtering nuances beyond the schema, so the added value is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence. It states the subject, action, and key qualifier ('public', 'can be imported') without wasted words or redundancy. It is front-loaded and immediately comprehensible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with four optional parameters, full schema descriptions, and a safety profile covered by annotations, the description is sufficiently complete. It clarifies that these are public workflows intended for import, which is the key context for using the tool. The presence of an output schema further reduces the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage, with each parameter (limit, offset, search, trigger) having a clear description. The tool description itself does not add parameter-level guidance, but the schema already does the heavy lifting, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List), the resource (public BlitzReels workflows), and the purpose/capability (can be imported into a workspace). It distinguishes from sibling tools like workflows_get (retrieves a single workflow) and workflows_import (performs the import), making it obvious this is a discovery/browsing endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: finding public workflows to import. It does not explicitly name alternatives or provide when-not-to-use guidance, but the context is clear and the sibling tool names (workflows_import, workflows_get) subtly signal the workflow lifecycle. No exclusions are mentioned, but for a simple list operation this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Changed
generation_faceless_create1 field changed- added
Input schema / properties / styleReferenceAssetIdsAdded value: +{ + "default": [], + "description": "Optional stills that lock rendering medium, palette, lighting and texture. Not used as scene frames.", + "items": { + "format": "uuid", + "type": "string" + }, + "maxItems": 10, + "type": "array" +}
- Changed
generation_video_create3 fields changed- changed
Input schema / properties / durationSeconds / descriptionPrevious value: -"Clip length in seconds (2-30). Must be supported by the chosen model."New value: +"Choose a value from the selected model's durations_seconds. duration_seconds_min and duration_seconds_max are the bounds of that list, not a continuous range." - changed
Input schema / properties / endFrameAssetId / descriptionPrevious value: -"Last frame image. Requires a source first frame and a supported model; reference arrays cannot be combined with end frames."New value: +"Last-frame still. Interpolates from the source first frame to this image across the full duration. Requires a source first frame; cannot combine with reference arrays." - changed
Input schema / properties / sourceAssetId / descriptionPrevious value: -"Source image asset ID. Required by image-to-video models."New value: +"First-frame still. Required only when that model's parameters.source_asset_id.required is true. Optional on reference-capable I2V including Seedance 2.5. Text-to-video rejects it. Cannot combine with reference arrays and end_frame_asset_id."
- Added
media_upscale - Added
media_upscale_estimate
1 tool update
- Changed
add_transition1 field changed- changed
Input schema / properties / preset / enumPrevious value: -[ - "flash", - "whip-left", - "whip-right", - "zoom-punch", - "glitch" -]New value: +[ + "flash", + "film-flash", + "whip-left", + "whip-right", + "zoom-punch", + "glitch" +]
2 tool updates
- Changed
generation_faceless_create2 fields changed- changed
Input schema / properties / plannerModelId / defaultPrevious value: -"anthropic/claude-opus-4-6"New value: +"google/gemini-3.8-flash" - changed
Input schema / properties / videoModel / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-t2v", - "sora-2-t2v", - "sora-2-pro-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v", - "ltx-2.3-t2v", - "ltx-2.3-fast-t2v" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine", + "grok-imagine-t2v", + "sora-2-t2v", + "sora-2-pro-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v" +]
9 tool updates
- Changed
clips_create2 fields changed- changed
Input schema / properties / captionThemeId / descriptionPrevious value: -"Optional saved caption theme ID. Null uses workspace default captions. UUID string."New value: +"Saved theme UUID or built-in caption look. Omitted inherits Series defaults; null uses workspace captions. UUID string." - added
Input schema / properties / seriesIdAdded value: +{ + "description": "Optional Series UUID. Omitted inherits the source Series; null creates standalone clips.", + "type": "string" +}
- Changed
generation_faceless_create1 field changed- added
Input schema / properties / seriesIdAdded value: +{ + "description": "Optional Series UUID. Inherits its Story Kit and branding defaults for this new video.", + "type": "string" +}
- Changed
projects_create1 field changed- added
Input schema / properties / seriesIdAdded value: +{ + "description": "Optional Series UUID for this new project.", + "type": "string" +}
- Added
series_apply - Added
series_assign - Added
series_content - Added
series_delete - Added
series_get - Added
series_list
1 tool update
- Changed
generation_image_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "fal-ai/gpt-image-1", - "fal-ai/gpt-image-1.5", - "fal-ai/gpt-image-2", - "xai/grok-imagine-image-2.0", - "fal-ai/bytedance/seedream/v5/lite/text-to-image", - "bytedance/seedream/v5/pro/text-to-image", - "fal-ai/krea-2/turbo", - "fal-ai/krea/v2/medium/turbo/text-to-image", - "fal-ai/krea/v2/medium/text-to-image", - "fal-ai/nano-banana-2", - "google/nano-banana-2-lite", - "fal-ai/nano-banana-pro" -]New value: +[ + "fal-ai/gpt-image-1", + "fal-ai/gpt-image-1.5", + "fal-ai/gpt-image-2", + "fal-ai/gpt-image-2.5-flare", + "fal-ai/gpt-image-2.5-sunburst", + "xai/grok-imagine-image-2.0", + "fal-ai/bytedance/seedream/v5/lite/text-to-image", + "bytedance/seedream/v5/pro/text-to-image", + "fal-ai/krea-2/turbo", + "fal-ai/krea/v2/medium/turbo/text-to-image", + "fal-ai/krea/v2/medium/text-to-image", + "fal-ai/nano-banana-2", + "google/nano-banana-2-lite", + "fal-ai/nano-banana-pro" +]
2 tool updates
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-t2v", - "sora-2-t2v", - "sora-2-pro-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine", + "grok-imagine-t2v", + "sora-2-t2v", + "sora-2-pro-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v" +]
2 tool updates
- Changed
generation_image_create4 fields changed- added
Input schema / properties / enhancePromptAdded value: +{ + "default": false, + "description": "Enhance using BlitzReels model grammar and actual input context.", + "type": "boolean" +} - changed
Input schema / properties / referenceAssetIds / descriptionPrevious value: -"Up to 4 existing image asset IDs to use as style or subject references."New value: +"Ordered image references. Model-specific limits are listed in generation_options_list; unsupported references fail." - changed
Input schema / properties / referenceAssetIds / maxItemsPrevious value: -4New value: +14 - added
Input schema / properties / resolutionAdded value: +{ + "anyOf": [ + { + "enum": [ + "0.5k", + "1k", + "2k", + "4k" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Native image resolution. Call generation_options_list for model support and resolution pricing. Unsupported settings are rejected." +}
- Changed
generation_video_create14 fields changed- added
Input schema / properties / endFrameAssetIdAdded value: +{ + "description": "Last frame image. Requires a source first frame and a supported model; reference arrays cannot be combined with end frames.", + "format": "uuid", + "type": "string" +} - added
Input schema / properties / enhancePromptAdded value: +{ + "default": false, + "description": "Enhance using BlitzReels model grammar and actual input context.", + "type": "boolean" +} - removed
Input schema / properties / generateAudio / defaultRemoved value: -true - changed
Input schema / properties / generateAudio / descriptionPrevious value: -"Generate audio alongside the video when supported."New value: +"null uses model audio behavior. Explicit true/false must be supported by the selected model." - added
Input schema / properties / providerAdded value: +{ + "default": "auto", + "description": "Explicit provider must support the model and input mode. auto uses a configured compatible provider.", + "enum": [ + "auto", + "byteplus-modelark", + "fal" + ], + "type": "string" +} - changed
Input schema / properties / referenceAssetIds / descriptionPrevious value: -"Reference image asset IDs. Seedance 2.5 accepts 29 plus sourceAssetId, for 30 images total; other models accept up to 4."New value: +"Ordered reference images: Seedance 2.5 up to 30; Seedance 2.0 ref2v up to 9; other reference models up to 4. Source counts toward the limit." - changed
Input schema / properties / referenceAssetIds / maxItemsPrevious value: -29New value: +30 - changed
Input schema / properties / referenceAudioAssetIds / descriptionPrevious value: -"Seedance 2.5 reference audio asset IDs. Unsupported by other models."New value: +"Reference audio: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. Other models reject them." - changed
Input schema / properties / referenceVideoAssetIds / descriptionPrevious value: -"Seedance 2.5 reference video asset IDs. Unsupported by other models."New value: +"Reference videos: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. Other models reject them." - added
Input schema / properties / resolution / anyOfAdded value: +[ + { + "enum": [ + "480p", + "720p", + "768p", + "1080p", + "4k" + ], + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / resolution / defaultAdded value: +null - changed
Input schema / properties / resolution / descriptionPrevious value: -"Seedance 2.5 output resolution."New value: +"Output resolution. Call generation_options_list for model-specific supported values and defaults. Unsupported settings are rejected." - removed
Input schema / properties / resolution / enumRemoved value: -[ - "480p", - "720p" -] - removed
Input schema / properties / resolution / typeRemoved value: -"string"
2 tool updates
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "luma-ray-2", - "luma-ray-3.2", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "luma-ray-3.2-t2v", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-t2v", - "sora-2-t2v", - "sora-2-pro-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine", + "grok-imagine-t2v", + "sora-2-t2v", + "sora-2-pro-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v" +]
8 tool updates
- Changed
characters_apply2 fields changed- added
Input schema / properties / confirmLikenessConsentAdded value: +{ + "default": false, + "description": "For a human character, set true only after the user confirms consent to use the depicted person's likeness.", + "type": "boolean" +} - added
Input schema / properties / confirmRightsToReferencesAdded value: +{ + "default": false, + "description": "Set true only after the user confirms they own the reference media or have permission to use it.", + "type": "boolean" +}
- Changed
clips_create1 field changed- added
Input schema / properties / confirmRightsToMediaAdded value: +{ + "default": false, + "description": "Set true only after the user confirms they own the media or have permission to import it. Not needed for an existing BlitzReels asset.", + "type": "boolean" +}
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / voiceId / descriptionPrevious value: -"Optional voice override. The Story Kit narrator voice is used when omitted."New value: +"Optional voice override from the BlitzReels voice catalog. The Story Kit narrator voice is used when omitted."
- Changed
generation_voiceover_create2 fields changed- changed
Input schema / properties / voiceId / defaultPrevious value: -nullNew value: +"pNInz6obpgDQGcFmaJgB" - added
Input schema / properties / voiceId / enumAdded value: +[ + "pNInz6obpgDQGcFmaJgB", + "TX3LPaxmHKxFdv7VOQHJ", + "FGY2WhTYpPnrIDTdsKH5", + "IKne3meq5aSn9XLyUdCD", + "cgSgspJ2msm6clMCkdW9", + "bIHbv24MWmeRgasZH58o", + "nPczCjzI2devNBz1zQrb", + "JBFqnCBsd6RMkjVDRZzb", + "SOYHLrjzK2X1ezoPC6cr", + "N2lVS1w4EtoT3dr4eOWO", + "S9EGwlCtMF7VXtENq79v", + "VhxAIIZM8IRmnl5fyeyk", + "hpp4J3VqNfWAUOO0d1Us", + "EXAVITQu4vr4xnSDxMaL", + "pFZP5JQG7iQjIQuC4Bku", + "SAz9YHcvj6GT2YYXdXww", + "Xb7hH8MSUJpSbSDYk0k2", + "XrExE9yKIg1WjnnlVkGX", + "onwK4e9ZLuTAKqWW03F9", + "pqHfZKP75CvOlQylNhV4", + "CwhRBWXzGAHq8TQ4Fs17", + "cjVigY5qzO86Huf0OWal", + "iP95p4xoKVk53GoZ742B" +]
- Changed
media_import_inspect1 field changed- added
Input schema / properties / confirmRightsToMediaAdded value: +{ + "default": false, + "description": "Set true only after the user confirms they own the media or have permission to import it.", + "type": "boolean" +}
- Changed
media_import_scan_page1 field changed- added
Input schema / properties / confirmAuthorizedToScanAdded value: +{ + "default": false, + "description": "Set true only after the user confirms they control the page or are authorized to scan it.", + "type": "boolean" +}
- Changed
media_import_url1 field changed- added
Input schema / properties / confirmRightsToMediaAdded value: +{ + "default": false, + "description": "Set true only after the user confirms they own the media or have permission to import it.", + "type": "boolean" +}
- Changed
projects_list3 fields changed- added
Output schema / properties / projects / items / additionalPropertiesAdded value: +false - added
Output schema / properties / projects / items / propertiesAdded value: +{ + "clipCount": { + "type": "number" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "durationSeconds": { + "type": "number" + }, + "id": { + "type": "string" + }, + "lastExportAt": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "projectUrl": { + "type": "string" + }, + "status": { + "enum": [ + "ready", + "exporting", + "needs_captions", + "processing" + ], + "type": "string" + }, + "thumbnailUrl": { + "type": [ + "string", + "null" + ] + }, + "updatedAt": { + "type": "string" + } +} - added
Output schema / properties / projects / items / requiredAdded value: +[ + "id", + "name", + "description", + "updatedAt", + "lastExportAt", + "durationSeconds", + "clipCount", + "thumbnailUrl", + "status", + "projectUrl" +]
1 tool update
- Changed
generation_image_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "fal-ai/gpt-image-1", - "fal-ai/gpt-image-1.5", - "fal-ai/gpt-image-2", - "xai/grok-imagine-image-2.0-preview", - "fal-ai/bytedance/seedream/v5/lite/text-to-image", - "bytedance/seedream/v5/pro/text-to-image", - "fal-ai/krea-2/turbo", - "fal-ai/krea/v2/medium/turbo/text-to-image", - "fal-ai/krea/v2/medium/text-to-image", - "fal-ai/nano-banana-2", - "google/nano-banana-2-lite", - "fal-ai/nano-banana-pro" -]New value: +[ + "fal-ai/gpt-image-1", + "fal-ai/gpt-image-1.5", + "fal-ai/gpt-image-2", + "xai/grok-imagine-image-2.0", + "fal-ai/bytedance/seedream/v5/lite/text-to-image", + "bytedance/seedream/v5/pro/text-to-image", + "fal-ai/krea-2/turbo", + "fal-ai/krea/v2/medium/turbo/text-to-image", + "fal-ai/krea/v2/medium/text-to-image", + "fal-ai/nano-banana-2", + "google/nano-banana-2-lite", + "fal-ai/nano-banana-pro" +]
8 tool updates
- Added
characters_apply - Added
characters_get - Added
characters_list - Changed
generation_faceless_create6 fields changed- added
Input schema / properties / storyKitIdAdded value: +{ + "description": "Reusable Story Kit UUID for characters, references, locations, style, and narrator voice.", + "type": "string" +} - removed
Input schema / properties / visualStyle / defaultRemoved value: -"cinematic 3D animation" - changed
Input schema / properties / visualStyle / descriptionPrevious value: -"Art direction for the generated scenes."New value: +"Optional art direction override. A Story Kit style is used when omitted." - changed
Input schema / properties / visualStyle / maxLengthPrevious value: -200New value: +2000 - removed
Input schema / properties / voiceId / defaultRemoved value: -"pNInz6obpgDQGcFmaJgB" - changed
Input schema / properties / voiceId / descriptionPrevious value: -"Voice ID used when generateVoiceover is true."New value: +"Optional voice override. The Story Kit narrator voice is used when omitted."
- Changed
generation_voiceover_create1 field changed- changed
Input schema / properties / voiceId / defaultPrevious value: -"pNInz6obpgDQGcFmaJgB"New value: +null
- Added
story_kits_apply - Added
story_kits_get - Added
story_kits_list
3 tool updates
- Changed
clips_manage4 fields changed- added
Input schema / properties / confirmVisualQaAdded value: +{ + "default": false, + "type": "boolean" +} - added
Input schema / properties / exportIdAdded value: +{ + "description": "UUID string.", + "format": "uuid", + "type": "string" +} - added
Input schema / properties / idempotencyKeyAdded value: +{ + "type": "string" +} - changed
Input schema / properties / operation / enumPrevious value: -[ - "list", - "get", - "reselect", - "repair", - "export", - "list_caption_words", - "set_caption_look" -]New value: +[ + "list", + "get", + "reselect", + "repair", + "export", + "promote_export", + "list_caption_words", + "set_caption_look" +]
- Changed
generation_image_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "fal-ai/gpt-image-1", - "fal-ai/gpt-image-1.5", - "fal-ai/gpt-image-2", - "fal-ai/bytedance/seedream/v5/lite/text-to-image", - "bytedance/seedream/v5/pro/text-to-image", - "fal-ai/krea-2/turbo", - "fal-ai/krea/v2/medium/turbo/text-to-image", - "fal-ai/krea/v2/medium/text-to-image", - "fal-ai/nano-banana-2", - "google/nano-banana-2-lite", - "fal-ai/nano-banana-pro" -]New value: +[ + "fal-ai/gpt-image-1", + "fal-ai/gpt-image-1.5", + "fal-ai/gpt-image-2", + "xai/grok-imagine-image-2.0-preview", + "fal-ai/bytedance/seedream/v5/lite/text-to-image", + "bytedance/seedream/v5/pro/text-to-image", + "fal-ai/krea-2/turbo", + "fal-ai/krea/v2/medium/turbo/text-to-image", + "fal-ai/krea/v2/medium/text-to-image", + "fal-ai/nano-banana-2", + "google/nano-banana-2-lite", + "fal-ai/nano-banana-pro" +]
- Changed
generation_plan_brief3 fields changed- added
Input schema / properties / genreAdded value: +{ + "description": "Genre pack id (e.g. pixar-culture-skit). The brief lists available ids in availableGenres; the pack's beats and visual contract override the generic grammar.", + "type": "string" +} - added
Output schema / properties / brief / properties / availableGenresAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / brief / properties / genrePackAdded value: +{ + "type": [ + "string", + "null" + ] +}
2 tool updates
- Added
generation_plan_brief - Added
generation_plan_validate
2 tool updates
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "luma-ray-2", - "luma-ray-3.2", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "seedance-2.0-pro", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "luma-ray-2", + "luma-ray-3.2", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "luma-ray-3.2-t2v", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-t2v", - "sora-2-t2v", - "sora-2-pro-t2v", - "seedance-2.0-pro", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "luma-ray-3.2-t2v", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine", + "grok-imagine-t2v", + "sora-2-t2v", + "sora-2-pro-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v" +]
1 tool update
- Changed
clips_manage3 fields changed- added
Input schema / properties / captionsEnabledAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / contentTypeHintAdded value: +{ + "enum": [ + "auto", + "podcast", + "tutorial", + "demo", + "generic" + ], + "type": "string" +} - added
Input schema / properties / layoutModeAdded value: +{ + "enum": [ + "auto", + "people_first", + "screen_first", + "preserve_full_source", + "prefer_split", + "prefer_focus", + "prefer_tutorial", + "prefer_demo" + ], + "type": "string" +}
Related MCP Connectors
Turn long videos into AI-curated short clips: caption, reframe, thumbnail, schedule, and publish.
Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.
Turn any video or livestream into scored, captioned, ready-to-post vertical clips.
Clip videos into captioned shorts, add captions, and schedule posts from AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceTurns long-form videos into short-form clips (TikTok/Reels) by reasoning over word-timestamped transcripts, with silence-aware rendering, STT-based validation, and optional reframing/captions.-
- FlicenseAqualityAmaintenanceOpenShorts turns long videos into vertical clips readys for Social Media posting83,993-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to autonomously edit videos into publish-ready vertical short-form content, including silence removal, subtitle generation, voiceover synthesis, color grading, and composite pipeline creation.MIT
- AlicenseAqualityFmaintenanceCreate AI-powered short-form video clips from YouTube videos using any AI assistant. 9 tools for creating shorts, browsing caption templates, music, gameplay overlays, and meme hooks.9106 npm7MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.