Skip to main content
Glama

Server Details

Create and edit videos, images, voiceovers, music, and avatars with the VideoGen API.

Ownership verified
Status
Healthy
Uptime
48.8% over 20 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
video-gen/videogen-mcp
GitHub Stars
4
Server Listing
VideoGen MCP

TDQS

A3.7/5.0

Scored across 50 tools

Disambiguation4/5

Each generation tool targets a distinct media type (image, video clip, music, sound effect, motion graphic, avatar) and the entity/file/project tools are clearly scoped. The main friction points are the overlapping 'to_video' workflow family and generate_video_clip vs prompt_to_video_clip, but the detailed descriptions distinguish them well. Four separate guidance tools are also largely separable by their stated purpose.

Naming Consistency4/5

The set overwhelmingly uses a consistent snake_case verb_noun convention (create_entity, list_projects, generate_image, upscale_video). Minor deviations exist: image_3d_effect has no verb, and the guidance tools use an unusual get_X_guidance pattern that stands apart from the rest. Still predictable and readable throughout.

Tool Count2/5

At 50 tools the surface is very heavy, well beyond the range where an agent can scan and select confidently. While the domain (generation, workflows, entities, files, projects, transformations, guidance) is genuinely broad, several guidance tools could be resources and the count pushes the server toward overload.

Completeness4/5

Coverage is thorough: entity CRUD plus reference management, file upload/get/list, a full slate of media generators, four workflow builders, project remix/export, and various transformations (upscale, background removal, vectorize). Minor gaps like archive-without-restore and no project/file deletion are workable around.

Available Tools

50 tools
add_entity_referenceAdd entity referenceAInspect

Attach an uploaded file (vg_file_...) as a reference on an entity. Images work for every entity type. Slideshow themes may also attach a PDF or PowerPoint. For a BRAND, set role BRAND_LOGO for its overlay logo or BRAND_STYLE_GUIDE for its visual generation reference. Built-in entities cannot have references added. For new PRODUCT/ACTOR entities, call this right after create_entity with isDefault: true so the entity has a usable thumbnail and generation reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoPurpose of the attached file. Omit for a general reference. On a BRAND, BRAND_LOGO is its overlay logo and BRAND_STYLE_GUIDE is its visual generation reference.
fileIdYesImage file id (vg_file_...) to attach as a reference. Upload first via upload_file / create_file_upload / open_uploader.
entityIdYesSaved reference entity to use. Obtain entityId from list_entities or create_entity.
isDefaultNoWhen true, make this the primary reference (thumbnail). Defaults to false.
descriptionNoOptional description of this reference image.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYesDisplay name.
entityIdYesEntity id (vg_enti_...).
createdAtYesUnix created-at timestamp.
isBuiltInNoTrue for VideoGen catalog entities that cannot be modified.
updatedAtYesUnix updated-at timestamp.
entityTypeYesACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP.
referencesYesAttached reference images.
actorConfigNoVoice/avatar summary for ACTOR entities; null for other types.
brandConfigNoBrand guidance for BRAND entities; null for other types.
descriptionYesDescription (empty when unset).

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-idempotent, non-destructive. The description adds genuinely valuable behavior beyond that: a hard restriction on built-in entities, file-type limits per entity type, and the recommended call ordering. It stops short of saying what happens on failure or whether existing references are replaced.

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

Conciseness5/5

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

Four tight sentences, each carrying a distinct rule (file-type scope, BRAND roles, built-in restriction, recommended ordering), with the core action front-loaded. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-param mutation tool with full schema coverage, annotations, and an output schema, the description covers everything an agent needs: valid file types, role choices, hard restrictions, and workflow ordering. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by tying isDefault to the post-create_entity workflow and by explaining role values in the context of what they affect (overlay logo vs. visual generation reference).

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

Purpose5/5

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

States a precise verb+resource (attach an uploaded file as a reference on an entity) and immediately scopes it: images for all entity types, PDF/PowerPoint only for slideshow themes. It is clearly distinguished from the sibling remove_entity_reference and from create_entity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use rules and exclusions: 'Built-in entities cannot have references added,' which role to set for a BRAND, and the ordering instruction to call this right after create_entity with isDefault: true for new PRODUCT/ACTOR entities. Alternatives and constraints are both named.

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

archive_entityArchive entityA
DestructiveIdempotent
Inspect

Soft-archive a team entity so it no longer appears in lists or pickers. Returns entityId and archived. This tool has no restore operation; retrying an archived entity can fail because it is no longer active. Built-in entities cannot be archived.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYesSaved reference entity to use. Obtain entityId from list_entities or create_entity.

Output Schema

ParametersJSON Schema
NameRequiredDescription
archivedYesAlways true on success.
entityIdYesArchived entity id.

TDQS

A4.3/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing that the archive is soft rather than a hard delete, that there is no restore path, and that built-in entities are ineligible. One nuance: annotations claim idempotentHint=true while the description warns retrying can fail, which is a mild tension in framing (a failed retry still leaves state unchanged), but not a true contradiction.

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

Conciseness5/5

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

Three short sentences, no filler, with the core action and its effect front-loaded before the constraints. Every sentence adds a distinct constraint the agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter mutation with an output schema, an agent has everything: action semantics, effect on listing, irreversibility, eligibility limits, and the failure mode. Return values are covered by the output schema and briefly echoed in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema description coverage is 100%, so the schema already explains entityId and where to obtain it. The description adds no parameter-level detail, which is the expected baseline when the schema does the work.

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

Purpose5/5

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

States a specific verb and resource ('Soft-archive a team entity') plus the observable effect ('no longer appears in lists or pickers'), which cleanly separates it from create_entity, update_entity, and get_entity. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when/when-not conditions: no restore operation exists, retrying an archived entity can fail, and built-in entities cannot be archived. It stops short of naming sibling alternatives (e.g., update_entity for reversible changes), so it is strong context but not full routing guidance.

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

cancel_tool_executionCancel tool executionA
DestructiveIdempotent
Inspect

Request cancellation of an API-started media generation or transformation. Pending work is stopped; completed files are not deleted. Any open review for a completed result is dismissed. Returns only toolExecutionId as an acknowledgment; use get_tool_execution to read status and results.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolExecutionIdYesExecution to inspect or cancel. Use toolExecutionId from a media-tool start result or list_tool_executions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolExecutionIdYesExecution for which cancellation was requested.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, yet the description adds real value beyond them: pending work stops, completed files survive, open reviews are dismissed, and only toolExecutionId is returned. These are exactly the side-effect details an agent needs before invoking a destructive operation.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the action, followed by side effects and then the return/routing note. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description needn't explain returns, but it still notes the minimal acknowledgment and where to read results. Combined with the side-effect disclosure, nothing needed to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the single parameter is fully documented in the schema (including provenance from a start result or list_tool_executions). The description adds no parameter-specific syntax or format detail, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (cancel) and resource (tool execution), and scopes it to 'API-started media generation or transformation', which separates it from siblings like get_tool_execution and list_tool_executions. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this is for stopping pending work and points to get_tool_execution for reading status afterward. It does not explicitly state when-not to use it (e.g., versus cancel_workflow_run), but the 'API-started' qualifier narrows applicability usefully.

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

cancel_workflow_runCancel workflow runA
DestructiveIdempotent
Inspect

Request cancellation of an API-started workflow and its related generation, remix, and export tasks. This stops pending work; it does not delete the project or undo completed work. Terminal runs are unchanged. Returns workflowRunId, projectId, projectUrl, and remixActionIds as an acknowledgment; use get_workflow_run for status.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowRunIdYesRun to inspect or cancel. Use workflowRunId from a workflow start result or list_workflow_runs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdNoExport id when autoExport succeeded (vg_expo_...).
projectIdYesProject created for this exact workflow attempt (vg_proj_...). A retry creates a different project.
projectUrlYesDeep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL.
downloadUrlNoSigned MP4 download URL when autoExport succeeded. Give this to the user.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoFile id of the rendered MP4 when autoExport succeeded.
workflowTypeNoWorkflow type (present after polling).
workflowRunIdYesWorkflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple.
remixActionIdsNoRemix action ids from the start response (empty when none requested).
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (destructiveHint, idempotentHint) by defining the blast radius: it stops pending work but does not delete the project or undo completed work, and terminal runs are untouched. That is exactly the destructive-scope context an agent needs before invoking.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the action and its scope, then the negative constraints, then the acknowledgment payload. Every sentence earns its place with no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single required parameter, an output schema that defines return fields, and annotations covering the safety profile, the description supplies everything missing: scope limits, terminal-run behavior, and the follow-up status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single well-documented workflowRunId, so the schema carries the parameter burden. The description only mentions workflowRunId in the return list and adds no format or sourcing detail beyond the schema.

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

Purpose5/5

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

States a specific verb ('Request cancellation') and a scoped resource ('API-started workflow and its related generation, remix, and export tasks'). The word 'Request' correctly signals asynchronous behavior, distinguishing it from get_workflow_run and list_workflow_runs among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: use it to stop pending work, terminal runs are unchanged, and it points to get_workflow_run for status afterward. It does not explicitly contrast with cancel_tool_execution or state prerequisites/permissions, so it stops short of full when/when-not guidance.

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

create_entityCreate entityAInspect

Create an ACTOR (character), PRODUCT (something the user sells or promotes), VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION (place or set), or PROP (background object that is not for sale) entity. Anything the user sells is a PRODUCT, never a PROP. A BRAND accepts brandConfig with fonts, colors, and writingStyle. Returns the new entity record with entityId and references. After create, attach references with add_entity_reference (upload the file first). Slideshow themes may attach an image or a PDF / PowerPoint. Use the returned entityId as actorEntityId on generate_avatar / script_to_video / slideshow_to_video, as productEntityIds or actorEntityIds on storyboard_to_video (request and each scene that should show it), as visualStyleEntityId on each storyboard scene, or as slideshowThemeEntityId on slideshow_to_video.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the entity.
entityTypeYesACTOR = consistent character; PRODUCT = a product the user sells or promotes; VISUAL_STYLE = look/style for generated images; SLIDESHOW_THEME = shared slide design system for a slideshow deck; BRAND = logo, style guide image, and writing style; LOCATION = consistent place or set; PROP = background object that is not a product. Anything the user sells is a PRODUCT, never a PROP.
brandConfigNoConfiguration for a BRAND entity.
descriptionNoDescribe the subject, product, setting, or visual identity this saved entity represents.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYesDisplay name.
entityIdYesEntity id (vg_enti_...).
createdAtYesUnix created-at timestamp.
isBuiltInNoTrue for VideoGen catalog entities that cannot be modified.
updatedAtYesUnix updated-at timestamp.
entityTypeYesACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP.
referencesYesAttached reference images.
actorConfigNoVoice/avatar summary for ACTOR entities; null for other types.
brandConfigNoBrand guidance for BRAND entities; null for other types.
descriptionYesDescription (empty when unset).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (non-readOnly, non-destructive, non-idempotent, closed-world). The description adds genuine behavioral context beyond them: it returns the new record with entityId/references, brandConfig is BRAND-only, and slideshow themes may attach an image or a PDF/PowerPoint. It does not mention idempotency or duplicate-name behavior, which would complete the picture.

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

Conciseness4/5

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

Long but dense; the leading sentence front-loads the entity taxonomy, then downstream usage. Every sentence carries information, though the large type enumeration partly duplicates the enum schema and could be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a nested-object schema, full parameter coverage, and an output schema present, the description supplies exactly the missing connective tissue: what each type means and where the returned entityId must be reused downstream. Nothing needed to call this correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents entityType enum meanings, brandConfig fields, and description in detail. The description largely mirrors that content (PRODUCT vs PROP, brandConfig for BRAND) rather than adding new syntax or constraints, 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.

Purpose5/5

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

Specific verb (Create) plus an exhaustive enumeration of the resource subtypes (ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, PROP), and it disambiguates the trickiest case (PRODUCT vs PROP) explicitly. An agent can distinguish this from create_file_upload or update_entity without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear follow-up sequencing (attach references with add_entity_reference and upload the file first) and states exactly which downstream tools consume the returned entityId and under which field name. It stops short of naming siblings like update_entity as the alternative for modifying an existing entity, so it is context-rich but not a full when-to-use/when-not matrix.

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

create_file_uploadCreate file uploadAInspect

Start an upload for a large file, or when file bytes cannot be inlined. Returns { fileId, uploadUrl }. PUT the raw file bytes to uploadUrl with NO Authorization header (it is a short-lived pre-signed URL). Then call get_file with { fileId, wait: true } to wait until processing finishes, and pass the returned fileId to workflows, tools, logos, or B-roll. For small files, prefer upload_file.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoMedia or document kind to associate with the upload. Inferred after processing when omitted.
displayNameYesHuman-readable label used to identify the uploaded asset in the VideoGen library.
isTemporaryNoWhen true, the file is temporary (guaranteed available for 24 hours, not analyzed for search). Defaults to false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileIdYesFile id to use after uploading bytes (vg_file_...).
uploadUrlYesPre-signed URL: PUT raw file bytes here with no Authorization header.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare the mutation safety profile, but the description adds critical non-obvious behavior: the return shape { fileId, uploadUrl }, the required PUT mechanics, the explicit warning that NO Authorization header must be sent to the short-lived pre-signed URL, and the post-upload wait step. This is exactly the operational context an agent cannot derive from 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.

Conciseness5/5

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

Four tight sentences, front-loaded with the trigger condition, then output shape, then required call mechanics, then the alternative. Every sentence carries distinct actionable content with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a multi-step upload tool: it covers the pre-signed URL protocol, the follow-up get_file call, and where the returned fileId can be consumed. The presence of an output schema means it needn't explain return values further, and it doesn't over-explain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and all three params (type, displayName, isTemporary) are already well documented there. The description adds no parameter-level syntax or defaults beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('start an upload for a large file') and immediately scopes it against the sibling upload_file ('For small files, prefer upload_file'). An agent can distinguish this from upload_file and open_uploader without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use conditions ('large file, or when file bytes cannot be inlined'), names the alternative for the opposite case, and lays out the follow-up sequence (PUT to uploadUrl, then get_file with wait:true). Nothing about selection 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.

export_projectExport projectAInspect

Render an editable project to MP4. Returns exportId on hosted clients; poll get_project_export with the same projectId for status, progress, errors, and downloadUrl when ready. Local calls wait for an export snapshot. Renders often take a few minutes. Tell the user that wait up front.

ParametersJSON Schema
NameRequiredDescriptionDefault
qualityNoMP4 resolution tier by shortest edge: STANDARD is 720p, HIGH and FULL_HIGH are 1080p, and ULTRA_HIGH is 2160p. Omit for FULL_HIGH.
projectIdYesEditable project to render. Use projectId from a workflow result, list_projects, or get_project.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileNoHydrated export file metadata.
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdYesExport id (vg_expo_...).
projectIdNoExported project id (present after polling).
downloadUrlNoSigned MP4 download URL when succeeded; otherwise null.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoExported MP4 file id when succeeded.
thumbnailUrlNoSigned thumbnail URL when ready.
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.
thumbnailUrlExpiresAtNoUnix expiry for thumbnailUrl.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false); the description adds substantial behavioral context on top: hosted calls return an exportId and are async, local calls block, renders take minutes, and the user must be warned in advance. That is real added value 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.

Conciseness5/5

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

Four short sentences, front-loaded with the core action, then output behavior, then the timing warning. Every sentence carries distinct operational information with no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not strictly required, yet the description still explains the exportId/polling contract and the sync-vs-async split. Combined with the rich quality enum in the schema, an agent has everything needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both projectId provenance and the quality enum tiers are fully documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Render an editable project to MP4'), and the rendering/mutation framing clearly separates it from generation siblings like generate_video_clip or storyboard_to_video. An agent can identify function and counterpart (get_project_export) without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to get_project_export for status/progress and states that local calls differ (they wait for the snapshot). Lacks an explicit when-not-to-use, but the operational context is clear enough to select and drive the tool correctly.

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

generate_avatarGenerate avatarAInspect

Generate a talking-head avatar video from an ACTOR entity and an uploaded audio file. Pass actorEntityId and optionally set avatarQuality. Typically takes a few minutes (longer for longer audio). Tell the user that wait up front. Returns toolExecutionId; get_tool_execution provides status and results with the avatar video file and download URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
audioFileIdYesSpeech recording for the actor to lip-sync. Use fileId from an audio upload, list_files, or a succeeded text_to_speech result.
actorEntityIdYesId of a built-in stock actor or an ACTOR entity (vg_enti_...) with an image reference.
avatarQualityNoAvatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only supply generic hints (readOnly=false, idempotent=false), so the description carries the real behavioral load: it discloses that generation is slow ('a few minutes, longer for longer audio'), that it is asynchronous, and that results arrive via get_tool_execution. It doesn't state whether re-invocation is billed/duplicated or how failures surface, keeping it from 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.

