VideoGen MCP executes the VideoGen API (workflows, media tools, remix, export, entities, files).
Prefer workflows for full narrated multi-scene video; prefer generate_* media tools for a single asset. VideoGen routes generative tools to a suitable model automatically — do not ask the user to pick an upstream model vendor.
When the user asks what VideoGen can do, or you need starter prompts: lead with finished-video workflows, not a catalog of generate_* tools. Give two examples such as "Make a one-minute 16:9 video explaining how compound interest works, with cinematic visuals and an energetic voiceover" and "Make a 3-scene vertical UGC ad for my new water bottle, with handheld phone energy, a punchy voiceover, and a clear call to action at the end". Do not use a motion graphic, countdown, lower-third, or other single-asset tool as a first example. Mention standalone media tools only if they ask for one image, clip, overlay, or transform.
For ~1 minute+ narrated / informational videos from text, prefer script_to_video. Use storyboard_to_video only for short shot-directed spots, and never more than 3 scenes unless the user explicitly asks for more (storyboard is much more credit-heavy). If the user has not named a workflow, ask with short pros/cons before starting.
For consistent actors/products/styles: upload an image, create_entity, add_entity_reference (isDefault: true), then pass the vg_enti_... id. Use actorEntityId on script_to_video, slideshow_to_video, and generate_avatar. On storyboard_to_video, pass productEntityIds or actorEntityIds on the request and on each scene that should show that reference, and visualStyleEntityId on each scene for a visual style. A storyboard prompt alone does not use the entity's reference images. Prefer MCP entity tools over opening the app Entities page unless the user asks for the UI.
Before non-trivial setup, "what can VideoGen do" answers, async polling, workflow/remix/export, or tools-vs-workflows decisions, call the ma
Protocol
Pass100/10016 / 16 pts
Connection, authentication, and protocol compatibility.
How to fix: For tools that render a UI resource, add openai/toolInvocation with string fields invoking and invoked (present-tense labels shown while the tool runs and after it finishes, e.g. "Searching…" / "Searched").
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/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.
No input fields.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/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.
No input fields.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/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.
No input fields.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/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.
No input fields.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description82/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.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
script
Narration script, spoken verbatim.
Clear enough to supply this argument.
style
Visual style for generated images. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as "watercolor", "flat art", or "cinematic".
Image models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.
Copy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.
Watercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Realistic: Photorealistic photograph, natural lighting
Whiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters
Flat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.
Paper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Ink paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Anime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds
Editorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette
Isometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Claymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field
Education: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Chalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Boho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Poster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors
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).
Clear enough to supply this argument.
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.
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.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as \"watercolor\", \"flat art\", or \"cinematic\".\nImage models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.\nCopy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.\nWatercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nRealistic: Photorealistic photograph, natural lighting\nWhiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\n3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters\nFlat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.\nPaper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nInk paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nAnime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds\nEditorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette\nIsometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nClaymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field\nEducation: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nChalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nBoho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nPoster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors"
},
"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,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description67/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
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
fileId
Uploaded voiceover audio file id.
Clear enough to supply this argument.
style
Visual style for generated images. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as "watercolor", "flat art", or "cinematic".
Image models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.
Copy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.
Watercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Realistic: Photorealistic photograph, natural lighting
Whiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters
Flat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.
Paper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Ink paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Anime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds
Editorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette
Isometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Claymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field
Education: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Chalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Boho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Poster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors
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).
Clear enough to supply this argument.
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.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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": "voiceover_to_video",
"title": "Voiceover to video",
"description": "Build an editable video with AI-generated visuals from an uploaded voiceover audio file.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileId"
],
"properties": {
"style": {
"type": "string",
"minLength": 1,
"description": "Visual style for generated images. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as \"watercolor\", \"flat art\", or \"cinematic\".\nImage models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.\nCopy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.\nWatercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nRealistic: Photorealistic photograph, natural lighting\nWhiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\n3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters\nFlat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.\nPaper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nInk paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nAnime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds\nEditorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette\nIsometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nClaymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field\nEducation: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nChalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nBoho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nPoster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors"
},
"fileId": {
"type": "string",
"description": "Uploaded voiceover audio file id."
},
"quality": {
"enum": [
"LOW",
"STANDARD",
"HIGH",
"MAX"
],
"type": "string",
"description": "Generation quality. Omit to use workspace settings."
},
"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 }."
}
}
},
"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,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/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.
Describe the returned information so the agent knows whether it will answer the request.
Inputs95/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.
Clear enough to supply this argument.
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.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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.",
"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,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
Build an editable video from an ordered storyboard (frame-by-frame shot list). Every scene needs a visual prompt and may include spoken words. 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.
Inputs84/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenes › items › prompt
Required visual description for this scene.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenes › items › voiceoverScript
Optional words spoken during this scene.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenes › items › title
Optional scene title.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenes › items › durationSeconds
Optional scene duration in whole seconds (1-15).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
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. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as "watercolor", "flat art", or "cinematic".
Image models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.
Copy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.
Watercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Realistic: Photorealistic photograph, natural lighting
Whiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters
Flat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.
Paper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Ink paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Anime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds
Editorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette
Isometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Claymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field
Education: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Chalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Boho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.
Poster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors
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
Image generation quality for scene opening frames. Optional; defaults to HIGH. Does not change video generation quality.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
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.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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). Every scene needs a visual prompt and may include spoken words. 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. Write a full, strict paragraph in the same form as the app defaults below: name the medium, texture, and palette, then lock composition. Do not pass a short label such as \"watercolor\", \"flat art\", or \"cinematic\".\nImage models fill the frame with extra objects, readable text, charts, diagrams, tables, and labels unless the style forbids that. The still then looks crowded and hard to use. Every style must keep the picture simple. Include this composition lock verbatim: A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter. No on-image text, letters, labels, captions, charts, diagrams, tables, legends, or infographic layout unless the user explicitly asked for one specific word or number on screen.\nCopy an app default in full (those already include the uncluttered-subject lock), then add the no-text / no-diagram sentence if it is missing. A custom style is allowed only when it is equally long and strict, and includes the same composition lock. Omit this field for the Realistic default.\nWatercolor: Loose watercolor illustration, visible brushstrokes, soft color bleeds, paper texture, muted palette. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nRealistic: Photorealistic photograph, natural lighting\nWhiteboard: Minimalist whiteboard explainer style, simple line drawings, marker sketch aesthetic, clean white background, subtle accent colors. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\n3D cartoon: 3D cartoon render, rounded forms, soft lighting, vibrant colors, clean matte materials, smooth stylized characters\nFlat art: Corporate memphis flat art illustration, simple geometric shapes, bold colors, clean composition, white background with sparse subtle geometric accents such as small dots, lines, or shapes scattered in the margins. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no busy background patterns.\nPaper: Paper collage illustration, torn edges, layered cut paper shapes, mixed media texture, handmade craft aesthetic, matte paper finish. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nInk paint: Traditional Japanese sumi-e ink wash painting, expressive black ink brushstrokes, varied tonal gradations from deep black to soft gray, rice-paper texture, minimalist composition. No text, letters, calligraphy, kanji, signatures, or red seal stamps unless explicitly required by the subject. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nAnime: Anime illustration, cel-shaded style, vibrant colors, clean linework, soft gradient backgrounds\nEditorial: Editorial illustration, conceptual art, bold geometric shapes, sophisticated color palette, negative space, minimalist composition, strong silhouette\nIsometric: Isometric 3D illustration, clean vector style, soft gradient background, matte pastel colors, simple geometric objects, no characters. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nClaymation: Claymation style, soft clay figurines, plasticine texture, handmade stop-motion aesthetic, warm studio lighting, shallow depth of field\nEducation: Educational infographic style, simple icons, pastel colors, white background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nChalkboard: Simple, minimalist, white chalk line drawings on dark green chalkboard, hand-drawn sketch style, chalk dust texture. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nBoho: Simple graphic with only a few elements. Boho linocut poster. Textured organic strokes with crisp lines and a white textured background. A clear uncluttered subject centered in the frame, occupying only the middle half of the image, with generous empty margins on all four sides, no background clutter.\nPoster: Risograph print aesthetic, halftone texture, limited duotone palette, paper grain, high contrast, bold flat colors"
},
"scenes": {
"type": "array",
"items": {
"type": "object",
"required": [
"prompt"
],
"properties": {
"title": {
"type": "string",
"description": "Optional scene title."
},
"prompt": {
"type": "string",
"minLength": 1,
"description": "Required visual description for 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": "Optional scene duration in whole seconds (1-15)."
},
"voiceoverScript": {
"type": "string",
"description": "Optional 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. Optional; defaults to 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,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description66/100
Generate one short AI video clip from a prompt inside an editable project.
Describe the returned information so the agent knows whether it will answer the request.
Inputs82/100
6 of 7 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
prompt
Description of the short video clip.
Clear enough to supply this argument.
imageFileIds
Optional reference image file ids.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
durationSeconds
Not provided
Missing description. Explain what this value means and how to supply it.
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.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/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.
Inputs79/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
Optional reference image file ids.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entityIds
Optional actor, product, or visual-style entity ids (vg_enti_...) used as identity/reference.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
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.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
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. quality is optional (LOW, STANDARD, HIGH, or MAX). 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.
Inputs90/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
Optional reference image file ids.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
videoFileIds
Optional reference video file ids.
Clear enough to supply this argument.
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
Optional clip length in whole seconds (1 to 30). Omit or pass null for Auto.
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).
Clear enough to supply this argument.
quality
Video generation quality. Omit to use workspace settings.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/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.
Inputs73/100
10 of 11 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
prompt
Description of the animated motion graphic.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
fileIds
Optional reference media file ids.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entityIds
Optional actor, product, or visual-style entity ids (vg_enti_...).
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
durationSeconds
Not provided
Missing description. Explain what this value means and how to supply it.
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
AUTO uses the capability when the plan allows it. ENABLED requires it. DISABLED turns it off.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
subToolModes › generateVideoClips
AUTO uses the capability when the plan allows it. ENABLED requires it. DISABLED turns it off.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
subToolModes › generateVoiceover
AUTO uses the capability when the plan allows it. ENABLED requires it. DISABLED turns it off.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
subToolModes › searchStockMedia
AUTO uses the capability when the plan allows it. ENABLED requires it. DISABLED turns it off.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/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.
Describe the returned information so the agent knows whether it will answer the request.
Inputs83/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
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
Audio file id for the avatar to lip-sync.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/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.
Inputs67/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
projectId
Project id to edit.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
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
Apply edits to a copy of the project.
Explain what happens when this optional value is omitted.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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": "Project id to edit."
},
"saveAsNewProject": {
"type": "boolean",
"description": "Apply edits to a copy of the project."
}
}
},
"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,
"destructiveHint": true
}
}
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.
Inputs83/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
Display name for the file. Defaults to 'upload'.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
type
File type. Inferred when omitted.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
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.
Inputs75/100
Explain the meaning of this value, not just its name.
displayName
Display name for the file.
Explain the meaning of this value, not just its name.
type
File type. Inferred after processing when omitted.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
isTemporary
When true, the file is temporary (guaranteed available for 24 hours, not analyzed for search). Defaults to false.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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": "File type. Inferred after processing when omitted."
},
"displayName": {
"type": "string",
"description": "Display name for the file."
},
"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,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/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.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
fileId
File id (vg_file_...).
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
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
How often to poll while waiting, in milliseconds.
Explain what happens when this optional value is omitted.
timeoutMs
Maximum time to wait for processing before giving up, in milliseconds.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/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.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/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. 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.
Describe the returned information so the agent knows whether it will answer the request.
Inputs83/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
Optional longer description.
Explain the meaning of this value, not just its name.
brandConfig › fonts
Font guidance for a BRAND entity.
Clear enough to supply this argument.
brandConfig › colors
Color guidance, including hex codes when available.
Clear enough to supply this argument.
brandConfig › writingStyle
Voice and tone for spoken and on-screen copy.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/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.
Inputs90/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entityId
Entity id (vg_enti_...).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
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
What the file is used for. Defaults to REFERENCE. On a BRAND, BRAND_LOGO is its overlay logo and BRAND_STYLE_GUIDE is its visual generation reference.
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.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
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.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
action
Assistant COMMON action to deep-link into the VideoGen app (opens a modal or navigates after sign-in).
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 article slug / search query.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
provider
Required for OPEN_MANAGE_INTEGRATION. Integration provider id (e.g. GOOGLE, SLACK).
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
capability
Optional for OPEN_INTEGRATIONS_PICKER. Capability filter (e.g. KNOWLEDGE_SOURCE), or null for all.
Clear enough to supply this argument.
category
Optional for OPEN_SUBMIT_FEEDBACK. Ticket category, or null to let the user pick.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
text
Optional for OPEN_SUBMIT_FEEDBACK. Prefills the ticket description (capped).
Clear enough to supply this argument.
suggestedLocale
Optional for OPEN_LANGUAGE_SELECTOR. Suggested locale code (e.g. en-US).
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"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": "Assistant COMMON action to deep-link into the VideoGen app (opens a modal or navigates after sign-in)."
},
"category": {
"anyOf": [
{
"enum": [
"bug",
"feature_request",
"improvement"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Optional for OPEN_SUBMIT_FEEDBACK. Ticket category, or null to let the user pick."
},
"provider": {
"type": "string",
"description": "Required for OPEN_MANAGE_INTEGRATION. Integration provider id (e.g. GOOGLE, SLACK)."
},
"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 article slug / search query."
},
"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": "Optional for OPEN_LANGUAGE_SELECTOR. Suggested locale code (e.g. en-US)."
}
}
},
"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,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/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.
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.
No input fields.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"description": "Widget status (ready when the uploader UI can open)."
}
},
"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.",
"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": "Widget status (ready when the uploader UI can open)."
}
},
"description": "ChatGPT App upload-widget launch result.",
"additionalProperties": {}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"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 text-to-speech voicesList available text-to-speech voices for narration, text_to_speech, and workflows.
03Getting started guidanceHow to authenticate, verify with get_me, introduce VideoGen with workflow example prompts, choose workflows vs media tools, and follow VideoGen id conventions.
04List projectsList projects, including projects created in the dashboard.
05List supported languages for narration and captions
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 16, 2026, videogen scores 94/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 16, 2026, videogen scores 83/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 17, 2026, alternatives to videogen in design-creative on the Manufact MCP catalog include Motion, MotionVid, Sleek, Streamloop MCP, and Image Generation.
How can videogen improve its MCP documentation?
generate_sound_effect is the lowest-scoring reviewed tool at 66/100. 1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.