Create and edit videos from scripts, storyboards, voiceovers, and slides. Generate images, video clips, speech, music, and sound effects; manage reference assets and export finished MP4 videos.
Create and edit videos from scripts, storyboards, voiceovers, and slides. Generate images, video clips, speech, music, and sound effects; manage reference assets and export finished MP4 videos.
Before setup or capability answers, call get_getting_started_guidance. Before generation, call get_workflows_guidance or get_tools_vs_workflows_guidance; before polling, call get_async_tasks_guidance. These mirror guidance:// resources and contain workflow choices, examples, style prompts, entity references, and complete operating guidance.
VideoGen creates editable videos and standalone media. Prefer workflows for full videos and media tools for single assets. If no workflow was named, ask with brief pros/cons. Prefer script_to_video for longer narrated videos; keep storyboards to 3 scenes unless explicitly asked for more. Use full style prompts from get_workflows_guidance.
Generation spends team credits and takes time. Set honest expectations: images 15–60 seconds, clips 1–3 minutes, motion graphics 2–5 minutes, full workflows several minutes. Hosted calls may return running snapshots after 90 seconds; continue with get_workflow_run, get_tool_execution, or get_project_export. Never restart a healthy run to poll it.
Each workflow start creates a new project. Keep workflowRunId, projectId, and projectUrl together; after a retry use only the new run's ids and URL. Share downloadUrl after success. For entity references, attach uploaded files with add_entity_reference and pass entity ids on the appropriate workflow and scene fields.
MCP uses AUTO account-default branding. Never invent watermarkMode or endScreenMode inputs.
For credits or plan gates, use get_app_deep_link with OPEN_UPGRADE, OPEN_PURCHASE_CREDITS, or OPEN_ENABLE_TOP_UPS. Removing Free-plan branding requires VideoGen Pro (OPEN_UPGRADE).
Protocol
Pass100/10016 / 16 pts
Connection, authentication, and protocol compatibility.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
{
"name": "get_getting_started_guidance",
"title": "Getting started guidance",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"markdown"
],
"properties": {
"markdown": {
"type": "string",
"description": "Full guidance document in markdown."
}
},
"description": "Operational guidance document for agents.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
{
"name": "get_workflows_guidance",
"title": "Workflows guidance",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"markdown"
],
"properties": {
"markdown": {
"type": "string",
"description": "Full guidance document in markdown."
}
},
"description": "Operational guidance document for agents.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description85/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs90/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
script
Narration script, spoken verbatim.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
style
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.
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.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
aspectRatio › width
Aspect-ratio width unit (e.g. 16 for 16:9).
Clear enough to supply this argument.
aspectRatio › height
Aspect-ratio height unit (e.g. 9 for 16:9).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
quality
Generation quality. Omit to use workspace settings.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
language
Output language as a BCP-47 code, such as en, es, or fr.
Clear enough to supply this argument.
voiceId
Catalog display name (e.g. Matilda) or voice id from list_tts_voices.
Clear enough to supply this argument.
actorEntityId
Id of an ACTOR entity (vg_enti_...) with an image reference. When set, narration is delivered by that actor avatar.
Clear enough to supply this argument.
avatarQuality
Avatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings.
Clear enough to supply this argument.
autoExport
When 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"workflowRunId",
"projectId",
"projectUrl"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"required": [
"message"
],
"properties": {
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Machine-readable error code."
},
"message": {
"type": "string",
"description": "Human-readable error description."
},
"requirement": {
"anyOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Requirement type (e.g. purchase_add_on)."
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "What is needed to resolve the error, when applicable."
},
"internalErrorCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque code for support."
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Error details when status is failed; otherwise null."
},
"status": {
"enum": [
"pending",
"running",
"succeeded",
"failed",
"cancelled"
],
"type": "string",
"description": "Job status: pending, running, succeeded, failed, or cancelled."
},
"exportId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Export id when autoExport succeeded (vg_expo_...)."
},
"projectId": {
"type": "string",
"description": "Project created for this exact workflow attempt (vg_proj_...). A retry creates a different project."
},
"projectUrl": {
"type": "string",
"description": "Deep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL."
},
"downloadUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Signed MP4 download URL when autoExport succeeded. Give this to the user."
},
"attemptIndex": {
"type": "number",
"description": "Current or latest attempt index."
},
"exportFileId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "File id of the rendered MP4 when autoExport succeeded."
},
"workflowType": {
"type": "string",
"description": "Workflow type (present after polling)."
},
"workflowRunId": {
"type": "string",
"description": "Workflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple."
},
"remixActionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remix action ids from the start response (empty when none requested)."
},
"progressPercentage": {
"type": "number",
"description": "Completion progress 0-100 (present after polling)."
},
"downloadUrlExpiresAt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Unix expiry for downloadUrl."
}
},
"description": "Workflow start metadata, or full run status after waiting. When autoExport is on (the default), succeeded includes downloadUrl.",
"additionalProperties": {}
}
Original tool metadata
{
"name": "script_to_video",
"title": "Script to video",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"script"
],
"properties": {
"style": {
"type": "string",
"minLength": 1,
"description": "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."
},
"script": {
"type": "string",
"minLength": 1,
"description": "Narration script, spoken verbatim."
},
"quality": {
"enum": [
"LOW",
"STANDARD",
"HIGH",
"MAX"
],
"type": "string",
"description": "Generation quality. Omit to use workspace settings."
},
"voiceId": {
"type": "string",
"description": "Catalog display name (e.g. Matilda) or voice id from list_tts_voices."
},
"language": {
"type": "string",
"description": "Output language as a BCP-47 code, such as en, es, or fr."
},
"autoExport": {
"type": "boolean",
"description": "When 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."
},
"aspectRatio": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "number",
"description": "Aspect-ratio width unit (e.g. 16 for 16:9).",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"description": "Aspect-ratio height unit (e.g. 9 for 16:9).",
"exclusiveMinimum": 0
}
},
"description": "Output aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }."
},
"actorEntityId": {
"type": "string",
"description": "Id of an ACTOR entity (vg_enti_...) with an image reference. When set, narration is delivered by that actor avatar."
},
"avatarQuality": {
"enum": [
"LOW",
"STANDARD",
"HIGH",
"MAX"
],
"type": "string",
"description": "Avatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"workflowRunId",
"projectId",
"projectUrl"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"required": [
"message"
],
"properties": {
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Machine-readable error code."
},
"message": {
"type": "string",
"description": "Human-readable error description."
},
"requirement": {
"anyOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Requirement type (e.g. purchase_add_on)."
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "What is needed to resolve the error, when applicable."
},
"internalErrorCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque code for support."
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Error details when status is failed; otherwise null."
},
"status": {
"enum": [
"pending",
"running",
"succeeded",
"failed",
"cancelled"
],
"type": "string",
"description": "Job status: pending, running, succeeded, failed, or cancelled."
},
"exportId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Export id when autoExport succeeded (vg_expo_...)."
},
"projectId": {
"type": "string",
"description": "Project created for this exact workflow attempt (vg_proj_...). A retry creates a different project."
},
"projectUrl": {
"type": "string",
"description": "Deep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL."
},
"downloadUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Signed MP4 download URL when autoExport succeeded. Give this to the user."
},
"attemptIndex": {
"type": "number",
"description": "Current or latest attempt index."
},
"exportFileId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "File id of the rendered MP4 when autoExport succeeded."
},
"workflowType": {
"type": "string",
"description": "Workflow type (present after polling)."
},
"workflowRunId": {
"type": "string",
"description": "Workflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple."
},
"remixActionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remix action ids from the start response (empty when none requested)."
},
"progressPercentage": {
"type": "number",
"description": "Completion progress 0-100 (present after polling)."
},
"downloadUrlExpiresAt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Unix expiry for downloadUrl."
}
},
"description": "Workflow start metadata, or full run status after waiting. When autoExport is on (the default), succeeded includes downloadUrl.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description72/100
Build an editable video with AI-generated visuals from an uploaded voiceover audio file.
The description explains the capability, when to use it, and what to expect.
Inputs82/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
fileId
Uploaded voiceover audio file id.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
style
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.
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.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
aspectRatio › width
Aspect-ratio width unit (e.g. 16 for 16:9).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
aspectRatio › height
Aspect-ratio height unit (e.g. 9 for 16:9).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
quality
Generation quality. Omit to use workspace settings.
Clear enough to supply this argument.
language
Output language as a BCP-47 code, such as en, es, or fr.
Clear enough to supply this argument.
autoExport
When 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.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs93/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
fileId
Uploaded PDF or slideshow file id.
Clear enough to supply this argument.
slideScripts
Optional narration for each slide, in order.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
aspectRatio › width
Aspect-ratio width unit (e.g. 16 for 16:9).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
aspectRatio › height
Aspect-ratio height unit (e.g. 9 for 16:9).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
language
Output language as a BCP-47 code, such as en, es, or fr.
Clear enough to supply this argument.
voiceId
Catalog display name (e.g. Matilda) or voice id from list_tts_voices.
Clear enough to supply this argument.
actorEntityId
Id of an ACTOR entity (vg_enti_...) with an image reference. When set, narration is delivered by that actor avatar.
Clear enough to supply this argument.
avatarQuality
Avatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings.
Clear enough to supply this argument.
slideshowThemeEntityId
Optional 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.
Clear enough to supply this argument.
autoExport
When 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"workflowRunId",
"projectId",
"projectUrl"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"required": [
"message"
],
"properties": {
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Machine-readable error code."
},
"message": {
"type": "string",
"description": "Human-readable error description."
},
"requirement": {
"anyOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Requirement type (e.g. purchase_add_on)."
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "What is needed to resolve the error, when applicable."
},
"internalErrorCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque code for support."
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Error details when status is failed; otherwise null."
},
"status": {
"enum": [
"pending",
"running",
"succeeded",
"failed",
"cancelled"
],
"type": "string",
"description": "Job status: pending, running, succeeded, failed, or cancelled."
},
"exportId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Export id when autoExport succeeded (vg_expo_...)."
},
"projectId": {
"type": "string",
"description": "Project created for this exact workflow attempt (vg_proj_...). A retry creates a different project."
},
"projectUrl": {
"type": "string",
"description": "Deep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL."
},
"downloadUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Signed MP4 download URL when autoExport succeeded. Give this to the user."
},
"attemptIndex": {
"type": "number",
"description": "Current or latest attempt index."
},
"exportFileId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "File id of the rendered MP4 when autoExport succeeded."
},
"workflowType": {
"type": "string",
"description": "Workflow type (present after polling)."
},
"workflowRunId": {
"type": "string",
"description": "Workflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple."
},
"remixActionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remix action ids from the start response (empty when none requested)."
},
"progressPercentage": {
"type": "number",
"description": "Completion progress 0-100 (present after polling)."
},
"downloadUrlExpiresAt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Unix expiry for downloadUrl."
}
},
"description": "Workflow start metadata, or full run status after waiting. When autoExport is on (the default), succeeded includes downloadUrl.",
"additionalProperties": {}
}
Original tool metadata
{
"name": "slideshow_to_video",
"title": "Slideshow to video",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileId"
],
"properties": {
"fileId": {
"type": "string",
"description": "Uploaded PDF or slideshow file id."
},
"voiceId": {
"type": "string",
"description": "Catalog display name (e.g. Matilda) or voice id from list_tts_voices."
},
"language": {
"type": "string",
"description": "Output language as a BCP-47 code, such as en, es, or fr."
},
"autoExport": {
"type": "boolean",
"description": "When 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."
},
"aspectRatio": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "number",
"description": "Aspect-ratio width unit (e.g. 16 for 16:9).",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"description": "Aspect-ratio height unit (e.g. 9 for 16:9).",
"exclusiveMinimum": 0
}
},
"description": "Output aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }."
},
"slideScripts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional narration for each slide, in order."
},
"actorEntityId": {
"type": "string",
"description": "Id of an ACTOR entity (vg_enti_...) with an image reference. When set, narration is delivered by that actor avatar."
},
"avatarQuality": {
"enum": [
"LOW",
"STANDARD",
"HIGH",
"MAX"
],
"type": "string",
"description": "Avatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings."
},
"slideshowThemeEntityId": {
"type": "string",
"description": "Optional 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."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"workflowRunId",
"projectId",
"projectUrl"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"required": [
"message"
],
"properties": {
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Machine-readable error code."
},
"message": {
"type": "string",
"description": "Human-readable error description."
},
"requirement": {
"anyOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Requirement type (e.g. purchase_add_on)."
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "What is needed to resolve the error, when applicable."
},
"internalErrorCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque code for support."
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Error details when status is failed; otherwise null."
},
"status": {
"enum": [
"pending",
"running",
"succeeded",
"failed",
"cancelled"
],
"type": "string",
"description": "Job status: pending, running, succeeded, failed, or cancelled."
},
"exportId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Export id when autoExport succeeded (vg_expo_...)."
},
"projectId": {
"type": "string",
"description": "Project created for this exact workflow attempt (vg_proj_...). A retry creates a different project."
},
"projectUrl": {
"type": "string",
"description": "Deep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL."
},
"downloadUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Signed MP4 download URL when autoExport succeeded. Give this to the user."
},
"attemptIndex": {
"type": "number",
"description": "Current or latest attempt index."
},
"exportFileId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "File id of the rendered MP4 when autoExport succeeded."
},
"workflowType": {
"type": "string",
"description": "Workflow type (present after polling)."
},
"workflowRunId": {
"type": "string",
"description": "Workflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple."
},
"remixActionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remix action ids from the start response (empty when none requested)."
},
"progressPercentage": {
"type": "number",
"description": "Completion progress 0-100 (present after polling)."
},
"downloadUrlExpiresAt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Unix expiry for downloadUrl."
}
},
"description": "Workflow start metadata, or full run status after waiting. When autoExport is on (the default), succeeded includes downloadUrl.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs96/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenes › items › prompt
Visual description of what should appear in this scene.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenes › items › voiceoverScript
Words spoken during this scene.
Clear enough to supply this argument.
scenes › items › title
Scene label used to identify the shot.
Clear enough to supply this argument.
scenes › items › durationSeconds
Requested scene playback duration in seconds.
Explain what happens when this optional value is omitted.
scenes › items › actorEntityIds
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.
Clear enough to supply this argument.
scenes › items › productEntityIds
Ids of PRODUCT entities (vg_enti_...) whose reference images should appear in this scene. Create the entity and add_entity_reference first.
Clear enough to supply this argument.
scenes › items › visualStyleEntityId
Id of a VISUAL_STYLE entity (vg_enti_...) whose reference images guide this scene's look.
Clear enough to supply this argument.
actorEntityIds
ACTOR entity ids (vg_enti_...) to keep attached to the project. Also set actorEntityIds on each scene that should show that actor.
Clear enough to supply this argument.
productEntityIds
PRODUCT entity ids (vg_enti_...) to keep attached to the project. Also set productEntityIds on each scene that should show that product.
Clear enough to supply this argument.
style
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.
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.
Clear enough to supply this argument.
aspectRatio › width
Aspect-ratio width unit (e.g. 16 for 16:9).
Clear enough to supply this argument.
aspectRatio › height
Aspect-ratio height unit (e.g. 9 for 16:9).
Clear enough to supply this argument.
quality
Image generation quality for scene opening frames. Omit to use HIGH. Does not change video generation quality.
Clear enough to supply this argument.
autoExport
When 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"workflowRunId",
"projectId",
"projectUrl"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"required": [
"message"
],
"properties": {
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Machine-readable error code."
},
"message": {
"type": "string",
"description": "Human-readable error description."
},
"requirement": {
"anyOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Requirement type (e.g. purchase_add_on)."
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "What is needed to resolve the error, when applicable."
},
"internalErrorCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque code for support."
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Error details when status is failed; otherwise null."
},
"status": {
"enum": [
"pending",
"running",
"succeeded",
"failed",
"cancelled"
],
"type": "string",
"description": "Job status: pending, running, succeeded, failed, or cancelled."
},
"exportId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Export id when autoExport succeeded (vg_expo_...)."
},
"projectId": {
"type": "string",
"description": "Project created for this exact workflow attempt (vg_proj_...). A retry creates a different project."
},
"projectUrl": {
"type": "string",
"description": "Deep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL."
},
"downloadUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Signed MP4 download URL when autoExport succeeded. Give this to the user."
},
"attemptIndex": {
"type": "number",
"description": "Current or latest attempt index."
},
"exportFileId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "File id of the rendered MP4 when autoExport succeeded."
},
"workflowType": {
"type": "string",
"description": "Workflow type (present after polling)."
},
"workflowRunId": {
"type": "string",
"description": "Workflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple."
},
"remixActionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remix action ids from the start response (empty when none requested)."
},
"progressPercentage": {
"type": "number",
"description": "Completion progress 0-100 (present after polling)."
},
"downloadUrlExpiresAt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Unix expiry for downloadUrl."
}
},
"description": "Workflow start metadata, or full run status after waiting. When autoExport is on (the default), succeeded includes downloadUrl.",
"additionalProperties": {}
}
Original tool metadata
{
"name": "storyboard_to_video",
"title": "Storyboard to video",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scenes"
],
"properties": {
"style": {
"type": "string",
"minLength": 1,
"description": "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."
},
"scenes": {
"type": "array",
"items": {
"type": "object",
"required": [
"prompt"
],
"properties": {
"title": {
"type": "string",
"description": "Scene label used to identify the shot."
},
"prompt": {
"type": "string",
"minLength": 1,
"description": "Visual description of what should appear in this scene."
},
"actorEntityIds": {
"type": "array",
"items": {
"type": "string"
},
"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."
},
"durationSeconds": {
"anyOf": [
{
"type": "integer",
"maximum": 15,
"minimum": 1
},
{
"type": "null"
}
],
"description": "Requested scene playback duration in seconds."
},
"voiceoverScript": {
"type": "string",
"description": "Words spoken during this scene."
},
"productEntityIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ids of PRODUCT entities (vg_enti_...) whose reference images should appear in this scene. Create the entity and add_entity_reference first."
},
"visualStyleEntityId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of a VISUAL_STYLE entity (vg_enti_...) whose reference images guide this scene's look."
}
}
},
"minItems": 1,
"description": "Ordered scenes. Every scene requires a visual prompt. Put productEntityIds, actorEntityIds, or visualStyleEntityId on each scene that should use that entity's reference images."
},
"quality": {
"enum": [
"HIGH",
"MAX"
],
"type": "string",
"description": "Image generation quality for scene opening frames. Omit to use HIGH. Does not change video generation quality."
},
"autoExport": {
"type": "boolean",
"description": "When 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."
},
"aspectRatio": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "number",
"description": "Aspect-ratio width unit (e.g. 16 for 16:9).",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"description": "Aspect-ratio height unit (e.g. 9 for 16:9).",
"exclusiveMinimum": 0
}
},
"description": "Output aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }."
},
"actorEntityIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "ACTOR entity ids (vg_enti_...) to keep attached to the project. Also set actorEntityIds on each scene that should show that actor."
},
"productEntityIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "PRODUCT entity ids (vg_enti_...) to keep attached to the project. Also set productEntityIds on each scene that should show that product."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"workflowRunId",
"projectId",
"projectUrl"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"required": [
"message"
],
"properties": {
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Machine-readable error code."
},
"message": {
"type": "string",
"description": "Human-readable error description."
},
"requirement": {
"anyOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Requirement type (e.g. purchase_add_on)."
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "What is needed to resolve the error, when applicable."
},
"internalErrorCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque code for support."
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Error details when status is failed; otherwise null."
},
"status": {
"enum": [
"pending",
"running",
"succeeded",
"failed",
"cancelled"
],
"type": "string",
"description": "Job status: pending, running, succeeded, failed, or cancelled."
},
"exportId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Export id when autoExport succeeded (vg_expo_...)."
},
"projectId": {
"type": "string",
"description": "Project created for this exact workflow attempt (vg_proj_...). A retry creates a different project."
},
"projectUrl": {
"type": "string",
"description": "Deep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL."
},
"downloadUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Signed MP4 download URL when autoExport succeeded. Give this to the user."
},
"attemptIndex": {
"type": "number",
"description": "Current or latest attempt index."
},
"exportFileId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "File id of the rendered MP4 when autoExport succeeded."
},
"workflowType": {
"type": "string",
"description": "Workflow type (present after polling)."
},
"workflowRunId": {
"type": "string",
"description": "Workflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple."
},
"remixActionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remix action ids from the start response (empty when none requested)."
},
"progressPercentage": {
"type": "number",
"description": "Completion progress 0-100 (present after polling)."
},
"downloadUrlExpiresAt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Unix expiry for downloadUrl."
}
},
"description": "Workflow start metadata, or full run status after waiting. When autoExport is on (the default), succeeded includes downloadUrl.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs93/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
prompt
Description of the short video clip.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
imageFileIds
Reference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files.
Clear enough to supply this argument.
durationSeconds
Requested clip playback duration in seconds.
Explain what happens when this optional value is omitted.
aspectRatio › width
Aspect-ratio width unit (e.g. 16 for 16:9).
Clear enough to supply this argument.
aspectRatio › height
Aspect-ratio height unit (e.g. 9 for 16:9).
Clear enough to supply this argument.
quality
Video generation quality. Omit to use workspace settings.
Clear enough to supply this argument.
autoExport
When 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.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs85/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Pagination cursor from a previous response's `nextCursor`.
Clear enough to supply this argument.
limit
Maximum number of items to return.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
selfOnly
When true, restrict results to items created by the API key owner rather than the whole team.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
workflowRunId
Run to inspect or cancel. Use workflowRunId from a workflow start result or list_workflow_runs.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
workflowRunId
Run to inspect or cancel. Use workflowRunId from a workflow start result or list_workflow_runs.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
prompt
Description of the image to generate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
imageFileIds
Reference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entityIds
Actor, product, or visual-style references for consistent identity and appearance. Use entityId values from list_entities or create_entity, with reference files attached.
Clear enough to supply this argument.
aspectRatio › width
Aspect-ratio width unit (e.g. 16 for 16:9).
Clear enough to supply this argument.
aspectRatio › height
Aspect-ratio height unit (e.g. 9 for 16:9).
Clear enough to supply this argument.
quality
Generation quality. Omit to use workspace settings.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
prompt
Description of the video to generate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
startFrameFileId
Optional opening-frame still file id. Used as the first frame of the clip.
Clear enough to supply this argument.
imageFileIds
Reference images to guide the generated appearance. Use fileId values from upload_file, get_file, or list_files.
Clear enough to supply this argument.
videoFileIds
Optional reference video file ids.
Explain the meaning of this value, not just its name.
audioFileIds
Optional reference audio file ids used to lip-sync from a recording. Use spokenDialogue to have the model speak a line it generates itself.
Clear enough to supply this argument.
spokenDialogue
Exact line the subject should speak as native lip-synced speech. The model synthesizes the voice from this text.
Clear enough to supply this argument.
voiceDescription
Natural-language description of the voice that speaks spokenDialogue. Used when spokenDialogue is set.
Clear enough to supply this argument.
generateAudio
Whether the result must include generated audio.
Clear enough to supply this argument.
suppressBackgroundMusic
When 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.
Clear enough to supply this argument.
durationSeconds
Requested clip playback duration in seconds. Omit or pass null for automatic timing.
Clear enough to supply this argument.
aspectRatio › width
Aspect-ratio width unit (e.g. 16 for 16:9).
Clear enough to supply this argument.
aspectRatio › height
Aspect-ratio height unit (e.g. 9 for 16:9).
Clear enough to supply this argument.
quality
Video generation quality. Omit to use workspace settings.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
text
Words to synthesize as spoken audio.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
voiceId
Catalog display name (e.g. Matilda) or voice id from list_tts_voices.
Clear enough to supply this argument.
language
ISO-639-1 pronunciation language hint, such as en or es. Omit or pass null to leave pronunciation language selection automatic.
Clear enough to supply this argument.
speed
Speech-rate multiplier relative to the voice's normal speed (1).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
prompt
Description of the sound effect.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
durationSeconds
Requested sound-effect playback duration in seconds.
Explain what happens when this optional value is omitted.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
prompt
Description of the animated motion graphic.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
fileIds
Media to display or animate in the motion graphic. Use fileId values from upload_file, get_file, or list_files.
Clear enough to supply this argument.
entityIds
Actor, product, or visual-style references. Use entityId values from list_entities or create_entity, with reference files attached.
Clear enough to supply this argument.
durationSeconds
Requested motion-graphic playback duration in seconds.
Explain what happens when this optional value is omitted.
aspectRatio › width
Aspect-ratio width unit (e.g. 16 for 16:9).
Clear enough to supply this argument.
aspectRatio › height
Aspect-ratio height unit (e.g. 9 for 16:9).
Clear enough to supply this argument.
transparentBackground
Render a transparent WebM for use as an overlay on other video or images. Defaults to true. Set to false for an opaque MP4.
Clear enough to supply this argument.
subToolModes › generateImages
Control image generation within the motion graphic: AUTO lets the plan decide, ENABLED requires use, and DISABLED prevents use.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
subToolModes › generateVideoClips
Control video-clip generation within the motion graphic: AUTO lets the plan decide, ENABLED requires use, and DISABLED prevents use.
Clear enough to supply this argument.
subToolModes › generateVoiceover
Control voiceover synthesis within the motion graphic: AUTO lets the plan decide, ENABLED requires use, and DISABLED prevents use.
Clear enough to supply this argument.
subToolModes › searchStockMedia
Control stock-media search within the motion graphic: AUTO lets the plan decide, ENABLED requires use, and DISABLED prevents use.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
actorEntityId
Id of a built-in stock actor or an ACTOR entity (vg_enti_...) with an image reference.
Clear enough to supply this argument.
avatarQuality
Avatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings.
Clear enough to supply this argument.
audioFileId
Speech recording for the actor to lip-sync. Use fileId from an audio upload, list_files, or a succeeded text_to_speech result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
Input documentation gives an agent enough context to populate the arguments.
imageFileId
Image to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
Input documentation gives an agent enough context to populate the arguments.
imageFileId
Image to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
Input documentation gives an agent enough context to populate the arguments.
videoFileId
Video to transform. Use fileId from upload_file, list_files, or a succeeded video-generation result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
Input documentation gives an agent enough context to populate the arguments.
imageFileId
Image to transform. Use fileId from upload_file, list_files, or a succeeded image-generation result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
Input documentation gives an agent enough context to populate the arguments.
videoFileId
Video to transform. Use fileId from upload_file, list_files, or a succeeded video-generation result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
toolExecutionId
Execution to inspect or cancel. Use toolExecutionId from a media-tool start result or list_tool_executions.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
toolExecutionId
Execution to inspect or cancel. Use toolExecutionId from a media-tool start result or list_tool_executions.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"toolExecutionId"
],
"properties": {
"toolExecutionId": {
"type": "string",
"description": "Execution for which cancellation was requested."
}
},
"description": "Cancellation acknowledgment. Use get_tool_execution for status and results.",
"additionalProperties": {}
}
Original tool metadata
{
"name": "cancel_tool_execution",
"title": "Cancel tool execution",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"toolExecutionId"
],
"properties": {
"toolExecutionId": {
"type": "string",
"description": "Execution to inspect or cancel. Use toolExecutionId from a media-tool start result or list_tool_executions."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"toolExecutionId"
],
"properties": {
"toolExecutionId": {
"type": "string",
"description": "Execution for which cancellation was requested."
}
},
"description": "Cancellation acknowledgment. Use get_tool_execution for status and results.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Pagination cursor from a previous response's `nextCursor`.
Clear enough to supply this argument.
limit
Maximum number of items to return.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
selfOnly
When true, restrict results to items created by the API key owner rather than the whole team.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Return a project's title, readiness status, editor projectUrl, timestamps, aspectRatio, and assistantId when available. Use the projectId for subsequent remix and export calls.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
projectId
Editable project to inspect. Use projectId from a workflow result or list_projects.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs97/100
Input documentation gives an agent enough context to populate the arguments.
projectId
Editable project to render. Use projectId from a workflow result, list_projects, or get_project.
Clear enough to supply this argument.
quality
MP4 resolution tier by shortest edge: STANDARD is 720p, HIGH and FULL_HIGH are 1080p, and ULTRA_HIGH is 2160p. Omit for FULL_HIGH.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
projectId
Project that owns the export. Use the same projectId passed to export_project, obtained from a workflow result or list_projects.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
projectId
Editable project to remix. Use projectId from a workflow result, list_projects, or get_project.
Clear enough to supply this argument.
edits
Curated 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.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
saveAsNewProject
When true, duplicate the project and apply edits to the copy. When omitted, edit the original project in place.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"projectUrl",
"remixActionIds"
],
"properties": {
"projectId": {
"type": "string",
"description": "Edited project id (or the duplicate when saveAsNewProject)."
},
"projectUrl": {
"type": "string",
"description": "Deep link to the project in the VideoGen editor."
},
"remixActionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remix action ids, one per requested action in order."
}
},
"description": "Accepted remix actions for a project.",
"additionalProperties": {}
}
Original tool metadata
{
"name": "remix_project",
"title": "Remix project",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"edits"
],
"properties": {
"edits": {
"type": "array",
"items": {
"enum": [
"CAPTIONS",
"TRANSITIONS",
"CONVERT_IMAGES_TO_VIDEOS",
"ZOOM"
],
"type": "string",
"description": "CAPTIONS enables captions. TRANSITIONS adds section and asset transitions. CONVERT_IMAGES_TO_VIDEOS generates AI video clips from every still (expensive; same as Add Motion). ZOOM is cheap Ken Burns camera motion on stills. Use ZOOM for zoom, pan, or light motion. Never use CONVERT_IMAGES_TO_VIDEOS when the user asked for zoom."
},
"minItems": 1,
"description": "Curated 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."
},
"projectId": {
"type": "string",
"description": "Editable project to remix. Use projectId from a workflow result, list_projects, or get_project."
},
"saveAsNewProject": {
"type": "boolean",
"description": "When true, duplicate the project and apply edits to the copy. When omitted, edit the original project in place."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"projectUrl",
"remixActionIds"
],
"properties": {
"projectId": {
"type": "string",
"description": "Edited project id (or the duplicate when saveAsNewProject)."
},
"projectUrl": {
"type": "string",
"description": "Deep link to the project in the VideoGen editor."
},
"remixActionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remix action ids, one per requested action in order."
}
},
"description": "Accepted remix actions for a project.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
projectId
Editable project to inspect. Use projectId from a workflow result or list_projects.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs90/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
fileData
Base64-encoded contents of the file to upload.
Clear enough to supply this argument.
displayName
Human-readable label used to identify the uploaded asset in the VideoGen library. Defaults to 'upload'.
Clear enough to supply this argument.
type
Media kind to associate with the upload. Inferred when omitted.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs95/100
Input documentation gives an agent enough context to populate the arguments.
displayName
Human-readable label used to identify the uploaded asset in the VideoGen library.
Clear enough to supply this argument.
type
Media or document kind to associate with the upload. Inferred after processing when omitted.
Clear enough to supply this argument.
isTemporary
When true, the file is temporary (guaranteed available for 24 hours, not analyzed for search). Defaults to false.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileId",
"uploadUrl"
],
"properties": {
"fileId": {
"type": "string",
"description": "File id to use after uploading bytes (vg_file_...)."
},
"uploadUrl": {
"type": "string",
"description": "Pre-signed URL: PUT raw file bytes here with no Authorization header."
}
},
"description": "Pre-signed upload instructions.",
"additionalProperties": {}
}
Original tool metadata
{
"name": "create_file_upload",
"title": "Create file upload",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"displayName"
],
"properties": {
"type": {
"enum": [
"IMAGE",
"VIDEO",
"AUDIO",
"PDF",
"SLIDESHOW"
],
"type": "string",
"description": "Media or document kind to associate with the upload. Inferred after processing when omitted."
},
"displayName": {
"type": "string",
"description": "Human-readable label used to identify the uploaded asset in the VideoGen library."
},
"isTemporary": {
"type": "boolean",
"description": "When true, the file is temporary (guaranteed available for 24 hours, not analyzed for search). Defaults to false."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileId",
"uploadUrl"
],
"properties": {
"fileId": {
"type": "string",
"description": "File id to use after uploading bytes (vg_file_...)."
},
"uploadUrl": {
"type": "string",
"description": "Pre-signed URL: PUT raw file bytes here with no Authorization header."
}
},
"description": "Pre-signed upload instructions.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs94/100
Explain what happens when this optional value is omitted.
fileId
Asset to fetch. Use fileId from upload_file, create_file_upload, list_files, or a generation result.
Clear enough to supply this argument.
wait
When true, poll until the file finishes processing and a rendition is ready. Defaults to false (a single fetch).
Clear enough to supply this argument.
pollIntervalMs
Time between readiness checks in milliseconds when wait is true. Omit to poll every 3000 milliseconds.
Clear enough to supply this argument.
timeoutMs
Maximum time to wait for processing before giving up, in milliseconds.
Explain what happens when this optional value is omitted.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description82/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entityType
When set, only return entities of this type.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Pagination cursor from a previous response's `nextCursor`.
Clear enough to supply this argument.
limit
Maximum number of items to return.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entityType
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.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
name
Display name for the entity.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
Describe the subject, product, setting, or visual identity this saved entity represents.
Clear enough to supply this argument.
brandConfig › fonts
Font guidance for a BRAND entity.
Clear enough to supply this argument.
brandConfig › colors
Color guidance, including hex codes when available.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Explain the meaning of this value, not just its name.
entityId
Saved reference entity to use. Obtain entityId from list_entities or create_entity.
Clear enough to supply this argument.
name
New display name. Omit to leave unchanged.
Clear enough to supply this argument.
description
New description. Omit to leave unchanged.
Explain the meaning of this value, not just its name.
brandConfig › fonts
Font guidance for a BRAND entity.
Explain the meaning of this value, not just its name.
brandConfig › colors
Color guidance, including hex codes when available.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
entityId
Saved reference entity to use. Obtain entityId from list_entities or create_entity.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs95/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entityId
Saved reference entity to use. Obtain entityId from list_entities or create_entity.
Clear enough to supply this argument.
fileId
Image file id (vg_file_...) to attach as a reference. Upload first via upload_file / create_file_upload / open_uploader.
Clear enough to supply this argument.
description
Optional description of this reference image.
Clear enough to supply this argument.
role
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.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
isDefault
When true, make this the primary reference (thumbnail). Defaults to false.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs97/100
Input documentation gives an agent enough context to populate the arguments.
entityId
Saved reference entity to use. Obtain entityId from list_entities or create_entity.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Pagination cursor from a previous response's `nextCursor`.
Clear enough to supply this argument.
limit
Maximum number of items to return.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
includeDeprecatedVoices
Whether to include older voices that remain callable. Omit to exclude deprecated voices.
Clear enough to supply this argument.
query
Optional case-insensitive substring filter across each item's searchable text fields.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Build a VideoGen app URL that opens a modal or navigates after the user signs in (upgrade, buy credits, enable top-ups, invite teammates, submit feedback, integrations, account settings, or a NAVIGATE destination). Prefer this when the user needs to complete something in the VideoGen UI that MCP tools cannot do inline — especially credits or plan gates. Return the url to the user so they can open it.
The description explains the capability, when to use it, and what to expect.
Inputs93/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
action
App operation to open after sign-in, such as navigation, feedback, or integration management.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
destination
Required for NAVIGATE. In-app keys like PROJECTS, BILLING_SETTINGS, SUPPORT; or HELP_CENTER / API_DOCS.
Clear enough to supply this argument.
articleSlug
Required for OPEN_HELP_ARTICLE. Help-center search text, such as an article title or its URL slug; the link opens matching search results.
Clear enough to supply this argument.
provider
Required for OPEN_MANAGE_INTEGRATION. Integration provider key, such as GOOGLE or SLACK, identifying the connection to manage.
Clear enough to supply this argument.
capability
Optional for OPEN_INTEGRATIONS_PICKER. Capability filter (e.g. KNOWLEDGE_SOURCE), or null for all.
Clear enough to supply this argument.
category
Feedback classification for OPEN_SUBMIT_FEEDBACK. Omit or pass null to let the user choose.
Clear enough to supply this argument.
text
Optional for OPEN_SUBMIT_FEEDBACK. Prefills the ticket description (capped).
Clear enough to supply this argument.
suggestedLocale
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url",
"action"
],
"properties": {
"url": {
"type": "string",
"description": "Absolute URL to open in a browser. After VideoGen sign-in, the app applies the action (modal or navigation)."
},
"action": {
"type": "string",
"description": "The deep-link action that was resolved."
}
},
"description": "VideoGen app deep link for an assistant COMMON action.",
"additionalProperties": {}
}
Original tool metadata
{
"name": "get_app_deep_link",
"title": "Get app deep link",
"description": "Build a VideoGen app URL that opens a modal or navigates after the user signs in (upgrade, buy credits, enable top-ups, invite teammates, submit feedback, integrations, account settings, or a NAVIGATE destination). Prefer this when the user needs to complete something in the VideoGen UI that MCP tools cannot do inline — especially credits or plan gates. Return the url to the user so they can open it.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"action"
],
"properties": {
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Optional for OPEN_SUBMIT_FEEDBACK. Prefills the ticket description (capped)."
},
"action": {
"enum": [
"OPEN_UPGRADE",
"OPEN_ENABLE_TOP_UPS",
"OPEN_INVITE_TEAMMATES",
"OPEN_PURCHASE_CREDITS",
"OPEN_SUBMIT_FEEDBACK",
"OPEN_RATE_CARD",
"OPEN_HELP_ARTICLE",
"OPEN_MANAGE_INTEGRATION",
"OPEN_INTEGRATIONS_PICKER",
"OPEN_LANGUAGE_SELECTOR",
"NAVIGATE"
],
"type": "string",
"description": "App operation to open after sign-in, such as navigation, feedback, or integration management."
},
"category": {
"anyOf": [
{
"enum": [
"bug",
"feature_request",
"improvement"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Feedback classification for OPEN_SUBMIT_FEEDBACK. Omit or pass null to let the user choose."
},
"provider": {
"type": "string",
"description": "Required for OPEN_MANAGE_INTEGRATION. Integration provider key, such as GOOGLE or SLACK, identifying the connection to manage."
},
"capability": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Optional for OPEN_INTEGRATIONS_PICKER. Capability filter (e.g. KNOWLEDGE_SOURCE), or null for all."
},
"articleSlug": {
"type": "string",
"description": "Required for OPEN_HELP_ARTICLE. Help-center search text, such as an article title or its URL slug; the link opens matching search results."
},
"destination": {
"type": "string",
"description": "Required for NAVIGATE. In-app keys like PROJECTS, BILLING_SETTINGS, SUPPORT; or HELP_CENTER / API_DOCS."
},
"suggestedLocale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "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."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url",
"action"
],
"properties": {
"url": {
"type": "string",
"description": "Absolute URL to open in a browser. After VideoGen sign-in, the app applies the action (modal or navigation)."
},
"action": {
"type": "string",
"description": "The deep-link action that was resolved."
}
},
"description": "VideoGen app deep link for an assistant COMMON action.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"description": "Uploader launch status: ready. This is not an upload completion result; the widget reports the file id after the user uploads."
}
},
"description": "ChatGPT App upload-widget launch result.",
"additionalProperties": {}
}
Original tool metadata
{
"name": "open_uploader",
"title": "Open uploader",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"description": "Uploader launch status: ready. This is not an upload completion result; the widget reports the file id after the user uploads."
}
},
"description": "ChatGPT App upload-widget launch result.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01List entitiesList built-in actors, products, visual styles, and slideshow themes plus team entities (including brands, locations, and props).
02List projectsBrowse projects in the authenticated team, including dashboard-created projects, most recently updated first.
03List text-to-speech voicesReturn a page of narration voices with voiceId, display name, language, accent, description, deprecation status, and supportsDirectToolExecution.
04List languagesReturn supported narration and caption languages as languageCode and English name pairs.
05Getting started guidanceHow to authenticate, verify with get_me, introduce VideoGen with workflow example prompts, choose workflows vs media tools, and follow VideoGen id conventions.
Want to run these tasks against your MCP server with us?
VideoGen setup, tools, quality score, publishing readiness, and alternatives.
How do I add VideoGen to Claude, ChatGPT, or Cursor?
Add VideoGen to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.videogen.io/mcp.
Is VideoGen MCP ready for ChatGPT and Claude?
As of October 18, 2026, VideoGen scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is VideoGen's MCP tool documentation?
As of October 18, 2026, VideoGen scores 93/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 50 of 50 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What are the best alternatives to VideoGen?
As of October 20, 2026, alternatives to VideoGen in design-creative on the Manufact MCP leaderboard include Motion, MotionVid, Sleek, Streamloop MCP, and Image Generation.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.