Conciseness5/5

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

Four short sentences, front-loaded with the core action and required inputs, then latency guidance, then the polling handoff. Every sentence contributes something actionable and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema existing, the description goes further by explaining the async lifecycle and the ID needed for polling, which is the critical missing link. For a long-running, non-idempotent generation tool with an existing output schema, nothing an agent needs to call and follow up correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents actorEntityId, audioFileId, and the avatarQuality enum. The description references actorEntityId and avatarQuality but adds no new syntax or constraints beyond the schema's own text, making the baseline 3 appropriate.

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

Purpose5/5

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

States a specific verb and artifact: 'generate a talking-head avatar video from an ACTOR entity and an uploaded audio file.' This clearly differentiates it from siblings like generate_video_clip, voiceover_to_video, and text_to_speech by naming both required input types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the prerequisite inputs (audio upload / fileId / text_to_speech result) and the follow-up path via get_tool_execution, plus instructs the agent to warn the user about wait time up front. It doesn't explicitly exclude alternatives such as voiceover_to_video, 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.

generate_imageGenerate imageAInspect

Generate an image from a text prompt, optionally conditioned on source images (image-to-image) and actor, product, or visual-style entity ids. Typically takes 15–60 seconds. Tell the user that wait up front.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the image to generate.
qualityNoGeneration quality. Omit to use workspace settings.
entityIdsNoActor, product, or visual-style references for consistent identity and appearance. Use entityId values from list_entities or create_entity, with reference files attached.
aspectRatioNoOutput aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }.
imageFileIdsNoReference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-destructive, non-idempotent, closed-world. The description adds the latency envelope (15-60 seconds) and an explicit instruction to tell the user about the wait up front — operationally important context the annotations cannot express. It does not say whether the call blocks or returns a task handle, which is the one remaining gap.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the core action, then conditioning modes, then the latency warning. No filler and nothing redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description covers purpose, conditioning inputs, and the key UX behavior (long-running). It is slightly incomplete in not clarifying sync-vs-async execution or any follow-up polling/status tool, which matters given the sibling cancel_tool_execution/get_tool_execution family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so prompt, quality, entityIds, aspectRatio, and imageFileIds are all already documented in the schema, including the entityId/fileId sourcing guidance. The description adds no syntax or constraint detail beyond that, 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.

Purpose5/5

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

States a specific verb ('Generate') and resource ('an image from a text prompt'), and immediately distinguishes two operating modes (text-to-image vs. image-to-image). This separates it cleanly from generate_avatar, generate_video_clip, and prompt_to_video_clip, which an agent must otherwise disambiguate by name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clarifies the two usage contexts (plain prompt, or conditioned on imageFileIds/entityIds for identity consistency), which is real selection guidance. It stops short of naming alternatives or stating when-not to use it (e.g. versus generate_avatar for human characters).

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

generate_motion_graphicGenerate motion graphicAInspect

Generate an animated motion graphic video from a text prompt. Best for precise text animations (typing effects, kinetic typography, lower thirds) that stock or generated footage can't express. Outputs a transparent WebM overlay by default; set transparentBackground to false for an opaque MP4. Optionally pass reference media file ids to display or animate. Typically takes 2–5 minutes because VideoGen writes animation code and then renders it; complex prompts can take longer. Tell the user that wait before starting and keep polling calmly — a healthy in-progress job is expected.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the animated motion graphic.
fileIdsNoMedia to display or animate in the motion graphic. Use fileId values from upload_file, get_file, or list_files.
entityIdsNoActor, product, or visual-style references. Use entityId values from list_entities or create_entity, with reference files attached.
aspectRatioNoOutput aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }.
subToolModesNoOptional per-capability controls for generated images, video clips, voiceover, and stock media. Omit to use AUTO for every capability.
durationSecondsNoRequested motion-graphic playback duration in seconds.
transparentBackgroundNoRender a transparent WebM for use as an overlay on other video or images. Defaults to true. Set to false for an opaque MP4.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare the generic write profile (readOnly=false, destructive=false, idempotent=false); the description adds substantial non-obvious context on top: the default transparent WebM vs opaque MP4 output, that VideoGen writes animation code and then renders, the 2–5 minute expected duration, and that a long-running in-progress job is healthy rather than a failure. That latency/expectation guidance is exactly what an agent needs to avoid aborting a valid call.

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

Conciseness5/5

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

Five sentences, front-loaded with purpose then differentiation, then output format, then latency and operational guidance. No filler; even the last sentence about telling the user and polling calmly carries behavioral weight an agent would otherwise get wrong.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description fills the remaining gaps: differentiation from siblings, default output container, latency expectation, and optional reference media use. Nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (prompt, fileIds, entityIds, aspectRatio, subToolModes, durationSeconds, transparentBackground) is documented in the schema. The description only restates the transparentBackground default and mentions optional reference media ids, adding no syntax or constraint detail beyond the schema. Baseline 3 is correct.

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

Purpose5/5

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

States a specific verb+resource ('Generate an animated motion graphic video from a text prompt') and then carves out a precise niche: 'precise text animations (typing effects, kinetic typography, lower thirds) that stock or generated footage can't express.' That niche statement is what separates it from the many video-generation siblings (generate_video_clip, prompt_to_video_clip, script_to_video).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear selection criterion (use when the content is precise text animation / kinetic typography that footage can't express) plus operational guidance to tell the user about the 2–5 minute wait and to poll calmly. It stops short of naming a sibling tool as the fallback for cases where footage *would* work, so routing is inferable rather than explicit.

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

generate_musicGenerate musicAInspect

Generate a music track from a text prompt. Typically takes 1–5 minutes depending on track length. Tell the user that wait up front.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesGenre, mood, instrumentation, and tempo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the safety profile (not read-only, not idempotent, non-destructive, closed-world), so the bar is lower. The description adds genuinely useful behavior the annotations cannot express: a 1–5 minute latency expectation and an explicit UX instruction to warn the user up front. It stops short of failure/timeout or cost behavior.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action, then latency, then the actionable UX instruction. No filler and nothing repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and annotations cover the safety profile. The description supplies the one thing an agent most needs for this long-running generation call – the wait expectation and how to set user expectations. Missing only edge cases like failure handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'prompt' parameter is already documented with what it should contain (genre, mood, instrumentation, tempo). The description's 'from a text prompt' adds nothing beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Generate a music track from a text prompt'), which cleanly separates it from siblings like generate_image, generate_video_clip, and generate_sound_effect. An agent can select this tool from the name and first sentence alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never states when to use this tool versus alternatives, nor any prerequisites or exclusions. It implies its own usage by describing the output, but gives no routing guidance among the many generate_* siblings.

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

generate_sound_effectGenerate sound effectAInspect

Synthesize a standalone audio effect from a description of the desired sound and timing. Returns toolExecutionId; use get_tool_execution to retrieve the generated audio file and download URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the sound effect.
durationSecondsNoRequested sound-effect playback duration in seconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only declare the safety profile (not read-only, not idempotent, not destructive, closed-world). The description adds genuinely new behavioral context: this is an async job that returns a toolExecutionId and requires a separate get_tool_execution call to obtain the file and download URL. It does not state expected latency or failure modes, keeping it below 5.

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

Conciseness5/5

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

Two sentences, zero filler. The generative purpose is front-loaded and the retrieval instruction follows immediately after; every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter async generation tool with an output schema, the description covers purpose and the post-call retrieval flow, which is the critical operational detail. The only gap is disambiguation from sibling generators, which matters given the large family of generate_* tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema, giving a baseline of 3. The phrase 'desired sound and timing' loosely maps to prompt and durationSeconds but adds no format, unit, or constraint detail beyond what the schema already provides (including the 30-second maximum).

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

Purpose4/5

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

States a specific verb and resource: 'Synthesize a standalone audio effect from a description of the desired sound and timing.' The word 'standalone' implicitly contrasts with generate_music, but no sibling is named explicitly, so an agent must infer the boundary between this and generate_music or text_to_speech.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description routes the agent to the follow-up step ('use get_tool_execution to retrieve the generated audio file'), which is useful lifecycle guidance, but it offers no when-to-use vs when-not guidance relative to the many sibling generation tools (generate_music, text_to_speech, generate_avatar). Usage is implied rather than stated.

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

generate_video_clipGenerate video clipAInspect

Generate a video clip from a text prompt, source images, source videos, spokenDialogue, or reference audio. Typically takes 1–3 minutes (HIGH/MAX can be longer). Tell the user that wait up front and keep polling calmly.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptNoDescription of the video to generate.
qualityNoVideo generation quality. Omit to use workspace settings.
aspectRatioNoOutput aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }.
audioFileIdsNoOptional reference audio file ids used to lip-sync from a recording. Use spokenDialogue to have the model speak a line it generates itself.
imageFileIdsNoReference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files.
videoFileIdsNoOptional reference video file ids.
generateAudioNoWhether the result must include generated audio.
spokenDialogueNoExact line the subject should speak as native lip-synced speech. The model synthesizes the voice from this text.
durationSecondsNoRequested clip playback duration in seconds. Omit or pass null for automatic timing.
startFrameFileIdNoOptional opening-frame still file id. Used as the first frame of the clip.
voiceDescriptionNoNatural-language description of the voice that speaks spokenDialogue. Used when spokenDialogue is set.
suppressBackgroundMusicNoWhen true, the clip will not include a musical soundtrack. Spoken dialogue and environmental sound are still allowed. Use this when background music will be added separately.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only cover the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false). The description adds genuinely non-structured context: this is a long-running async operation taking 1–3 minutes (longer for HIGH/MAX) that must be polled, which is exactly the kind of trait an agent needs and annotations do not carry.

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

Conciseness4/5

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

Three sentences, front-loaded with the verb and resource. The latency/polling sentence is actionable and free of filler; slight redundancy in listing every input modality, but overall tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter async generation tool with an output schema and full schema coverage, the description supplies the missing piece – expected latency and the need to poll – without needing to explain returns. It stops short of naming the actual polling mechanism (e.g. get_tool_execution / get_async_tasks_guidance), which is the one residual gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 12 parameters are already documented in the schema. The description names a few modalities that map to parameters (spokenDialogue, source images/videos, reference audio) but adds no syntax, ordering, or dependency detail beyond what the schema provides – baseline 3.

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

Purpose4/5

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

States a specific verb+resource ('Generate a video clip') and enumerates the input modalities (text prompt, source images, source videos, spokenDialogue, reference audio). It is clearly a generation tool, but it never distinguishes itself from the many video-generation siblings (prompt_to_video_clip, script_to_video, voiceover_to_video), so an agent still has to guess which generator to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is operational ('Tell the user that wait up front and keep polling calmly'), which addresses handling rather than selection. It never says when to use this tool instead of prompt_to_video_clip or the other *_to_video siblings, leaving the choice implicit.

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

get_async_tasks_guidanceAsync tasks guidanceA
Read-onlyIdempotent
Inspect

How to handle async workflows, tool executions, and exports: statuses, hosted vs local wait caps, polling with get_* tools, and when webhooks apply outside MCP. Call before polling or when a start tool returns a still-running snapshot. Equivalent to reading the guidance://async-tasks MCP resource — provided as a tool for clients that don't read resources directly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
markdownYesFull guidance document in markdown.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description only needs to add context. It does that by clarifying the tool is equivalent to a resource read and explaining its existence for clients that don't read resources directly, which is useful behavioral context 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.

Conciseness5/5

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

The description is compact and front-loaded: it states the topic and covered aspects, then gives the call condition, then clarifies its relationship to an MCP resource. Every sentence earns its place with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a guidance tool with an output schema and full annotation coverage, the description is complete enough. It explains the subject matter, when to invoke it, and its resource equivalence, leaving no obvious gap for correct selection or invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to document. The baseline for a parameterless tool is 4, and the description appropriately omits parameter details.

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

Purpose4/5

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

The description clearly states the tool's purpose: guidance on handling async workflows, tool executions, and exports, including statuses, wait caps, polling, and webhooks. It is specific about the domain but does not explicitly distinguish itself from sibling guidance tools like get_getting_started_guidance or get_workflows_guidance, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage trigger: 'Call before polling or when a start tool returns a still-running snapshot.' It also notes that it's equivalent to reading a specific MCP resource and why it exists as a tool. However, it does not name alternative guidance tools or state when not to use this one.

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

get_entityGet entityA
Read-onlyIdempotent
Inspect

Fetch one entity by id, including its reference images. Built-in catalog entities are included and have isBuiltIn true.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYesSaved reference entity to use. Obtain entityId from list_entities or create_entity.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYesDisplay name.
entityIdYesEntity id (vg_enti_...).
createdAtYesUnix created-at timestamp.
isBuiltInNoTrue for VideoGen catalog entities that cannot be modified.
updatedAtYesUnix updated-at timestamp.
entityTypeYesACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP.
referencesYesAttached reference images.
actorConfigNoVoice/avatar summary for ACTOR entities; null for other types.
brandConfigNoBrand guidance for BRAND entities; null for other types.
descriptionYesDescription (empty when unset).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context beyond them: the response includes reference images, built-in catalog entities are returned as well, and those carry an isBuiltIn flag. That is real return-content disclosure the annotations do not provide.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and immediately followed by the most useful return detail. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full annotation coverage, and a fully described single parameter, the definition is nearly self-sufficient. The one thing left implicit is the relationship to list_entities/create_entity for obtaining the id, which the schema happens to cover anyway.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the entityId parameter already documents its own origin (list_entities or create_entity). The description's 'by id' adds no format, type, or sourcing detail beyond the schema, 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.

Purpose4/5

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

States a specific verb and resource: fetch one entity by id, and adds the scope qualifier 'one' that distinguishes it from the sibling list_entities. It never explicitly names the sibling tools, but the singular/plural contrast makes the retrieval semantics unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent infers it should call this when it has a single entityId and wants that record. There is no explicit when-to-use vs list_entities or when-not guidance, and no statement that the id can be sourced from list_entities or create_entity (that lives only in the schema).

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

get_fileGet fileA
Read-onlyIdempotent
Inspect

Fetch a file by id with freshly hydrated (non-expired) signed URLs for its thumbnail, preview, and download renditions. Set wait: true to poll until the file finishes processing — use this right after PUTting bytes to a create_file_upload URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoWhen true, poll until the file finishes processing and a rendition is ready. Defaults to false (a single fetch).
fileIdYesAsset to fetch. Use fileId from upload_file, create_file_upload, list_files, or a generation result.
timeoutMsNoMaximum time to wait for processing before giving up, in milliseconds.
pollIntervalMsNoTime between readiness checks in milliseconds when wait is true. Omit to poll every 3000 milliseconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeNoFile type once processing has determined it.
scopeNoFile scope.
fileIdYesFile id (vg_file_...).
hlsSourceNo
descriptionNoFile description when analyzed.
displayNameNoDisplay name for the file.
downloadUrlNoSigned download URL when ready.
publicHlsUrlNo
thumbnailUrlNoSigned thumbnail URL when available.
previewSourceNo
downloadSourceNo
sourceToolTypeNo
transcriptTextNoPlain transcript text when available.
durationSecondsNoDuration in seconds for video/audio; null for images.
thumbnailSourceNo
publicPlaybackIdNo
downloadUrlExpiresAtNoUnix expiry for downloadUrl.
sourceToolExecutionIdNo
thumbnailUrlExpiresAtNoUnix expiry for thumbnailUrl.
isPublicPreviewEnabledNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond them: URLs are hydrated/non-expired, and wait:true switches the tool into a polling mode until processing finishes — a state-dependent behavior the annotations cannot express.

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

Conciseness5/5

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

Two sentences, front-loaded with the core fetch behavior and followed by the conditional polling instruction. No filler, no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return payload details need not be spelled out, and it still names the rendition types an agent will receive. With 100% schema coverage and full annotation coverage, nothing needed to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema already documents fileId, wait, timeoutMs, and pollIntervalMs. The description still earns credit by tying wait:true to a concrete workflow moment rather than restating the boolean's definition.

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

Purpose5/5

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

States a specific verb (fetch) plus resource (file by id) and further specifies what comes back: freshly hydrated, non-expired signed URLs for thumbnail, preview, and download renditions. That return-oriented detail separates it cleanly from siblings like list_files, upload_file, and create_file_upload.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit workflow trigger: set wait: true and call this right after PUTting bytes to a create_file_upload URL, naming the sibling it follows. It does not state when NOT to reach for this tool (e.g., versus list_files for discovery), so it stops just short of full routing guidance.

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

get_getting_started_guidanceGetting started guidanceA
Read-onlyIdempotent
Inspect

How to authenticate, verify with get_me, introduce VideoGen with workflow example prompts, choose workflows vs media tools, and follow VideoGen id conventions. Call when connecting, onboarding, the user asks what VideoGen can do, or how to set up the API or MCP. Equivalent to reading the guidance://getting-started MCP resource — provided as a tool for clients that don't read resources directly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
markdownYesFull guidance document in markdown.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds real context beyond that: it is the tool equivalent of the `guidance://getting-started` resource and exists for clients that cannot read resources directly, plus an overview of what content is returned.

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

Conciseness4/5

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

Two sentences that are front-loaded with the content scope, then the invocation triggers and the resource-equivalence note. Dense but each clause carries information; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only guidance tool with annotations and an output schema, this is complete: it says what the guidance covers, when to fetch it, and why it exists in tool form. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter surface to explain; the baseline for 0 params is 4. The description correctly implies a no-argument call.

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

Purpose4/5

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

The description names a specific resource (getting-started guidance) and enumerates its content: authentication, verifying with get_me, VideoGen intro, workflows-vs-media-tools selection, and ID conventions. It is clearly not a data-mutation or generation tool. However, it does not distinguish itself from the sibling guidance tools (get_workflows_guidance, get_tools_vs_workflows_guidance, get_async_tasks_guidance), whose scopes it partly overlaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit call triggers: connecting, onboarding, user asking what VideoGen can do, or setting up the API/MCP. This is clear contextual guidance. It stops short of naming alternatives or when-not conditions (e.g., 'use get_workflows_guidance instead when you only need workflow details').

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

get_meGet accountA
Read-onlyIdempotent
Inspect

Fetch the account and team behind the API key (apiKeyId, apiKeyNickname, email, displayName, teamId). Use it as a connection test.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
emailYesAccount email.
teamIdYesTeam id the API key belongs to.
apiKeyIdYesId of the API key used for this request.
displayNameYesAccount display name, or null.
apiKeyNicknameYesNickname of the API key.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description's marginal additions are the connection-test hint and the field list, but the field list largely duplicates the existing output schema, and it says nothing about auth failures or error behavior when the key is invalid.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the core action and payload, followed immediately by the practical usage note. No filler and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A zero-parameter read tool with full annotation coverage and an output schema needs only a statement of what it returns and why to call it; the description supplies both. An agent has everything required to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there is nothing for the schema to document and no semantic gap for the description to fill. Baseline 4 applies.

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

Purpose5/5

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

States a specific verb ('Fetch') and resource ('the account and team behind the API key'), and enumerates the identifying fields returned. It is clearly distinguishable from siblings like get_entity or get_project, which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names a use case — 'Use it as a connection test' — which tells the agent when this zero-argument tool is appropriate. It stops short of naming alternatives or exclusions, but the context is clear enough to act on.

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

get_projectGet projectA
Read-onlyIdempotent
Inspect

Return a project's title, readiness status, editor projectUrl, timestamps, aspectRatio, and assistantId when available. Use the projectId for subsequent remix and export calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesEditable project to inspect. Use projectId from a workflow result or list_projects.

Output Schema

ParametersJSON Schema
NameRequiredDescription
titleYesProject title.
statusYesHigh-level project status.
createdAtYesUnix timestamp when the project was created.
projectIdYesProject id (vg_proj_...).
updatedAtYesUnix timestamp when the project was last updated.
projectUrlYesDeep link to open the project in the VideoGen editor.
aspectRatioYes
assistantIdYesAssistant conversation id, or null for older projects.

TDQS

A4.3/5.0
Behavior3/5

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 fully covered by structured data. The description adds only the detail that some fields are returned 'when available,' which is minor contextual value. It does not discuss permissions, rate limits, or pagination.

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

Conciseness5/5

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

The description is two sentences: one front-loaded return-value summary and one usage instruction. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations covering safety, the description only needs to state purpose and relevant usage. It does so completely, including the key downstream call guidance for the projectId.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the projectId parameter and its origin. The description adds meaning beyond the schema by noting that the projectId is reusable for 'subsequent remix and export calls,' clarifying its downstream utility.

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

Purpose5/5

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

The description uses a specific verb plus resource ('Return a project's ...') and enumerates the exact fields returned, so the agent can immediately distinguish this from list_projects or export_project. It clearly states this is a single-project inspection tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear downstream guidance: 'Use the projectId for subsequent remix and export calls.' This tells the agent what to do with the result. It does not explicitly state when not to use it or name list_projects as an alternative, but the context is sufficient.

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

get_project_exportGet project exportA
Read-onlyIdempotent
Inspect

Return an export snapshot with status, progress, errors, and downloadUrl, exportFileId, thumbnailUrl, and file metadata when ready. Poll until status is succeeded, failed, or cancelled.

ParametersJSON Schema
NameRequiredDescriptionDefault
exportIdYesExport id (vg_expo_...) from export_project.
projectIdYesProject that owns the export. Use the same projectId passed to export_project, obtained from a workflow result or list_projects.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileNoHydrated export file metadata.
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdYesExport id (vg_expo_...).
projectIdNoExported project id (present after polling).
downloadUrlNoSigned MP4 download URL when succeeded; otherwise null.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoExported MP4 file id when succeeded.
thumbnailUrlNoSigned thumbnail URL when ready.
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.
thumbnailUrlExpiresAtNoUnix expiry for thumbnailUrl.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so safety is covered; the description adds the genuinely useful behavioral fact that status is asynchronous and progresses to one of three terminal states. It does not say whether a ready downloadUrl expires or how errors are surfaced across polls.

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

Conciseness5/5

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

Two sentences, zero filler, and the payload contents are front-loaded before the polling instruction. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description only needs the async/polling contract — which it supplies, including terminal states. Minor gaps (poll interval guidance, downloadUrl lifetime) keep it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented there (exportId format vg_expo_..., projectId provenance), so the schema carries the load. The description adds no parameter-level meaning beyond naming return fields, which is the baseline 3 case.

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

Purpose4/5

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

States a specific verb+resource ('Return an export snapshot') and enumerates what comes back (status, progress, errors, downloadUrl, exportFileId, thumbnailUrl, file metadata), so an agent knows this is the retrieval half of the export flow. It does not name the sibling export_project as the initiator that produces the exportId, leaving that differentiation to the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Poll until status is succeeded, failed, or cancelled' gives an explicit usage pattern plus the exact terminal conditions that justify repeated calls. It stops short of stating polling cadence, timeout behavior, or what to do after a terminal failure state.

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

get_tool_executionGet tool executionA
Read-onlyIdempotent
Inspect

Return a tool execution snapshot with status, progress, attemptIndex, error details, and results. Each result includes fileId, file metadata, downloadUrl, and thumbnailUrl when available. Use this to poll a started generation without creating another asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolExecutionIdYesExecution to inspect or cancel. Use toolExecutionId from a media-tool start result or list_tool_executions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorYesError details when status is failed; otherwise null.
statusYesJob status: pending, running, succeeded, failed, or cancelled.
resultsYesGenerated results; empty until succeeded.
toolTypeYesTool name (e.g. GENERATE_IMAGE).
attemptIndexYesCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageYesCompletion progress 0-100.

TDQS

A3.8/5.0
Behavior3/5

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 covered. The description adds that this is a polling operation and that thumbnailUrl is present only "when available", which is real value, but it says nothing about polling cadence, terminal statuses, or how error details/attemptIndex behave across retries.

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

Conciseness5/5

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

Three short sentences, front-loaded with the return payload and then the usage condition. No filler, no repetition of the tool name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile and an output schema present, the description does not need to enumerate return values, yet it briefly does anyway. The remaining gap is operational: no guidance on how often to poll or what status values indicate completion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter already explains where to source toolExecutionId (start result or list_tool_executions). The description adds no parameter-level detail, so the baseline of 3 for fully documented schemas applies.

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

Purpose4/5

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

States a specific verb (Return) and resource (tool execution snapshot) plus the fields it carries (status, progress, attemptIndex, error details, results), so the agent knows exactly what it gets. It does not name list_tool_executions or cancel_tool_execution, the nearest siblings, so differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this to poll a started generation without creating another asset" gives a clear when-to-use condition and implicitly steers away from re-invoking a generation tool. It stops short of naming the alternatives (list_tool_executions, cancel_tool_execution) or stating exclusions, so it is context rather than full routing guidance.

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

get_tools_vs_workflows_guidanceTools vs workflows guidanceA
Read-onlyIdempotent
Inspect

When to use standalone media tools (automatic model routing for a single asset) versus workflows (full editable professional video). Call when choosing between generate_* tools and workflow tools. Equivalent to reading the guidance://tools-vs-workflows MCP resource — provided as a tool for clients that don't read resources directly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
markdownYesFull guidance document in markdown.

TDQS

A4.7/5.0
Behavior4/5

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 real context beyond that: it is equivalent to the `guidance://tools-vs-workflows` resource and exists for clients that don't read resources directly, explaining why a read-only tool of this kind exists.

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

Conciseness5/5

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

Three sentences, front-loaded with the purpose, then the invocation condition, then the resource-equivalence rationale. No sentence is redundant and each adds a distinct fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations carry the safety profile. Nothing required to call a zero-parameter guidance tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4. There is no parameter syntax to document, and the description correctly does not invent any.

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

Purpose5/5

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

States a specific resource (guidance on tools vs workflows) and the comparison it resolves. Among the several guidance siblings (get_workflows_guidance, get_getting_started_guidance, get_async_tasks_guidance), the topic is scoped clearly enough that an agent can pick the right one without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the trigger condition — 'Call when choosing between generate_* tools and workflow tools' — and identifies the alternatives at the decision point. The remaining behavior, actually invoking it, follows directly from that condition with nothing left to inference.

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

get_workflow_runGet workflow runA
Read-onlyIdempotent
Inspect

Return a workflow run with status, progress, error details, projectId, projectUrl, and downloadUrl when auto-export has finished. Use this to poll an existing run without starting another project.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowRunIdYesRun to inspect or cancel. Use workflowRunId from a workflow start result or list_workflow_runs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdNoExport id when autoExport succeeded (vg_expo_...).
projectIdYesProject created for this exact workflow attempt (vg_proj_...). A retry creates a different project.
projectUrlYesDeep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL.
downloadUrlNoSigned MP4 download URL when autoExport succeeded. Give this to the user.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoFile id of the rendered MP4 when autoExport succeeded.
workflowTypeNoWorkflow type (present after polling).
workflowRunIdYesWorkflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple.
remixActionIdsNoRemix action ids from the start response (empty when none requested).
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.

TDQS

A4.1/5.0
Behavior4/5

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 covered. The description earns credit beyond that by disclosing a conditional behavior: downloadUrl is only populated once auto-export has finished, which tells the agent how to interpret a missing field. It stops short of describing behavior for unknown or failed run IDs.

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

Conciseness5/5

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

Two tight sentences, zero filler. The return payload is front-loaded and the usage constraint follows, so the agent gets the essential facts first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with full annotation coverage and an output schema that carries the return structure, nothing critical is missing. The description correctly focuses on scope and the one conditional output nuance rather than re-documenting the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter already documents the workflowRunId source ('from a workflow start result or list_workflow_runs'). The description adds no additional syntax, format, or lookup guidance for the parameter, so the baseline 3 is appropriate.

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

Purpose4/5

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

The description gives a specific verb and resource ('Return a workflow run') and enumerates the payload fields (status, progress, error details, projectId, projectUrl, downloadUrl), which is far more than a restatement of the name. It implicitly separates itself from list_workflow_runs and from project-starting tools, but never names an actual sibling, so differentiation is inferred rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to poll an existing run without starting another project' states a clear usage context and an implicit exclusion (don't use it to create runs). It does not, however, contrast against nearby siblings such as list_workflow_runs (plural listing) or get_project_export, which an agent may confuse with this tool.

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

get_workflows_guidanceWorkflows guidanceA
Read-onlyIdempotent
Inspect

Canonical run → remix → export flow and when to use each workflow tool. Prefer script_to_video for longer narrated / informational videos; keep storyboard_to_video to ≤3 scenes unless the user asks for more. Call before starting a full video project. Equivalent to reading the guidance://workflows MCP resource — provided as a tool for clients that don't read resources directly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
markdownYesFull guidance document in markdown.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: it is a static guidance payload equivalent to the guidance://workflows MCP resource, and it exists specifically for clients that don't read resources — which tells the agent this call has no side effects and no input-dependent output variation.

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

Conciseness5/5

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

Three tightly packed sentences, front-loaded with the primary purpose, then routing rules, then the trigger condition. Every sentence carries distinct information with no repetition of the name or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description covers purpose, trigger timing, and the resource equivalence. For a no-input, read-only guidance tool this is fully sufficient to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to document; the baseline for a 0-param tool is 4. Nothing in the description is needed here and nothing is misleading.

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

Purpose4/5

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

States a specific deliverable: the canonical run → remix → export flow plus when to use each workflow tool. This clearly distinguishes it from action siblings like script_to_video or remix_project. It does not explicitly differentiate itself from other guidance siblings (e.g., get_tools_vs_workflows_guidance, get_getting_started_guidance), which keeps it short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives direct when-to-use instruction ('Call before starting a full video project') and even routes between alternatives ('Prefer script_to_video for longer narrated / informational videos; keep storyboard_to_video to ≤3 scenes unless the user asks for more'). That is explicit selection guidance an agent can act on without inference.

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

image_3d_effectImage 3D effectBInspect

Add 3D parallax motion to a still image, producing a video.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageFileIdYesImage to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, and the description's 'producing a video' is consistent with that mutation profile. However, for a media-generation tool in a suite that exposes get_async_tasks_guidance and get_tool_execution, it says nothing about whether the call blocks or runs asynchronously, or about cost/latency.

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

Conciseness5/5

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

One sentence, front-loaded with the action and ending with the output artifact. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 need not be described, and the parameter is fully documented in the schema. The remaining gap is operational: no hint that this is a likely long-running generation whose result may need polling via the async task tools present in the sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter and schema description coverage is 100%: the schema itself explains that imageFileId comes from upload_file, list_files, or a succeeded image generation. The description adds nothing beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific transformation ('add 3D parallax motion to a still image') plus the output form ('producing a video'), which is enough for an agent to distinguish it from image-only siblings like upscale_image or vectorize_image. It stops short of naming any sibling alternative, so it doesn't reach the explicit differentiation of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description contains no when-to-use or when-not-to-use guidance and names no alternatives, even though siblings such as generate_video_clip and script_to_video also produce video output. The agent must infer the selection context from the name alone.

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

list_entitiesList entitiesA
Read-onlyIdempotent
Inspect

List built-in actors, products, visual styles, and slideshow themes plus team entities (including brands, locations, and props). Built-in rows have isBuiltIn true and cannot be updated or archived. Filter with entityType when you only need one kind.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return.
cursorNoPagination cursor from a previous response's `nextCursor`.
entityTypeNoWhen set, only return entities of this type.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hasMoreYesWhether another page is available.
entitiesYesEntities visible to the API key.
nextCursorYesCursor for the next page, or null.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real value beyond them by disclosing that built-in rows carry isBuiltIn=true and cannot be updated or archived. That immutability caveat is behavioral context the agent cannot get from 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.

Conciseness4/5

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

Three tight sentences, front-loaded with the resource enumeration, then immutability, then filtering. Little waste, though the listing could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers entity kinds, immutability, and filtering. It leaves only the when-to-use-vs-get_entity routing implicit, which keeps it short of fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents limit, cursor, and entityType. The description only reinforces the entityType filter behavior, adding no syntax or format 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.

Purpose5/5

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

Specific verb ('List') plus resource ('entities'), with an explicit enumeration of what kinds are returned: built-in actors, products, visual styles, slideshow themes, plus team entities like brands, locations, props. This clearly distinguishes it from sibling list tools such as list_files and list_projects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers one usage hint ('Filter with entityType when you only need one kind'), which is a genuine when-to-use condition. However, it never routes the agent toward get_entity for single-entity retrieval or names any alternative/exclusion, so guidance is implied rather than explicit.

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

list_filesList filesB
Read-onlyIdempotent
Inspect

List files visible to the current API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return.
cursorNoPagination cursor from a previous response's `nextCursor`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYesFiles visible to the API key.
hasMoreYesWhether another page is available.
nextCursorYesCursor for the next page, or null.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds the key-scoping constraint, which is useful context beyond annotations, but says nothing about pagination behavior or return shape.

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

Conciseness5/5

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

A single tight sentence with the scope constraint front-loaded and no filler. Nothing could be removed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 need not be explained, and annotations cover the safety profile. However, for a list tool in a large sibling set, the absence of pagination guidance and sibling differentiation leaves clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so limit and cursor are fully documented in the schema. The description adds no parameter-level detail; baseline 3 applies when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb (List) and resource (files) with a scoping qualifier ('visible to the current API key'). This distinguishes it from get_file and create_file_upload, but does not explicitly differentiate from sibling list_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this tool versus alternatives like get_file for a single file. The scope qualifier implies a per-key listing but no exclusions or routing guidance are provided.

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

list_languagesList languagesA
Read-onlyIdempotent
Inspect

Return supported narration and caption languages as languageCode and English name pairs. Use these codes when selecting workflow output languages.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional case-insensitive substring filter across each item's searchable text fields.

Output Schema

ParametersJSON Schema
NameRequiredDescription
languagesYesSupported languages.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered. The description adds only the returned field pair (languageCode + English name), which is largely duplicated by the output schema.

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

Conciseness5/5

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

Two tight sentences: the return content first, then the intended use. Nothing is redundant and the purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich annotations, a full output schema, and a single fully-documented optional parameter, the definition supplies everything needed to call it correctly. Only marginal detail, such as which language set is covered, is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one optional 'query' parameter with 100% schema description coverage, so the schema fully documents the substring-filter behavior. The description adds no syntax or filtering detail beyond that, which is the correct baseline when the schema does the work.

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

Purpose5/5

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

Specific verb and resource ('Return supported narration and caption languages') plus the shape of each entry (languageCode and English name pairs). An agent can distinguish this lookup tool from list_tts_voices and other list_* siblings from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the downstream use: 'Use these codes when selecting workflow output languages,' which tells the agent when to reach for this tool. It stops short of naming alternatives or stating 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.

list_project_remix_actionsList project remix actionsA
Read-onlyIdempotent
Inspect

Return remix actions for a project with action ids, types, status, progress, attempts, and error details, plus pagination metadata. Poll after remix_project to determine when edits are ready for export.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesEditable project to inspect. Use projectId from a workflow result or list_projects.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hasMoreYesWhether another page is available.
nextCursorYesCursor for the next page, or null.
remixActionsYesRemix actions for the project.

TDQS

A4/5.0
Behavior4/5

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 covered; the description adds value beyond that by disclosing the polling workflow and that pagination metadata is included. It does not mention rate limits or how large a result set can be, which matters for a polled list endpoint.

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

Conciseness5/5

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

Two sentences with zero filler: the first covers the return payload, the second the usage trigger. Front-loaded and every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be spelled out, and the annotations carry the safety profile; the description still covers purpose and the polling use case. The one unaddressed point is that pagination metadata is returned with no corresponding input parameter, leaving the agent unsure whether it must page or always receives the full set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema description coverage is 100%; the schema itself explains projectId and where to obtain it (workflow result or list_projects). The description adds no syntax, format, or filtering semantics beyond that, so the baseline 3 for schema-covered parameters applies.

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

Purpose4/5

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

States a specific verb and resource (return remix actions for a project) and enumerates what each action record contains (ids, types, status, progress, attempts, errors), so the agent knows exactly what it gets. However, it never differentiates itself from the other readiness-oriented sibling get_project_export, which an agent could plausibly confuse for the 'edits ready for export' check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Second sentence is a genuine routing cue: poll after remix_project to learn when edits are ready for export. That answers 'when do I call this' clearly. It stops short of stating when NOT to use it (e.g., use get_project_export for export status, or list_tool_executions for other async work).

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

list_projectsList projectsA
Read-onlyIdempotent
Inspect

Browse projects in the authenticated team, including dashboard-created projects, most recently updated first. Returns project ids, titles, status, editor URLs, timestamps, and aspect ratios with a pagination cursor.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return.
cursorNoPagination cursor from a previous response's `nextCursor`.
selfOnlyNoWhen true, restrict results to items created by the API key owner rather than the whole team.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hasMoreYesWhether another page is available.
projectsYesProjects, most recently updated first.
nextCursorYesCursor for the next page, or null when hasMore is false.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety bar is low. The description nonetheless adds real behavioral context: results are scoped to the authenticated team, ordered most-recently-updated first, and paginated via a cursor.

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

Conciseness5/5

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

Two tight sentences, front-loaded with scope and ordering before the return/pagination note. No filler; every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the return-value enumeration is mildly redundant but harmless. Scope, ordering, and pagination are covered; only the selfOnly team-vs-owner distinction is left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the three parameters are fully documented in the schema and the baseline is 3. The description adds no parameter-level detail (selfOnly, limit, cursor are untouched), so it neither helps nor hurts.

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

Purpose4/5

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

The description gives a specific verb (browse/list) and resource (projects), scoped to the authenticated team and including dashboard-created ones. It distinguishes scope well, though it never names the single-item sibling (get_project) the way a 5 would.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'browse' and the mention of a pagination cursor suggest a discovery/listing use case, but there is no explicit when-to-use vs get_project or when-not guidance. Adequate but leaves selection to inference.

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

list_tool_executionsList tool executionsA
Read-onlyIdempotent
Inspect

List past tool executions, most recent first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return.
cursorNoPagination cursor from a previous response's `nextCursor`.
selfOnlyNoWhen true, restrict results to items created by the API key owner rather than the whole team.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hasMoreYesWhether another page is available.
nextCursorYesCursor for the next page, or null.
toolExecutionsYesTool executions, most recent first.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description's contribution is the result ordering ('most recent first'); it says nothing about default page size, total counts, or whether results are team-scoped, though selfOnly and cursor in the schema hint at these.

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

Conciseness5/5

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

A single short sentence with the ordering guarantee front-loaded alongside the purpose. There is no filler and nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and the annotations cover the safety profile. The only real gap is the absence of any routing hint toward get_tool_execution versus this list tool, which for a 48-sibling suite would be valuable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three optional parameters (limit, cursor, selfOnly) documented inline including the limit maximum and the cursor's origin. The description adds no parameter-level detail beyond what the schema already provides, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List past tool executions') plus an ordering guarantee ('most recent first'), which the schema does not convey. It implicitly contrasts with the singular sibling get_tool_execution, but never names it, so the list-vs-get distinction is left for the agent to infer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'past tool executions' hints at a history/audit use case, but there is no explicit when-to-use guidance and no mention of when to prefer get_tool_execution for a single record. With 48 siblings including near-duplicates, that omission matters.

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

list_tts_voicesList text-to-speech voicesA
Read-onlyIdempotent
Inspect

Return a page of narration voices with voiceId, display name, language, accent, description, deprecation status, and supportsDirectToolExecution. Use a voice with supportsDirectToolExecution true for text_to_speech; nextCursor fetches more voices.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return.
queryNoOptional case-insensitive substring filter across each item's searchable text fields.
cursorNoPagination cursor from a previous response's `nextCursor`.
includeDeprecatedVoicesNoWhether to include older voices that remain callable. Omit to exclude deprecated voices.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hasMoreYesWhether another page is available.
ttsVoicesYesAvailable text-to-speech voices.
nextCursorYesCursor for the next page, or null.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral value beyond that: pagination via nextCursor and the supportsDirectToolExecution gating rule that determines whether a returned voice is usable by text_to_speech.

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

Conciseness5/5

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

Two sentences with zero filler, front-loaded with the returned resource and fields before the usage instruction. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so enumerating return fields is partly redundant, but the mention of supportsDirectToolExecution supplies the one cross-tool decision rule the schema cannot. Pagination and filtering are fully covered, leaving no functional gap for a four-parameter, zero-required list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents limit, query, cursor and includeDeprecatedVoices. The description only echoes cursor (as nextCursor) and deprecation status without adding syntax, defaults, or filter semantics beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb ('Return a page of') and resource ('narration voices'), then enumerates the returned fields. No sibling tool lists voices, so the resource name alone distinguishes it from list_languages, list_files, and the 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: 'Use a voice with supportsDirectToolExecution true for text_to_speech' names the downstream tool and the selection condition, and 'nextCursor fetches more voices' explains how to continue paging. It stops short of saying when to call this versus e.g. hardcoding a voiceId, so it is strong but not exhaustive.

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

list_workflow_runsList workflow runsA
Read-onlyIdempotent
Inspect

Return a page of workflow runs, most recent first, with run and project ids, status, progress, errors, and export URLs when available, plus nextCursor for pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return.
cursorNoPagination cursor from a previous response's `nextCursor`.
selfOnlyNoWhen true, restrict results to items created by the API key owner rather than the whole team.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hasMoreYesWhether another page is available.
nextCursorYesCursor for the next page, or null.
workflowRunsYesWorkflow runs, most recent first.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the bar is low. The description still adds real context beyond them: results are ordered most-recent-first, paginated via nextCursor, and can omit export URLs when unavailable, which flags potentially missing fields.

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

Conciseness4/5

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

A single front-loaded sentence that leads with the action and resource before enumerating fields. It is slightly dense with an inline field list, but every clause carries information and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and annotations carry the safety profile. The description still supplies ordering and pagination behavior, leaving only the list-vs-single vs cancel routing to inference, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters (limit, cursor, selfOnly) are documented there. The description only echoes the pagination cursor concept via nextCursor, adding little syntax or format detail 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.

Purpose4/5

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

Clear verb ('Return a page of') plus specific resource ('workflow runs'), with useful scope detail like ordering ('most recent first') and returned fields. It does not explicitly distinguish itself from the sibling get_workflow_run, so an agent must infer the singular/plural split.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to reach for this versus get_workflow_run (single run) or cancel_workflow_run. The list semantics are implied by the name, but there are no stated conditions, exclusions, or named alternatives.

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

open_uploaderOpen uploaderA
Read-onlyIdempotent
Inspect

Open an in-chat file uploader (ChatGPT only). The user picks a file, it is uploaded to VideoGen, and its file id (vg_file_...) is reported back for use in voiceover_to_video, slideshow_to_video, logos, or B-roll. Prefer this over asking the user to paste a link. On clients without in-chat UI, use upload_file (small files) or create_file_upload (large files) instead. Returns the uploader launch status; the file id arrives after the user completes the upload.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesUploader launch status: ready. This is not an upload completion result; the widget reports the file id after the user uploads.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavior: the two-phase async nature (launch status returned now, file id only after the user finishes), client gating, and the consumer tools. Not a 5 only because it doesn't mention auth or failure/timeout behavior when the user never completes the upload.

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

Conciseness5/5

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

Four tight sentences, front-loaded with purpose, then downstream use, then preference, then fallbacks and return behavior. No filler and each sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, annotations covering safety, and zero parameters, the description supplies everything else an agent needs: platform constraint, fallback routing, the id format, the consumer tools, and the asynchronous return timing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify beyond noting that the file id arrives asynchronously rather than as an argument.

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

Purpose5/5

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

States a specific verb and resource ('Open an in-chat file uploader') plus the platform gate (ChatGPT only) and the payload produced (vg_file_... id for downstream video tools). An agent can distinguish it from upload_file/create_file_upload immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the fallbacks (upload_file for small files, create_file_upload for large files) and the condition selecting them (clients without in-chat UI), and states a preference rule ('Prefer this over asking the user to paste a link'). This is exactly the when/when-not/alternative guidance wanted.

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

prompt_to_video_clipPrompt to videoAInspect

Generate one short AI video clip from a prompt inside a new editable project. Returns workflowRunId, projectId, and projectUrl; poll get_workflow_run for status and downloadUrl after auto-export.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the short video clip.
qualityNoVideo generation quality. Omit to use workspace settings.
autoExportNoWhen true (the default), the run stays in progress until an MP4 is ready. Use downloadUrl from the result. Set false only if you will call remix_project and then export_project yourself.
aspectRatioNoOutput aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }.
imageFileIdsNoReference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files.
durationSecondsNoRequested clip playback duration in seconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdNoExport id when autoExport succeeded (vg_expo_...).
projectIdYesProject created for this exact workflow attempt (vg_proj_...). A retry creates a different project.
projectUrlYesDeep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL.
downloadUrlNoSigned MP4 download URL when autoExport succeeded. Give this to the user.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoFile id of the rendered MP4 when autoExport succeeded.
workflowTypeNoWorkflow type (present after polling).
workflowRunIdYesWorkflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple.
remixActionIdsNoRemix action ids from the start response (empty when none requested).
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-destructive, non-idempotent, closed-world mutation, and the description adds meaningful behavior on top: it creates a new editable project and is asynchronous, requiring polling of get_workflow_run, with auto-export producing an MP4. That async lifecycle and the project side effect are not derivable from the annotations alone.

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

Conciseness5/5

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

Two dense sentences with zero waste; the core action is front-loaded and the async follow-up is second. Every clause (new editable project, returned IDs, polling target, auto-export) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter creation tool with an output schema present, the description covers the async return lifecycle and the auto-export path without needing to restate return values. The remaining gap is sibling selection (generate_video_clip vs. this tool), which is left unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents prompt, quality, autoExport, aspectRatio, imageFileIds, and durationSeconds in detail, including the autoExport/remix_project interaction. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a concrete verb and resource: 'Generate one short AI video clip from a prompt inside a new editable project,' which is specific about scope (single clip, new project). However, it never distinguishes itself from the sibling generate_video_clip, whose name implies a near-identical job, so an agent cannot tell the two apart from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives a clear follow-up pattern ('poll get_workflow_run for status and downloadUrl after auto-export'), which is useful operational guidance. But there is no when-to-use vs. when-not guidance relative to generate_video_clip, script_to_video, storyboard_to_video, or the other video-producing siblings, so selection 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.

remix_projectRemix projectA
Destructive
Inspect

Apply curated edits to an existing project. The original project is edited in place unless saveAsNewProject is true. CONVERT_IMAGES_TO_VIDEOS generates AI video clips from every still and is expensive. Use ZOOM for cheap Ken Burns camera motion. Poll with list_project_remix_actions for status.

ParametersJSON Schema
NameRequiredDescriptionDefault
editsYesCurated edits to apply in order. CONVERT_IMAGES_TO_VIDEOS generates AI video clips from every still and is expensive. Use ZOOM for cheap Ken Burns camera motion.
projectIdYesEditable project to remix. Use projectId from a workflow result, list_projects, or get_project.
saveAsNewProjectNoWhen true, duplicate the project and apply edits to the copy. When omitted, edit the original project in place.

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectIdYesEdited project id (or the duplicate when saveAsNewProject).
projectUrlYesDeep link to the project in the VideoGen editor.
remixActionIdsYesRemix action ids, one per requested action in order.

TDQS

A4.5/5.0
Behavior5/5

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

With destructiveHint=true and readOnlyHint=false already declared, the description still adds real context: the original project is edited in place unless saveAsNewProject is true, the expensive operation is called out by cost, and the async nature is disclosed via the polling instruction. This is exactly the additional context annotations cannot carry.

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

Conciseness5/5

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

Four short sentences, zero filler, front-loaded with the core action and the mutation semantics before cost and polling details. Every sentence carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and the description covers the remaining essentials: mutation semantics, cost tradeoff between edits, and the follow-up polling tool for async status. Nothing needed to invoke it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents saveAsNewProject, projectId sourcing, and each edit enum value in detail. The description's parameter-related content (saveAsNewProject behavior, ZOOM vs CONVERT) largely repeats the schema, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Apply curated edits to an existing project') and immediately disambiguates scope from generic generation siblings by framing it as editing an existing project. The in-place-vs-copy behavior further pins down what kind of operation this is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit selection guidance between edit modes: CONVERT_IMAGES_TO_VIDEOS is expensive, ZOOM is the cheap Ken Burns option, and it names list_project_remix_actions as the polling tool. It does not, however, say when to prefer remix_project over sibling generators like slideshow_to_video or generate_video_clip.

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

remove_entity_referenceRemove entity referenceA
DestructiveIdempotent
Inspect

Soft-archive a reference attachment on a team entity without deleting the source file. If it was the default reference, another reference is promoted when available. Returns the entity with its remaining references. Retrying a removed attachment can fail because it is no longer active. Built-in entities cannot have references removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdYesReference image file id (vg_file_...) to remove.
entityIdYesSaved reference entity to use. Obtain entityId from list_entities or create_entity.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYesDisplay name.
entityIdYesEntity id (vg_enti_...).
createdAtYesUnix created-at timestamp.
isBuiltInNoTrue for VideoGen catalog entities that cannot be modified.
updatedAtYesUnix updated-at timestamp.
entityTypeYesACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP.
referencesYesAttached reference images.
actorConfigNoVoice/avatar summary for ACTOR entities; null for other types.
brandConfigNoBrand guidance for BRAND entities; null for other types.
descriptionYesDescription (empty when unset).

TDQS

A4.1/5.0
Behavior4/5

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

The description adds substantial texture beyond the annotations: it discloses the operation is a soft-archive (not a hard delete), that a default reference promotes a replacement, that the response is the entity with its remaining references, and that built-in entities are ineligible. The 'retrying can fail because it is no longer active' note sits in mild tension with idempotentHint=true, though soft-archiving is still idempotent in effect, so this is a nuance rather than a contradiction.

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

Conciseness4/5

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

Four compact sentences, each front-loading the most important fact (soft-archive, no source deletion) with no filler. Slightly dense and the return-value sentence is partly redundant given an output schema exists, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema already exists, the description need not explain the return payload, yet it usefully confirms what comes back. Combined with the soft-archive semantics, default-promotion behavior, retry caveat, and built-in restriction, it is complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are fully documented in the schema. The description adds no syntax, format, or constraint detail about entityId/fileId beyond what the schema states, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource: 'Soft-archive a reference attachment on a team entity.' The scope (reference attachment vs. source file) and the contrast with sibling tools add_entity_reference and archive_entity are unambiguous, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear exclusion ('Built-in entities cannot have references removed') and a safety precondition ('without deleting the source file'), giving the agent solid context for when the call is valid. It stops short of explicitly naming an alternative tool or the when-to-use-vs-sibling routing, which keeps it below 5.

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

remove_image_backgroundRemove image backgroundAInspect

Create a new image with the background removed. The source file is left unchanged. Returns toolExecutionId; get_tool_execution provides status and results with the output image fileId and downloadUrl.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageFileIdYesImage to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A4/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: the source file is left unchanged (clarifying that the mutating, non-destructive, non-idempotent operation does not overwrite the original) and that execution is asynchronous and must be polled via get_tool_execution. It stops short of describing failure modes or processing time.

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

Conciseness5/5

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

Three short sentences with zero filler: purpose first, then the safety-relevant guarantee, then the async retrieval path. Every sentence earns its place and the most important facts are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, yet the description usefully points to get_tool_execution for status and results. Coverage of the input contract and the async lifecycle is adequate, with only the lack of any error/timeout context keeping it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema description coverage is 100%, so the schema already defines imageFileId and its acceptable sources. The description references the 'source file' only implicitly and adds no format or constraint detail beyond the schema, which is the expected baseline.

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

Purpose5/5

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

States a specific verb and resource ('Create a new image with the background removed'), which cleanly distinguishes it from the sibling remove_video_background and from vectorize_image/upscale_image. An agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the async workflow by stating it returns a toolExecutionId and that get_tool_execution provides status and results, which is genuine usage guidance. However, it never states when to choose this over siblings like remove_video_background or what input images qualify beyond the schema's own note.

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

remove_video_backgroundRemove video backgroundAInspect

Create a new video with the background removed. The source file is left unchanged. Returns toolExecutionId; get_tool_execution provides status and results with the output video fileId and downloadUrl.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoFileIdYesVideo to transform. Use fileId from upload_file, list_files, or a succeeded video-generation result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare the generic non-read-only, non-destructive, non-idempotent profile. The description adds genuinely useful behavior beyond that: the source file is left unchanged, the call is asynchronous, and the output arrives via get_tool_execution rather than in the response.

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

Conciseness5/5

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

Three short sentences, each carrying distinct information: the action, the non-destructive guarantee, and the async result path. Front-loaded with the effect and no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter async tool that has an output schema, the description covers everything an agent needs: what is produced, that the input is preserved, and how to retrieve the result. Nothing material is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, and the schema already explains where to source the videoFileId. The description adds no parameter-level detail, so the baseline 3 applies.

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

Purpose5/5

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

States a concrete verb and resource ('Create a new video with the background removed') plus the key scope fact that the source is untouched. An agent can distinguish it from remove_image_background purely from the 'video' resource in the first sentence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the async handoff ('get_tool_execution provides status and results'), which tells the agent how to complete the operation, but it never states when to choose this tool over siblings like remove_image_background or the various generate_* tools. Usage is implied rather than directed.

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

script_to_videoScript to videoAInspect

Preferred for narrated / informational / explainer videos from text, especially ~1 minute or longer. Turn a verbatim narration script into an editable video with AI-generated visuals and captions. Prefer this over storyboard_to_video unless the user wants a short shot-directed storyboard. For avatar narration, pass actorEntityId and optionally set avatarQuality.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoVisual style for generated images: a full, strict paragraph describing medium, texture, palette, and composition. Copy a full app default from get_workflows_guidance, or describe a custom look. Omit for the Realistic default. Image models can add extra objects, text, charts, diagrams, tables, and labels. To keep the picture simple, include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.
scriptYesNarration script, spoken verbatim.
qualityNoGeneration quality. Omit to use workspace settings.
voiceIdNoCatalog display name (e.g. Matilda) or voice id from list_tts_voices.
languageNoOutput language as a BCP-47 code, such as en, es, or fr.
autoExportNoWhen true (the default), the run stays in progress until an MP4 is ready. Use downloadUrl from the result. Set false only if you will call remix_project and then export_project yourself.
aspectRatioNoOutput aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }.
actorEntityIdNoId of an ACTOR entity (vg_enti_...) with an image reference. When set, narration is delivered by that actor avatar.
avatarQualityNoAvatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdNoExport id when autoExport succeeded (vg_expo_...).
projectIdYesProject created for this exact workflow attempt (vg_proj_...). A retry creates a different project.
projectUrlYesDeep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL.
downloadUrlNoSigned MP4 download URL when autoExport succeeded. Give this to the user.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoFile id of the rendered MP4 when autoExport succeeded.
workflowTypeNoWorkflow type (present after polling).
workflowRunIdYesWorkflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple.
remixActionIdsNoRemix action ids from the start response (empty when none requested).
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare a non-destructive, non-idempotent, closed-world write, so the safety profile is covered. The description adds useful behavioral context beyond that: the run yields an editable video (implying a remix path) and narration can be actor-driven via actorEntityId with an avatar quality tier. It stops short of stating run duration or export/async behavior (which the schema's autoExport note carries), so it is a solid 4 rather than 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.

Conciseness5/5

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

Three sentences, each load-bearing: preference/scope first, core transformation second, sibling routing third, avatar note last. The most decision-relevant information is front-loaded with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter write tool with full schema coverage, nested objects, annotations, and an output schema, the description covers routing, scope, and the avatar mode adequately. Return-value and export mechanics are correctly left to the output schema and the autoExport description, so only minor gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter meaning by tying actorEntityId and avatarQuality together into a coherent avatar-narration mode. This goes beyond the per-field schema text by explaining how the parameters combine.

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

Purpose5/5

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

States a specific verb and resource ('Turn a verbatim narration script into an editable video') plus the concrete output attributes (AI-generated visuals and captions). It also explicitly distinguishes itself from the sibling alternative storyboard_to_video, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('narrated / informational / explainer videos... ~1 minute or longer'), names the alternative ('Prefer this over storyboard_to_video'), and states the exclusion ('unless the user wants a short shot-directed storyboard'), plus the avatar-narration condition. Nothing 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.

slideshow_to_videoSlideshow to videoAInspect

Build an editable narrated video from an uploaded PDF or slideshow file. Upload the file first with upload_file, then pass its fileId. For avatar narration, pass actorEntityId and optionally set avatarQuality. Returns workflowRunId, projectId, and projectUrl; poll get_workflow_run for progress and downloadUrl after auto-export.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdYesUploaded PDF or slideshow file id.
voiceIdNoCatalog display name (e.g. Matilda) or voice id from list_tts_voices.
languageNoOutput language as a BCP-47 code, such as en, es, or fr.
autoExportNoWhen true (the default), the run stays in progress until an MP4 is ready. Use downloadUrl from the result. Set false only if you will call remix_project and then export_project yourself.
aspectRatioNoOutput aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }.
slideScriptsNoOptional narration for each slide, in order.
actorEntityIdNoId of an ACTOR entity (vg_enti_...) with an image reference. When set, narration is delivered by that actor avatar.
avatarQualityNoAvatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings.
slideshowThemeEntityIdNoOptional id of a SLIDESHOW_THEME entity (vg_enti_...) whose reference board defines the shared slide design system. Omit when converting an uploaded deck's original pages; VideoGen derives a theme from those pages in the background.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdNoExport id when autoExport succeeded (vg_expo_...).
projectIdYesProject created for this exact workflow attempt (vg_proj_...). A retry creates a different project.
projectUrlYesDeep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL.
downloadUrlNoSigned MP4 download URL when autoExport succeeded. Give this to the user.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoFile id of the rendered MP4 when autoExport succeeded.
workflowTypeNoWorkflow type (present after polling).
workflowRunIdYesWorkflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple.
remixActionIdsNoRemix action ids from the start response (empty when none requested).
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the safety profile (not read-only, not idempotent, not destructive), and the description adds meaningful async context: it returns workflowRunId/projectId/projectUrl and that progress and downloadUrl come via get_workflow_run after auto-export. This tells the agent the call is a long-running job requiring polling, which annotations alone would not convey.

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

Conciseness5/5

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

Four tight sentences, front-loaded with purpose, then prerequisite, then the avatar parameter path, then returns and the next step. Every sentence carries actionable content with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 9-parameter async creation tool with nested objects, the description covers the source prerequisite, the optional avatar branch, and the polling follow-up, and an output schema exists so return values need not be enumerated. It is close to complete, though the theme/autoExport decision points are left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all nine parameters, including the upload relationship for fileId and the avatar conditions. The description reinforces the fileId prerequisite and avatar path but adds little beyond what the schema descriptions already state, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Build an editable narrated video') and scopes the input source ('from an uploaded PDF or slideshow file'), which distinguishes it from sibling video tools that take scripts, storyboards, or voiceovers. It stops short of naming those siblings explicitly, so differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete prerequisite chain ('Upload the file first with upload_file, then pass its fileId') and conditional guidance for the avatar path ('For avatar narration, pass actorEntityId and optionally set avatarQuality'). It does not say when to prefer this over voiceover_to_video or script_to_video, so no explicit alternatives or exclusions.

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

storyboard_to_videoStoryboard to videoAInspect

Build an editable video from an ordered storyboard (frame-by-frame shot list). To show a saved product, actor, or visual style, pass productEntityIds, actorEntityIds, or visualStyleEntityId on each scene that should use that entity's reference images (create_entity and add_entity_reference first). A prompt alone does not attach those images. Much more credit-heavy than script_to_video: use at most 3 scenes unless the user explicitly asks for more. Prefer script_to_video for ~1 minute+ narrated / informational videos. If the user has not named a workflow, ask with pros/cons before calling this.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoVisual style for generated images: a full, strict paragraph describing medium, texture, palette, and composition. Copy a full app default from get_workflows_guidance, or describe a custom look. Omit for the Realistic default. Image models can add extra objects, text, charts, diagrams, tables, and labels. To keep the picture simple, include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.
scenesYesOrdered scenes. Every scene requires a visual prompt. Put productEntityIds, actorEntityIds, or visualStyleEntityId on each scene that should use that entity's reference images.
qualityNoImage generation quality for scene opening frames. Omit to use HIGH. Does not change video generation quality.
autoExportNoWhen true (the default), the run stays in progress until an MP4 is ready. Use downloadUrl from the result. Set false only if you will call remix_project and then export_project yourself.
aspectRatioNoOutput aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }.
actorEntityIdsNoACTOR entity ids (vg_enti_...) to keep attached to the project. Also set actorEntityIds on each scene that should show that actor.
productEntityIdsNoPRODUCT entity ids (vg_enti_...) to keep attached to the project. Also set productEntityIds on each scene that should show that product.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdNoExport id when autoExport succeeded (vg_expo_...).
projectIdYesProject created for this exact workflow attempt (vg_proj_...). A retry creates a different project.
projectUrlYesDeep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL.
downloadUrlNoSigned MP4 download URL when autoExport succeeded. Give this to the user.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoFile id of the rendered MP4 when autoExport succeeded.
workflowTypeNoWorkflow type (present after polling).
workflowRunIdYesWorkflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple.
remixActionIdsNoRemix action ids from the start response (empty when none requested).
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations only declare the mutation profile (non-readonly, non-idempotent, non-destructive) and the description goes well beyond that: it discloses the credit-cost characteristic ("Much more credit-heavy than script_to_video"), the entity-attachment mechanic ("A prompt alone does not attach those images"), and a prerequisite workflow. It does not mention auth/permissions or rate limits, so not a perfect 5, but it is rich 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.

Conciseness5/5

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

Front-loaded with the core action, then the entity mechanics, then cost/routing constraints — every sentence carries distinct, load-bearing information with no repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter nested-object tool with an output schema, the description covers the decision, the cost tradeoff, the entity prerequisite workflow, and the alternative tool. Return values are handled by the output schema, so nothing an agent needs before calling is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description nevertheless adds meaning beyond the schema by linking the entity parameters to required setup calls ("create_entity and add_entity_reference first") and clarifying the per-scene vs project-level duplication of productEntityIds/actorEntityIds. That cross-parameter guidance is genuine added value.

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

Purpose5/5

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

States a specific verb+resource ("Build an editable video from an ordered storyboard (frame-by-frame shot list)") and explicitly distinguishes itself from the sibling script_to_video. An agent can tell this apart from script_to_video, slideshow_to_video, and prompt_to_video_clip without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use rules (at most 3 scenes unless the user asks for more), a named alternative with its selection condition ("Prefer script_to_video for ~1 minute+ narrated / informational videos"), and a gating instruction to ask the user before calling when no workflow is named. This is exemplary routing guidance.

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

text_to_speechText to speechAInspect

Synthesize spoken audio from text using a catalog voice that supportsDirectToolExecution. Returns toolExecutionId on hosted clients; poll get_tool_execution for status and results containing the audio fileId, downloadUrl, and file metadata. Local calls wait for a status snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesWords to synthesize as spoken audio.
speedNoSpeech-rate multiplier relative to the voice's normal speed (1).
voiceIdYesCatalog display name (e.g. Matilda) or voice id from list_tts_voices.
languageNoISO-639-1 pronunciation language hint, such as en or es. Omit or pass null to leave pronunciation language selection automatic.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only cover the safety profile (not read-only, non-destructive, non-idempotent); the description adds genuinely new behavior: async execution returning toolExecutionId, the need to poll, and the synchronous short-circuit for local calls. It also introduces the 'supportsDirectToolExecution' voice constraint, which is meaningful context. Missing error/timeout behavior keeps it from 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.

Conciseness4/5

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

Three compact sentences, front-loaded with what the tool produces, followed by the async contract. Minor redundancy in restating return fields covered by the output schema, but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so listing fileId/downloadUrl/file metadata is somewhat redundant, but the description correctly covers the async polling lifecycle and the local synchronous path. No required parameter is left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents text, speed, voiceId, and language with format and bounds. The description only adds a quality constraint on voiceId (must support DirectToolExecution). Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb (synthesize) and resource (spoken audio from text) and ties it to a catalog voice, which cleanly separates it from generate_music and generate_sound_effect siblings. It does not explicitly address the closest alternate, voiceover_to_video, so it falls just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a real usage instruction – poll get_tool_execution for status/results on hosted clients – and names list_tts_voices as the source of voiceId. However, it never states when to prefer this over the adjacent audio-generation siblings, so usage is implied rather than fully guided.

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

update_entityUpdate entityA
Destructive
Inspect

Overwrite supplied display name, description, or complete brandConfig fields on an existing team entity. Omitted fields stay unchanged. Returns the updated entity. Built-in entities cannot be updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew display name. Omit to leave unchanged.
entityIdYesSaved reference entity to use. Obtain entityId from list_entities or create_entity.
brandConfigNoComplete replacement configuration for a BRAND entity.
descriptionNoNew description. Omit to leave unchanged.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYesDisplay name.
entityIdYesEntity id (vg_enti_...).
createdAtYesUnix created-at timestamp.
isBuiltInNoTrue for VideoGen catalog entities that cannot be modified.
updatedAtYesUnix updated-at timestamp.
entityTypeYesACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP.
referencesYesAttached reference images.
actorConfigNoVoice/avatar summary for ACTOR entities; null for other types.
brandConfigNoBrand guidance for BRAND entities; null for other types.
descriptionYesDescription (empty when unset).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructive non-read-only behavior, and the description adds that omitted fields stay unchanged and brandConfig is a complete replacement. It does not cover permissions or irreversibility beyond the destructive hint.

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

Conciseness4/5

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

Four short sentences, front-loaded with the operation and partial-update behavior. 'Returns the updated entity' is slightly redundant because an output schema exists, but the text remains tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter mutation with full schema coverage, an output schema, and destructive annotation, the description covers mutation semantics, partial updates, brandConfig replacement, and built-in exclusion. Nothing required for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already documents name, entityId, description, and brandConfig including nested fields. The description restates partial-update and complete-replacement semantics but adds 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.

Purpose5/5

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

States a specific verb 'Overwrite' and resource 'existing team entity' plus the affected fields. It also notes the built-in restriction and return behavior, distinguishing it from create/get/list/archive siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains this is for updating an existing entity and excludes built-in entities from updates. It does not name create_entity or archive_entity as alternatives, so routing is clear but not fully explicit.

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

upload_fileUpload fileAInspect

Upload a small file (image, logo, or short audio) to VideoGen by passing its base64-encoded contents, and wait until it is processed. Returns the file with its id (vg_file_...) and signed URLs. Use the returned fileId for voiceover_to_video, slideshow_to_video, logos, or B-roll. For large files, use create_file_upload instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoMedia kind to associate with the upload. Inferred when omitted.
fileDataYesBase64-encoded contents of the file to upload.
displayNameNoHuman-readable label used to identify the uploaded asset in the VideoGen library. Defaults to 'upload'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeNoFile type once processing has determined it.
scopeNoFile scope.
fileIdYesFile id (vg_file_...).
hlsSourceNo
descriptionNoFile description when analyzed.
displayNameNoDisplay name for the file.
downloadUrlNoSigned download URL when ready.
publicHlsUrlNo
thumbnailUrlNoSigned thumbnail URL when available.
previewSourceNo
downloadSourceNo
sourceToolTypeNo
transcriptTextNoPlain transcript text when available.
durationSecondsNoDuration in seconds for video/audio; null for images.
thumbnailSourceNo
publicPlaybackIdNo
downloadUrlExpiresAtNoUnix expiry for downloadUrl.
sourceToolExecutionIdNo
thumbnailUrlExpiresAtNoUnix expiry for thumbnailUrl.
isPublicPreviewEnabledNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations cover the safety profile (not read-only, not idempotent, not destructive), so the description's added value is the blocking/wait-until-processed behavior and the 'small file' size constraint, which are real traits beyond structured data. It stops short of stating exact size limits, auth requirements, or failure behavior, keeping it out of 5 territory.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the action and constraint, followed by the return shape and the routing to the alternative. Every sentence carries distinct information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be re-explained, yet the description usefully summarizes the id and signed URLs. Combined with full schema coverage and clear sibling routing, nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents fileData, type (with enum), and displayName. The description restates that contents are base64-encoded but adds no syntax, format, or default details beyond what the schema provides, matching the baseline when the schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb (upload) and resource (file) with scope qualifiers ('small file... base64-encoded contents'), and explicitly distinguishes itself from the sibling create_file_upload for large files. An agent can identify the tool and its domain without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative explicitly ('For large files, use create_file_upload instead') with the condition that selects it, and enumerates downstream consumers (voiceover_to_video, slideshow_to_video, logos, B-roll) so the agent knows where the returned fileId feeds. When-to-use and when-not-to-use are both present.

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

upscale_imageUpscale imageAInspect

Create a higher-resolution copy of an existing image for sharper presentation. Returns toolExecutionId; get_tool_execution provides status and the output image file. The source file is unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageFileIdYesImage to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (which already declare non-destructive, non-read-only), the description adds two useful behavioral facts: the source file is left unchanged, and the call is asynchronous, returning a toolExecutionId that must be polled via get_tool_execution. These are concrete details not derivable from 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.

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then the async return contract, then the non-destructive guarantee. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but the description still usefully covers the async lifecycle (toolExecutionId → get_tool_execution → output file), which is the key operational detail for calling this tool correctly. Missing only explicit routing guidance versus sibling transform tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single parameter (imageFileId) is fully documented in the schema with sourcing hints. The description adds no further parameter-level meaning, so the baseline 3 is appropriate.

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

Purpose4/5

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

The description names a specific verb and resource ('Create a higher-resolution copy of an existing image') and states the intent ('for sharper presentation'), so an agent can immediately tell what it does. It does not, however, differentiate itself from adjacent siblings like vectorize_image or image_3d_effect, which are other image-transform operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name and purpose — there is no explicit guidance on when to choose upscale_image over alternatives such as vectorize_image, image_3d_effect, or upscale_video. No when-not conditions or prerequisites (e.g., required input type) are stated.

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

upscale_videoUpscale videoAInspect

Create a higher-resolution copy of an existing video. Returns toolExecutionId; get_tool_execution provides status and the output video file. The source file is unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoFileIdYesVideo to transform. Use fileId from upload_file, list_files, or a succeeded video-generation result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint false, destructiveHint false), and the description adds genuine value beyond them: it discloses the async contract (returns toolExecutionId, poll via get_tool_execution) and confirms the source file is not modified. It does not discuss rate limits or failure modes, so it falls 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.

Conciseness5/5

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

Three short sentences, zero filler, with the core purpose front-loaded and the async/return behavior following in priority order.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and the async follow-up path named explicitly, an agent has everything it needs: what the tool does, what it returns, and how to retrieve the result. The absence of resolution parameters is a tool-design choice, not a description gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single documented parameter, so the schema already explains where videoFileId comes from. The description adds no format or constraint detail beyond it, making the baseline 3 appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Create a higher-resolution copy of an existing video') and names the outcome (a new file). This cleanly distinguishes it from upscale_image and the generate_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (you already have a video file to improve) and notes the source is unchanged, but it never states when to prefer this over alternatives or what prerequisites apply. Usage is inferable rather than stated.

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

vectorize_imageVectorize imageAInspect

Create an SVG vector version of an existing raster image. Returns toolExecutionId; get_tool_execution provides status and results with the SVG fileId and downloadUrl.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageFileIdYesImage to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
resultsNoGenerated results with download URLs when succeeded.
toolTypeNoTool name (e.g. GENERATE_IMAGE).
attemptIndexNoCurrent or latest attempt index.
toolExecutionIdYesTool execution id (vg_tool_...).
progressPercentageNoCompletion progress 0-100 (present after polling).

TDQS

A4/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-destructive, non-idempotent operation, and the description goes beyond that by disclosing the asynchronous contract: it returns a toolExecutionId and results must be fetched via get_tool_execution as an SVG fileId plus downloadUrl. It stops short of noting whether the source file is retained or any rate/size constraints, but the async behavior is the key trait an agent needs.

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

Conciseness5/5

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

Two tight sentences with zero filler; the output/pipeline information is front-loaded immediately after the purpose so the agent learns it is async before invoking. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with an output schema, the description covers the essential async lifecycle and naming of the follow-up tool. It omits any constraints on acceptable input images (allowed formats, resolution limits) that would matter before committing to a long-running job.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, and the schema already explains that imageFileId comes from upload_file, list_files, or a succeeded image-generation result. The description adds no format, size, or validity constraints beyond that, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb+resource pair ('Create an SVG vector version of an existing raster image') that is unmistakably distinct from neighbors like upscale_image, remove_image_background, and generate_image. An agent can tell exactly what it produces (SVG) and what it consumes (a raster image file) without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names the companion tools (get_tool_execution) but never states when to choose vectorize_image over related transforms such as upscale_image or remove_image_background, nor any preconditions. Usage is implied by the purpose rather than explicitly guided.

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

voiceover_to_videoVoiceover to videoBInspect

Build an editable video with AI-generated visuals from an uploaded voiceover audio file.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoVisual style for generated images: a full, strict paragraph describing medium, texture, palette, and composition. Copy a full app default from get_workflows_guidance, or describe a custom look. Omit for the Realistic default. Image models can add extra objects, text, charts, diagrams, tables, and labels. To keep the picture simple, include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.
fileIdYesUploaded voiceover audio file id.
qualityNoGeneration quality. Omit to use workspace settings.
languageNoOutput language as a BCP-47 code, such as en, es, or fr.
autoExportNoWhen true (the default), the run stays in progress until an MP4 is ready. Use downloadUrl from the result. Set false only if you will call remix_project and then export_project yourself.
aspectRatioNoOutput aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError details when status is failed; otherwise null.
statusNoJob status: pending, running, succeeded, failed, or cancelled.
exportIdNoExport id when autoExport succeeded (vg_expo_...).
projectIdYesProject created for this exact workflow attempt (vg_proj_...). A retry creates a different project.
projectUrlYesDeep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL.
downloadUrlNoSigned MP4 download URL when autoExport succeeded. Give this to the user.
attemptIndexNoCurrent or latest attempt index.
exportFileIdNoFile id of the rendered MP4 when autoExport succeeded.
workflowTypeNoWorkflow type (present after polling).
workflowRunIdYesWorkflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple.
remixActionIdsNoRemix action ids from the start response (empty when none requested).
progressPercentageNoCompletion progress 0-100 (present after polling).
downloadUrlExpiresAtNoUnix expiry for downloadUrl.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the operation is non-read-only, non-idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds only mild context (the output is an editable video, visuals are AI-generated), but says nothing about the asynchronous/long-running nature of generation or that it produces a project. With annotations carrying the safety burden, a 3 is appropriate.

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

Conciseness5/5

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

A single, front-loaded sentence with zero filler. Every clause (build, editable, AI-generated visuals, uploaded voiceover) carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the schema fully documents all six parameters including the autoExport/remix_project workflow. The main gap is that the description does not mention the long-running generation behavior of this tool, but for a 1-required-parameter generation endpoint the definition is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents style, quality, language, autoExport and aspectRatio in detail. The description only maps loosely to fileId ("uploaded voiceover audio file") and style ("AI-generated visuals"), adding nothing beyond what the schema already provides. Baseline 3 for a fully documented schema.

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

Purpose4/5

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

States a specific verb ("Build"), a specific output ("editable video with AI-generated visuals") and a specific input source ("uploaded voiceover audio file"). An agent can distinguish it from script_to_video or slideshow_to_video by the voiceover-audio input, but the description never names those alternatives, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a precondition (you must already have an uploaded voiceover file) but gives no when-to-use guidance and no comparison to the several sibling video generators. Nothing tells the agent when to pick this over script_to_video or storyboard_to_video.

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.

  1. 37 tool updates
    • Changedadd_entity_reference2 fields changed
      • changedInput schema / properties / entityId / description
        Previous value: -"Entity id (vg_enti_...)."New value: +"Saved reference entity to use. Obtain entityId from list_entities or create_entity."
      • changedInput schema / properties / role / description
        Previous value: -"What the file is used for. Defaults to REFERENCE. On a BRAND, BRAND_LOGO is its overlay logo and BRAND_STYLE_GUIDE is its visual generation reference."New value: +"Purpose of the attached file. Omit for a general reference. On a BRAND, BRAND_LOGO is its overlay logo and BRAND_STYLE_GUIDE is its visual generation reference."
    • Changedarchive_entity1 field changed
      • changedInput schema / properties / entityId / description
        Previous value: -"Entity id (vg_enti_...)."New value: +"Saved reference entity to use. Obtain entityId from list_entities or create_entity."
    • Changedcancel_tool_execution9 fields changed
      • changedInput schema / properties / toolExecutionId / description
        Previous value: -"Tool execution id (vg_tool_...)."New value: +"Execution to inspect or cancel. Use toolExecutionId from a media-tool start result or list_tool_executions."
      • changedOutput schema / description
        Previous value: -"Tool execution id, or full execution status after waiting (results when succeeded)."New value: +"Cancellation acknowledgment. Use get_tool_execution for status and results."
      • removedOutput schema / properties / attemptIndex
        Removed value: -{
        -  "description": "Current or latest attempt index.",
        -  "type": "number"
        -}
      • removedOutput schema / properties / error
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": {},
        -      "properties": {
        -        "code": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "description": "Machine-readable error code."
        -        },
        -        "internalErrorCode": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "description": "Opaque code for support."
        -        },
        -        "message": {
        -          "description": "Human-readable error description.",
        -          "type": "string"
        -        },
        -        "requirement": {
        -          "anyOf": [
        -            {
        -              "additionalProperties": {},
        -              "properties": {
        -                "details": {
        -                  "additionalProperties": {
        -                    "type": "string"
        -                  },
        -                  "propertyNames": {
        -                    "type": "string"
        -                  },
        -                  "type": "object"
        -                },
        -                "type": {
        -                  "description": "Requirement type (e.g. purchase_add_on).",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "description": "What is needed to resolve the error, when applicable."
        -        }
        -      },
        -      "required": [
        -        "message"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "description": "Error details when status is failed; otherwise null."
        -}
      • removedOutput schema / properties / progressPercentage
        Removed value: -{
        -  "description": "Completion progress 0-100 (present after polling).",
        -  "type": "number"
        -}
      • removedOutput schema / properties / results
        Removed value: -{
        -  "description": "Generated results with download URLs when succeeded.",
        -  "items": {
        -    "additionalProperties": {},
        -    "description": "One generated result from a succeeded tool execution.",
        -    "properties": {
        -      "downloadUrl": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Signed download URL."
        -      },
        -      "downloadUrlExpiresAt": {
        -        "anyOf": [
        -          {
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Unix expiry for downloadUrl."
        -      },
        -      "file": {
        -        "additionalProperties": {},
        -        "description": "Hydrated file metadata.",
        -        "properties": {
        -          "description": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "File description when analyzed."
        -          },
        -          "displayName": {
        -            "description": "Display name for the file.",
        -            "type": "string"
        -          },
        -          "downloadSource": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": {},
        -                "description": "A file rendition source (thumbnail, preview, download, …).",
        -                "properties": {
        -                  "expiresAt": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Unix expiry for url."
        -                  },
        -                  "fileBytes": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition size in bytes."
        -                  },
        -                  "height": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition height in pixels."
        -                  },
        -                  "status": {
        -                    "description": "Rendition status.",
        -                    "enum": [
        -                      "pending",
        -                      "ready",
        -                      "failed",
        -                      "skipped"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "url": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Signed URL when status is ready."
        -                  },
        -                  "width": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition width in pixels."
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "downloadUrl": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Signed download URL when ready."
        -          },
        -          "downloadUrlExpiresAt": {
        -            "anyOf": [
        -              {
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Unix expiry for downloadUrl."
        -          },
        -          "durationSeconds": {
        -            "anyOf": [
        -              {
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Duration in seconds for video/audio; null for images."
        -          },
        -          "fileId": {
        -            "description": "File id (vg_file_...).",
        -            "type": "string"
        -          },
        -          "hlsSource": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": {},
        -                "description": "A file rendition source (thumbnail, preview, download, …).",
        -                "properties": {
        -                  "expiresAt": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Unix expiry for url."
        -                  },
        -                  "fileBytes": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition size in bytes."
        -                  },
        -                  "height": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition height in pixels."
        -                  },
        -                  "status": {
        -                    "description": "Rendition status.",
        -                    "enum": [
        -                      "pending",
        -                      "ready",
        -                      "failed",
        -                      "skipped"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "url": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Signed URL when status is ready."
        -                  },
        -                  "width": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition width in pixels."
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "isPublicPreviewEnabled": {
        -            "type": "boolean"
        -          },
        -          "previewSource": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": {},
        -                "description": "A file rendition source (thumbnail, preview, download, …).",
        -                "properties": {
        -                  "expiresAt": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Unix expiry for url."
        -                  },
        -                  "fileBytes": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition size in bytes."
        -                  },
        -                  "height": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition height in pixels."
        -                  },
        -                  "status": {
        -                    "description": "Rendition status.",
        -                    "enum": [
        -                      "pending",
        -                      "ready",
        -                      "failed",
        -                      "skipped"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "url": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Signed URL when status is ready."
        -                  },
        -                  "width": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition width in pixels."
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "publicHlsUrl": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "publicPlaybackId": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "scope": {
        -            "description": "File scope.",
        -            "enum": [
        -              "GLOBAL",
        -              "PROJECT",
        -              "EXPORT",
        -              "TEMPORARY",
        -              "ENTITY"
        -            ],
        -            "type": "string"
        -          },
        -          "sourceToolExecutionId": {
        -            "type": "string"
        -          },
        -          "sourceToolType": {
        -            "type": "string"
        -          },
        -          "thumbnailSource": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": {},
        -                "description": "A file rendition source (thumbnail, preview, download, …).",
        -                "properties": {
        -                  "expiresAt": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Unix expiry for url."
        -                  },
        -                  "fileBytes": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition size in bytes."
        -                  },
        -                  "height": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition height in pixels."
        -                  },
        -                  "status": {
        -                    "description": "Rendition status.",
        -                    "enum": [
        -                      "pending",
        -                      "ready",
        -                      "failed",
        -                      "skipped"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "url": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Signed URL when status is ready."
        -                  },
        -                  "width": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Rendition width in pixels."
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "thumbnailUrl": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Signed thumbnail URL when available."
        -          },
        -          "thumbnailUrlExpiresAt": {
        -            "anyOf": [
        -              {
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Unix expiry for thumbnailUrl."
        -          },
        -          "transcriptText": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Plain transcript text when available."
        -          },
        -          "type": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "File type once processing has determined it."
        -          }
        -        },
        -        "required": [
        -          "fileId"
        -        ],
        -        "type": "object"
        -      },
        -      "fileId": {
        -        "description": "Generated file id (vg_file_...).",
        -        "type": "string"
        -      },
        -      "thumbnailUrl": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Signed thumbnail URL, or null."
        -      },
        -      "thumbnailUrlExpiresAt": {
        -        "anyOf": [
        -          {
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Unix expiry for thumbnailUrl."
        -      },
        -      "type": {
        -        "description": "Generated file type.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "fileId",
        -      "type",
        -      "downloadUrl",
        -      "downloadUrlExpiresAt",
        -      "thumbnailUrl",
        -      "thumbnailUrlExpiresAt",
        -      "file"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / status
        Removed value: -{
        -  "description": "Job status: pending, running, succeeded, failed, or cancelled.",
        -  "enum": [
        -    "pending",
        -    "running",
        -    "succeeded",
        -    "failed",
        -    "cancelled"
        -  ],
        -  "type": "string"
        -}
      • changedOutput schema / properties / toolExecutionId / description
        Previous value: -"Tool execution id (vg_tool_...)."New value: +"Execution for which cancellation was requested."
      • removedOutput schema / properties / toolType
        Removed value: -{
        -  "description": "Tool name (e.g. GENERATE_IMAGE).",
        -  "type": "string"
        -}
    • Changedcancel_workflow_run1 field changed
      • changedInput schema / properties / workflowRunId / description
        Previous value: -"Workflow run id (vg_work_...)."New value: +"Run to inspect or cancel. Use workflowRunId from a workflow start result or list_workflow_runs."
    • Changedcreate_entity1 field changed
      • changedInput schema / properties / description / description
        Previous value: -"Optional longer description."New value: +"Describe the subject, product, setting, or visual identity this saved entity represents."
    • Changedcreate_file_upload2 fields changed
      • changedInput schema / properties / displayName / description
        Previous value: -"Display name for the file."New value: +"Human-readable label used to identify the uploaded asset in the VideoGen library."
      • changedInput schema / properties / type / description
        Previous value: -"File type. Inferred after processing when omitted."New value: +"Media or document kind to associate with the upload. Inferred after processing when omitted."
    • Changedexport_project2 fields changed
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id to export."New value: +"Editable project to render. Use projectId from a workflow result, list_projects, or get_project."
      • changedInput schema / properties / quality / description
        Previous value: -"Export quality. Omit for the default."New value: +"MP4 resolution tier by shortest edge: STANDARD is 720p, HIGH and FULL_HIGH are 1080p, and ULTRA_HIGH is 2160p. Omit for FULL_HIGH."
    • Changedgenerate_avatar1 field changed
      • changedInput schema / properties / audioFileId / description
        Previous value: -"Audio file id for the avatar to lip-sync."New value: +"Speech recording for the actor to lip-sync. Use fileId from an audio upload, list_files, or a succeeded text_to_speech result."
    • Changedgenerate_image2 fields changed
      • changedInput schema / properties / entityIds / description
        Previous value: -"Optional actor, product, or visual-style entity ids (vg_enti_...) used as identity/reference."New value: +"Actor, product, or visual-style references for consistent identity and appearance. Use entityId values from list_entities or create_entity, with reference files attached."
      • changedInput schema / properties / imageFileIds / description
        Previous value: -"Optional reference image file ids."New value: +"Reference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files."
    • Changedgenerate_motion_graphic7 fields changed
      • addedInput schema / properties / durationSeconds / description
        Added value: +"Requested motion-graphic playback duration in seconds."
      • changedInput schema / properties / entityIds / description
        Previous value: -"Optional actor, product, or visual-style entity ids (vg_enti_...)."New value: +"Actor, product, or visual-style references. Use entityId values from list_entities or create_entity, with reference files attached."
      • changedInput schema / properties / fileIds / description
        Previous value: -"Optional reference media file ids."New value: +"Media to display or animate in the motion graphic. Use fileId values from upload_file, get_file, or list_files."
      • changedInput schema / properties / subToolModes / properties / generateImages / description
        Previous value: -"AUTO uses the capability when the plan allows it. ENABLED requires it. DISABLED turns it off."New value: +"Control image generation within the motion graphic: AUTO lets the plan decide, ENABLED requires use, and DISABLED prevents use."
      • changedInput schema / properties / subToolModes / properties / generateVideoClips / description
        Previous value: -"AUTO uses the capability when the plan allows it. ENABLED requires it. DISABLED turns it off."New value: +"Control video-clip generation within the motion graphic: AUTO lets the plan decide, ENABLED requires use, and DISABLED prevents use."
      • changedInput schema / properties / subToolModes / properties / generateVoiceover / description
        Previous value: -"AUTO uses the capability when the plan allows it. ENABLED requires it. DISABLED turns it off."New value: +"Control voiceover synthesis within the motion graphic: AUTO lets the plan decide, ENABLED requires use, and DISABLED prevents use."
      • changedInput schema / properties / subToolModes / properties / searchStockMedia / description
        Previous value: -"AUTO uses the capability when the plan allows it. ENABLED requires it. DISABLED turns it off."New value: +"Control stock-media search within the motion graphic: AUTO lets the plan decide, ENABLED requires use, and DISABLED prevents use."
    • Changedgenerate_sound_effect1 field changed
      • addedInput schema / properties / durationSeconds / description
        Added value: +"Requested sound-effect playback duration in seconds."
    • Changedgenerate_video_clip2 fields changed
      • changedInput schema / properties / durationSeconds / description
        Previous value: -"Optional clip length in whole seconds (1 to 30). Omit or pass null for Auto."New value: +"Requested clip playback duration in seconds. Omit or pass null for automatic timing."
      • changedInput schema / properties / imageFileIds / description
        Previous value: -"Optional reference image file ids."New value: +"Reference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files."
    • Changedget_app_deep_link5 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Assistant COMMON action to deep-link into the VideoGen app (opens a modal or navigates after sign-in)."New value: +"App operation to open after sign-in, such as navigation, feedback, or integration management."
      • changedInput schema / properties / articleSlug / description
        Previous value: -"Required for OPEN_HELP_ARTICLE. Help-center article slug / search query."New value: +"Required for OPEN_HELP_ARTICLE. Help-center search text, such as an article title or its URL slug; the link opens matching search results."
      • changedInput schema / properties / category / description
        Previous value: -"Optional for OPEN_SUBMIT_FEEDBACK. Ticket category, or null to let the user pick."New value: +"Feedback classification for OPEN_SUBMIT_FEEDBACK. Omit or pass null to let the user choose."
      • changedInput schema / properties / provider / description
        Previous value: -"Required for OPEN_MANAGE_INTEGRATION. Integration provider id (e.g. GOOGLE, SLACK)."New value: +"Required for OPEN_MANAGE_INTEGRATION. Integration provider key, such as GOOGLE or SLACK, identifying the connection to manage."
      • changedInput schema / properties / suggestedLocale / description
        Previous value: -"Optional for OPEN_LANGUAGE_SELECTOR. Suggested locale code (e.g. en-US)."New value: +"For OPEN_LANGUAGE_SELECTOR, preselect a UI language using an app locale code such as en or es. Unsupported codes are ignored. The user can choose another language."
    • Changedget_entity1 field changed
      • changedInput schema / properties / entityId / description
        Previous value: -"Entity id (vg_enti_...)."New value: +"Saved reference entity to use. Obtain entityId from list_entities or create_entity."
    • Changedget_file2 fields changed
      • changedInput schema / properties / fileId / description
        Previous value: -"File id (vg_file_...)."New value: +"Asset to fetch. Use fileId from upload_file, create_file_upload, list_files, or a generation result."
      • changedInput schema / properties / pollIntervalMs / description
        Previous value: -"How often to poll while waiting, in milliseconds."New value: +"Time between readiness checks in milliseconds when wait is true. Omit to poll every 3000 milliseconds."
    • Changedget_project1 field changed
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id."New value: +"Editable project to inspect. Use projectId from a workflow result or list_projects."
    • Changedget_project_export1 field changed
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id that owns the export."New value: +"Project that owns the export. Use the same projectId passed to export_project, obtained from a workflow result or list_projects."
    • Changedget_tool_execution5 fields changed
      • changedInput schema / properties / toolExecutionId / description
        Previous value: -"Tool execution id (vg_tool_...)."New value: +"Execution to inspect or cancel. Use toolExecutionId from a media-tool start result or list_tool_executions."
      • changedOutput schema / description
        Previous value: -"Tool execution id, or full execution status after waiting (results when succeeded)."New value: +"Full tool-execution status snapshot."
      • changedOutput schema / properties / progressPercentage / description
        Previous value: -"Completion progress 0-100 (present after polling)."New value: +"Completion progress 0-100."
      • changedOutput schema / properties / results / description
        Previous value: -"Generated results with download URLs when succeeded."New value: +"Generated results; empty until succeeded."
      • changedOutput schema / required
        Previous value: -[
        -  "toolExecutionId"
        -]New value: +[
        +  "toolExecutionId",
        +  "status",
        +  "toolType",
        +  "progressPercentage",
        +  "attemptIndex",
        +  "results",
        +  "error"
        +]
    • Changedget_workflow_run1 field changed
      • changedInput schema / properties / workflowRunId / description
        Previous value: -"Workflow run id (vg_work_...)."New value: +"Run to inspect or cancel. Use workflowRunId from a workflow start result or list_workflow_runs."
    • Changedimage_3d_effect1 field changed
      • changedInput schema / properties / imageFileId / description
        Previous value: -"Source image file id."New value: +"Image to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result."
    • Changedlist_project_remix_actions1 field changed
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id."New value: +"Editable project to inspect. Use projectId from a workflow result or list_projects."
    • Changedlist_tts_voices1 field changed
      • changedInput schema / properties / includeDeprecatedVoices / description
        Previous value: -"Include deprecated voices in the results."New value: +"Whether to include older voices that remain callable. Omit to exclude deprecated voices."
    • Changedopen_uploader1 field changed
      • changedOutput schema / properties / status / description
        Previous value: -"Widget status (ready when the uploader UI can open)."New value: +"Uploader launch status: ready. This is not an upload completion result; the widget reports the file id after the user uploads."
    • Changedprompt_to_video_clip2 fields changed
      • addedInput schema / properties / durationSeconds / description
        Added value: +"Requested clip playback duration in seconds."
      • changedInput schema / properties / imageFileIds / description
        Previous value: -"Optional reference image file ids."New value: +"Reference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files."
    • Changedremix_project2 fields changed
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id to edit."New value: +"Editable project to remix. Use projectId from a workflow result, list_projects, or get_project."
      • changedInput schema / properties / saveAsNewProject / description
        Previous value: -"Apply edits to a copy of the project."New value: +"When true, duplicate the project and apply edits to the copy. When omitted, edit the original project in place."
    • Changedremove_entity_reference1 field changed
      • changedInput schema / properties / entityId / description
        Previous value: -"Entity id (vg_enti_...)."New value: +"Saved reference entity to use. Obtain entityId from list_entities or create_entity."
    • Changedremove_image_background1 field changed
      • changedInput schema / properties / imageFileId / description
        Previous value: -"Source image file id."New value: +"Image to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result."
    • Changedremove_video_background1 field changed
      • changedInput schema / properties / videoFileId / description
        Previous value: -"Source video file id."New value: +"Video to transform. Use fileId from upload_file, list_files, or a succeeded video-generation result."
    • Changedscript_to_video1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Visual style for generated images. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as \"watercolor\", \"flat art\", or \"cinematic\".\nImage models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.\nCopy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.\nWatercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nRealistic: Photorealistic photograph, natural lighting\nWhiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\n3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters\nFlat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.\nPaper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nInk paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nAnime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds\nEditorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette\nIsometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nClaymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field\nEducation: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nChalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nBoho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nPoster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors"New value: +"Visual style for generated images: a full, strict paragraph describing medium, texture, palette, and composition. Copy a full app default from get_workflows_guidance, or describe a custom look. Omit for the Realistic default.\nImage models can add extra objects, text, charts, diagrams, tables, and labels. To keep the picture simple, include this composition lock verbatim:\nA clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen."
    • Changedstoryboard_to_video6 fields changed
      • changedInput schema / properties / quality / description
        Previous value: -"Image generation quality for scene opening frames. Optional; defaults to HIGH. Does not change video generation quality."New value: +"Image generation quality for scene opening frames. Omit to use HIGH. Does not change video generation quality."
      • changedInput schema / properties / scenes / items / properties / durationSeconds / description
        Previous value: -"Optional scene duration in whole seconds (1-15)."New value: +"Requested scene playback duration in seconds."
      • changedInput schema / properties / scenes / items / properties / prompt / description
        Previous value: -"Required visual description for this scene."New value: +"Visual description of what should appear in this scene."
      • changedInput schema / properties / scenes / items / properties / title / description
        Previous value: -"Optional scene title."New value: +"Scene label used to identify the shot."
      • changedInput schema / properties / scenes / items / properties / voiceoverScript / description
        Previous value: -"Optional words spoken during this scene."New value: +"Words spoken during this scene."
      • changedInput schema / properties / style / description
        Previous value: -"Visual style for generated images. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as \"watercolor\", \"flat art\", or \"cinematic\".\nImage models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.\nCopy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.\nWatercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nRealistic: Photorealistic photograph, natural lighting\nWhiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\n3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters\nFlat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.\nPaper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nInk paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nAnime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds\nEditorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette\nIsometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nClaymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field\nEducation: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nChalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nBoho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nPoster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors"New value: +"Visual style for generated images: a full, strict paragraph describing medium, texture, palette, and composition. Copy a full app default from get_workflows_guidance, or describe a custom look. Omit for the Realistic default.\nImage models can add extra objects, text, charts, diagrams, tables, and labels. To keep the picture simple, include this composition lock verbatim:\nA clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen."
    • Changedtext_to_speech3 fields changed
      • changedInput schema / properties / language / description
        Previous value: -"ISO-639-1 pronunciation language hint."New value: +"ISO-639-1 pronunciation language hint, such as en or es. Omit or pass null to leave pronunciation language selection automatic."
      • changedInput schema / properties / speed / description
        Previous value: -"Speech-rate multiplier."New value: +"Speech-rate multiplier relative to the voice's normal speed (1)."
      • changedInput schema / properties / text / description
        Previous value: -"Text to speak."New value: +"Words to synthesize as spoken audio."
    • Changedupdate_entity1 field changed
      • changedInput schema / properties / entityId / description
        Previous value: -"Entity id (vg_enti_...)."New value: +"Saved reference entity to use. Obtain entityId from list_entities or create_entity."
    • Changedupload_file2 fields changed
      • changedInput schema / properties / displayName / description
        Previous value: -"Display name for the file. Defaults to 'upload'."New value: +"Human-readable label used to identify the uploaded asset in the VideoGen library. Defaults to 'upload'."
      • changedInput schema / properties / type / description
        Previous value: -"File type. Inferred when omitted."New value: +"Media kind to associate with the upload. Inferred when omitted."
    • Changedupscale_image1 field changed
      • changedInput schema / properties / imageFileId / description
        Previous value: -"Source image file id."New value: +"Image to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result."
    • Changedupscale_video1 field changed
      • changedInput schema / properties / videoFileId / description
        Previous value: -"Source video file id."New value: +"Video to transform. Use fileId from upload_file, list_files, or a succeeded video-generation result."
    • Changedvectorize_image1 field changed
      • changedInput schema / properties / imageFileId / description
        Previous value: -"Source image file id."New value: +"Image to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result."
    • Changedvoiceover_to_video1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Visual style for generated images. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as \"watercolor\", \"flat art\", or \"cinematic\".\nImage models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.\nCopy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.\nWatercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nRealistic: Photorealistic photograph, natural lighting\nWhiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\n3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters\nFlat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.\nPaper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nInk paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nAnime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds\nEditorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette\nIsometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nClaymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field\nEducation: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nChalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nBoho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nPoster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors"New value: +"Visual style for generated images: a full, strict paragraph describing medium, texture, palette, and composition. Copy a full app default from get_workflows_guidance, or describe a custom look. Omit for the Realistic default.\nImage models can add extra objects, text, charts, diagrams, tables, and labels. To keep the picture simple, include this composition lock verbatim:\nA clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen."
  2. 6 tool updates
    • Changedadd_entity_reference7 fields changed
      • addedInput schema / properties / role
        Added value: +{
        +  "description": "What the file is used for. Defaults to REFERENCE. On a BRAND, BRAND_LOGO is its overlay logo and BRAND_STYLE_GUIDE is its visual generation reference.",
        +  "enum": [
        +    "REFERENCE",
        +    "BRAND_LOGO",
        +    "BRAND_STYLE_GUIDE"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / description
        Previous value: -"A reusable actor, product, visual style, or slideshow theme entity."New value: +"A reusable actor, product, visual style, slideshow theme, brand, location, or prop entity."
      • addedOutput schema / properties / brandConfig
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "colors": {
        +          "description": "Color guidance.",
        +          "type": "string"
        +        },
        +        "fonts": {
        +          "description": "Font guidance.",
        +          "type": "string"
        +        },
        +        "writingStyle": {
        +          "description": "Voice and tone for copy.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "fonts",
        +        "colors",
        +        "writingStyle"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Brand guidance for BRAND entities; null for other types."
        +}
      • changedOutput schema / properties / entityType / description
        Previous value: -"ACTOR, PRODUCT, VISUAL_STYLE, or SLIDESHOW_THEME."New value: +"ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP."
      • changedOutput schema / properties / entityType / enum
        Previous value: -[
        -  "ACTOR",
        -  "PRODUCT",
        -  "VISUAL_STYLE",
        -  "SLIDESHOW_THEME"
        -]New value: +[
        +  "ACTOR",
        +  "PRODUCT",
        +  "VISUAL_STYLE",
        +  "SLIDESHOW_THEME",
        +  "BRAND",
        +  "LOCATION",
        +  "PROP"
        +]
      • addedOutput schema / properties / references / items / properties / role
        Added value: +{
        +  "description": "REFERENCE for generation and thumbnails; BRAND_LOGO / BRAND_STYLE_GUIDE for a brand's logo and style guide.",
        +  "enum": [
        +    "REFERENCE",
        +    "BRAND_LOGO",
        +    "BRAND_STYLE_GUIDE"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / references / items / required
        Previous value: -[
        -  "fileId",
        -  "description",
        -  "isDefault"
        -]New value: +[
        +  "fileId",
        +  "description",
        +  "role",
        +  "isDefault"
        +]
    • Changedcreate_entity9 fields changed
      • addedInput schema / properties / brandConfig
        Added value: +{
        +  "description": "Configuration for a BRAND entity.",
        +  "properties": {
        +    "colors": {
        +      "description": "Color guidance, including hex codes when available.",
        +      "type": "string"
        +    },
        +    "fonts": {
        +      "description": "Font guidance for a BRAND entity.",
        +      "type": "string"
        +    },
        +    "writingStyle": {
        +      "description": "Voice and tone for spoken and on-screen copy.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "fonts",
        +    "colors",
        +    "writingStyle"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / entityType / description
        Previous value: -"ACTOR = consistent character; PRODUCT = product/object; VISUAL_STYLE = look/style for generated images; SLIDESHOW_THEME = shared slide design system for a slideshow deck."New value: +"ACTOR = consistent character; PRODUCT = a product the user sells or promotes; VISUAL_STYLE = look/style for generated images; SLIDESHOW_THEME = shared slide design system for a slideshow deck; BRAND = logo, style guide image, and writing style; LOCATION = consistent place or set; PROP = background object that is not a product. Anything the user sells is a PRODUCT, never a PROP."
      • changedInput schema / properties / entityType / enum
        Previous value: -[
        -  "ACTOR",
        -  "PRODUCT",
        -  "VISUAL_STYLE",
        -  "SLIDESHOW_THEME"
        -]New value: +[
        +  "ACTOR",
        +  "PRODUCT",
        +  "VISUAL_STYLE",
        +  "SLIDESHOW_THEME",
        +  "BRAND",
        +  "LOCATION",
        +  "PROP"
        +]
      • changedOutput schema / description
        Previous value: -"A reusable actor, product, visual style, or slideshow theme entity."New value: +"A reusable actor, product, visual style, slideshow theme, brand, location, or prop entity."
      • addedOutput schema / properties / brandConfig
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "colors": {
        +          "description": "Color guidance.",
        +          "type": "string"
        +        },
        +        "fonts": {
        +          "description": "Font guidance.",
        +          "type": "string"
        +        },
        +        "writingStyle": {
        +          "description": "Voice and tone for copy.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "fonts",
        +        "colors",
        +        "writingStyle"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Brand guidance for BRAND entities; null for other types."
        +}
      • changedOutput schema / properties / entityType / description
        Previous value: -"ACTOR, PRODUCT, VISUAL_STYLE, or SLIDESHOW_THEME."New value: +"ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP."
      • changedOutput schema / properties / entityType / enum
        Previous value: -[
        -  "ACTOR",
        -  "PRODUCT",
        -  "VISUAL_STYLE",
        -  "SLIDESHOW_THEME"
        -]New value: +[
        +  "ACTOR",
        +  "PRODUCT",
        +  "VISUAL_STYLE",
        +  "SLIDESHOW_THEME",
        +  "BRAND",
        +  "LOCATION",
        +  "PROP"
        +]
      • addedOutput schema / properties / references / items / properties / role
        Added value: +{
        +  "description": "REFERENCE for generation and thumbnails; BRAND_LOGO / BRAND_STYLE_GUIDE for a brand's logo and style guide.",
        +  "enum": [
        +    "REFERENCE",
        +    "BRAND_LOGO",
        +    "BRAND_STYLE_GUIDE"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / references / items / required
        Previous value: -[
        -  "fileId",
        -  "description",
        -  "isDefault"
        -]New value: +[
        +  "fileId",
        +  "description",
        +  "role",
        +  "isDefault"
        +]
    • Changedget_entity6 fields changed
      • changedOutput schema / description
        Previous value: -"A reusable actor, product, visual style, or slideshow theme entity."New value: +"A reusable actor, product, visual style, slideshow theme, brand, location, or prop entity."
      • addedOutput schema / properties / brandConfig
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "colors": {
        +          "description": "Color guidance.",
        +          "type": "string"
        +        },
        +        "fonts": {
        +          "description": "Font guidance.",
        +          "type": "string"
        +        },
        +        "writingStyle": {
        +          "description": "Voice and tone for copy.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "fonts",
        +        "colors",
        +        "writingStyle"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Brand guidance for BRAND entities; null for other types."
        +}
      • changedOutput schema / properties / entityType / description
        Previous value: -"ACTOR, PRODUCT, VISUAL_STYLE, or SLIDESHOW_THEME."New value: +"ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP."
      • changedOutput schema / properties / entityType / enum
        Previous value: -[
        -  "ACTOR",
        -  "PRODUCT",
        -  "VISUAL_STYLE",
        -  "SLIDESHOW_THEME"
        -]New value: +[
        +  "ACTOR",
        +  "PRODUCT",
        +  "VISUAL_STYLE",
        +  "SLIDESHOW_THEME",
        +  "BRAND",
        +  "LOCATION",
        +  "PROP"
        +]
      • addedOutput schema / properties / references / items / properties / role
        Added value: +{
        +  "description": "REFERENCE for generation and thumbnails; BRAND_LOGO / BRAND_STYLE_GUIDE for a brand's logo and style guide.",
        +  "enum": [
        +    "REFERENCE",
        +    "BRAND_LOGO",
        +    "BRAND_STYLE_GUIDE"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / references / items / required
        Previous value: -[
        -  "fileId",
        -  "description",
        -  "isDefault"
        -]New value: +[
        +  "fileId",
        +  "description",
        +  "role",
        +  "isDefault"
        +]
    • Changedlist_entities7 fields changed
      • changedInput schema / properties / entityType / enum
        Previous value: -[
        -  "ACTOR",
        -  "PRODUCT",
        -  "VISUAL_STYLE",
        -  "SLIDESHOW_THEME"
        -]New value: +[
        +  "ACTOR",
        +  "PRODUCT",
        +  "VISUAL_STYLE",
        +  "SLIDESHOW_THEME",
        +  "BRAND",
        +  "LOCATION",
        +  "PROP"
        +]
      • changedOutput schema / properties / entities / items / description
        Previous value: -"A reusable actor, product, visual style, or slideshow theme entity."New value: +"A reusable actor, product, visual style, slideshow theme, brand, location, or prop entity."
      • addedOutput schema / properties / entities / items / properties / brandConfig
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "colors": {
        +          "description": "Color guidance.",
        +          "type": "string"
        +        },
        +        "fonts": {
        +          "description": "Font guidance.",
        +          "type": "string"
        +        },
        +        "writingStyle": {
        +          "description": "Voice and tone for copy.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "fonts",
        +        "colors",
        +        "writingStyle"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Brand guidance for BRAND entities; null for other types."
        +}
      • changedOutput schema / properties / entities / items / properties / entityType / description
        Previous value: -"ACTOR, PRODUCT, VISUAL_STYLE, or SLIDESHOW_THEME."New value: +"ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP."
      • changedOutput schema / properties / entities / items / properties / entityType / enum
        Previous value: -[
        -  "ACTOR",
        -  "PRODUCT",
        -  "VISUAL_STYLE",
        -  "SLIDESHOW_THEME"
        -]New value: +[
        +  "ACTOR",
        +  "PRODUCT",
        +  "VISUAL_STYLE",
        +  "SLIDESHOW_THEME",
        +  "BRAND",
        +  "LOCATION",
        +  "PROP"
        +]
      • addedOutput schema / properties / entities / items / properties / references / items / properties / role
        Added value: +{
        +  "description": "REFERENCE for generation and thumbnails; BRAND_LOGO / BRAND_STYLE_GUIDE for a brand's logo and style guide.",
        +  "enum": [
        +    "REFERENCE",
        +    "BRAND_LOGO",
        +    "BRAND_STYLE_GUIDE"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / entities / items / properties / references / items / required
        Previous value: -[
        -  "fileId",
        -  "description",
        -  "isDefault"
        -]New value: +[
        +  "fileId",
        +  "description",
        +  "role",
        +  "isDefault"
        +]
    • Changedremove_entity_reference6 fields changed
      • changedOutput schema / description
        Previous value: -"A reusable actor, product, visual style, or slideshow theme entity."New value: +"A reusable actor, product, visual style, slideshow theme, brand, location, or prop entity."
      • addedOutput schema / properties / brandConfig
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "colors": {
        +          "description": "Color guidance.",
        +          "type": "string"
        +        },
        +        "fonts": {
        +          "description": "Font guidance.",
        +          "type": "string"
        +        },
        +        "writingStyle": {
        +          "description": "Voice and tone for copy.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "fonts",
        +        "colors",
        +        "writingStyle"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Brand guidance for BRAND entities; null for other types."
        +}
      • changedOutput schema / properties / entityType / description
        Previous value: -"ACTOR, PRODUCT, VISUAL_STYLE, or SLIDESHOW_THEME."New value: +"ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP."
      • changedOutput schema / properties / entityType / enum
        Previous value: -[
        -  "ACTOR",
        -  "PRODUCT",
        -  "VISUAL_STYLE",
        -  "SLIDESHOW_THEME"
        -]New value: +[
        +  "ACTOR",
        +  "PRODUCT",
        +  "VISUAL_STYLE",
        +  "SLIDESHOW_THEME",
        +  "BRAND",
        +  "LOCATION",
        +  "PROP"
        +]
      • addedOutput schema / properties / references / items / properties / role
        Added value: +{
        +  "description": "REFERENCE for generation and thumbnails; BRAND_LOGO / BRAND_STYLE_GUIDE for a brand's logo and style guide.",
        +  "enum": [
        +    "REFERENCE",
        +    "BRAND_LOGO",
        +    "BRAND_STYLE_GUIDE"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / references / items / required
        Previous value: -[
        -  "fileId",
        -  "description",
        -  "isDefault"
        -]New value: +[
        +  "fileId",
        +  "description",
        +  "role",
        +  "isDefault"
        +]
    • Changedupdate_entity7 fields changed
      • addedInput schema / properties / brandConfig
        Added value: +{
        +  "description": "Complete replacement configuration for a BRAND entity.",
        +  "properties": {
        +    "colors": {
        +      "description": "Color guidance, including hex codes when available.",
        +      "type": "string"
        +    },
        +    "fonts": {
        +      "description": "Font guidance for a BRAND entity.",
        +      "type": "string"
        +    },
        +    "writingStyle": {
        +      "description": "Voice and tone for spoken and on-screen copy.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "fonts",
        +    "colors",
        +    "writingStyle"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / description
        Previous value: -"A reusable actor, product, visual style, or slideshow theme entity."New value: +"A reusable actor, product, visual style, slideshow theme, brand, location, or prop entity."
      • addedOutput schema / properties / brandConfig
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "colors": {
        +          "description": "Color guidance.",
        +          "type": "string"
        +        },
        +        "fonts": {
        +          "description": "Font guidance.",
        +          "type": "string"
        +        },
        +        "writingStyle": {
        +          "description": "Voice and tone for copy.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "fonts",
        +        "colors",
        +        "writingStyle"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Brand guidance for BRAND entities; null for other types."
        +}
      • changedOutput schema / properties / entityType / description
        Previous value: -"ACTOR, PRODUCT, VISUAL_STYLE, or SLIDESHOW_THEME."New value: +"ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP."
      • changedOutput schema / properties / entityType / enum
        Previous value: -[
        -  "ACTOR",
        -  "PRODUCT",
        -  "VISUAL_STYLE",
        -  "SLIDESHOW_THEME"
        -]New value: +[
        +  "ACTOR",
        +  "PRODUCT",
        +  "VISUAL_STYLE",
        +  "SLIDESHOW_THEME",
        +  "BRAND",
        +  "LOCATION",
        +  "PROP"
        +]
      • addedOutput schema / properties / references / items / properties / role
        Added value: +{
        +  "description": "REFERENCE for generation and thumbnails; BRAND_LOGO / BRAND_STYLE_GUIDE for a brand's logo and style guide.",
        +  "enum": [
        +    "REFERENCE",
        +    "BRAND_LOGO",
        +    "BRAND_STYLE_GUIDE"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / references / items / required
        Previous value: -[
        -  "fileId",
        -  "description",
        -  "isDefault"
        -]New value: +[
        +  "fileId",
        +  "description",
        +  "role",
        +  "isDefault"
        +]
  3. 1 tool update
    • Changedstoryboard_to_video6 fields changed
      • addedInput schema / properties / actorEntityIds
        Added value: +{
        +  "description": "ACTOR entity ids (vg_enti_...) to keep attached to the project. Also set actorEntityIds on each scene that should show that actor.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / productEntityIds
        Added value: +{
        +  "description": "PRODUCT entity ids (vg_enti_...) to keep attached to the project. Also set productEntityIds on each scene that should show that product.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / scenes / description
        Previous value: -"Ordered scenes. Every scene requires a visual `prompt`."New value: +"Ordered scenes. Every scene requires a visual prompt. Put productEntityIds, actorEntityIds, or visualStyleEntityId on each scene that should use that entity's reference images."
      • addedInput schema / properties / scenes / items / properties / actorEntityIds
        Added value: +{
        +  "description": "Ids of ACTOR entities (vg_enti_...) to feature in this scene. Each entity's reference images are used so the same characters appear. Create the entity and add_entity_reference first.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / scenes / items / properties / productEntityIds
        Added value: +{
        +  "description": "Ids of PRODUCT entities (vg_enti_...) whose reference images should appear in this scene. Create the entity and add_entity_reference first.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / scenes / items / properties / visualStyleEntityId
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Id of a VISUAL_STYLE entity (vg_enti_...) whose reference images guide this scene's look."
        +}
  4. 50 tool updates
    • First observedadd_entity_reference
    • First observedarchive_entity
    • First observedcancel_tool_execution
    • First observedcancel_workflow_run
    • First observedcreate_entity
    • First observedcreate_file_upload
    • First observedexport_project
    • First observedgenerate_avatar
    • First observedgenerate_image
    • First observedgenerate_motion_graphic
    • First observedgenerate_music
    • First observedgenerate_sound_effect
    • First observedgenerate_video_clip
    • First observedget_app_deep_link
    • First observedget_async_tasks_guidance
    • First observedget_entity
    • First observedget_file
    • First observedget_getting_started_guidance
    • First observedget_me
    • First observedget_project
    • First observedget_project_export
    • First observedget_tool_execution
    • First observedget_tools_vs_workflows_guidance
    • First observedget_workflow_run
    • First observedget_workflows_guidance
    • First observedimage_3d_effect
    • First observedlist_entities
    • First observedlist_files
    • First observedlist_languages
    • First observedlist_project_remix_actions
    • First observedlist_projects
    • First observedlist_tool_executions
    • First observedlist_tts_voices
    • First observedlist_workflow_runs
    • First observedopen_uploader
    • First observedprompt_to_video_clip
    • First observedremix_project
    • First observedremove_entity_reference
    • First observedremove_image_background
    • First observedremove_video_background
    • First observedscript_to_video
    • First observedslideshow_to_video
    • First observedstoryboard_to_video
    • First observedtext_to_speech
    • First observedupdate_entity
    • First observedupload_file
    • First observedupscale_image
    • First observedupscale_video
    • First observedvectorize_image
    • First observedvoiceover_to_video

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.