add_entity_reference
ChatGPTAttach 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. 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.
archive_entity
ChatGPTArchive an entity so it no longer appears in lists or pickers. Built-in entities cannot be archived.
cancel_tool_execution
ChatGPTRequest cancellation of an in-progress tool execution.
cancel_workflow_run
ChatGPTRequest cancellation of an in-progress workflow run.
create_entity
ChatGPTCreate an ACTOR (character), PRODUCT (product/object), VISUAL_STYLE, or SLIDESHOW_THEME entity. After create, attach at least one reference 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.
create_file_upload
ChatGPTStart 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.
export_project
ChatGPTExport a project to an MP4 and return its status or download URL. Renders often take a few minutes. Tell the user that wait up front.
generate_avatar
ChatGPTGenerate 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.
generate_image
ChatGPTGenerate 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.
generate_motion_graphic
ChatGPTGenerate 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.
generate_music
ChatGPTGenerate a music track from a text prompt. Typically takes 1–5 minutes depending on track length. Tell the user that wait up front.
generate_sound_effect
ChatGPTGenerate a sound effect from a text prompt.
generate_video_clip
ChatGPTGenerate 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.
get_app_deep_link
ChatGPTBuild a VideoGen app URL that opens a non-billing modal or navigates after the user signs in (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. For credits or plan access issues, do not use this tool: tell the user to open https://app.videogen.io and manage their VideoGen account. Return the url to the user so they can open it.
get_async_tasks_guidance
ChatGPTHow 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.
get_entity
ChatGPTFetch one entity by id, including its reference images. Built-in catalog entities are included and have isBuiltIn true.
get_file
ChatGPTFetch 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.
get_getting_started_guidance
ChatGPTHow 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.
get_me
ChatGPTFetch the account and team behind the API key (apiKeyId, apiKeyNickname, email, displayName, teamId). Use it as a connection test.
get_project
ChatGPTFetch metadata and the shareable URL for a single project.
get_project_export
ChatGPTFetch the current status of a project export. Poll until status is succeeded, failed, or cancelled.
get_tool_execution
ChatGPTFetch the current status and results of a single tool execution.
get_tools_vs_workflows_guidance
ChatGPTWhen 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.
get_workflow_run
ChatGPTFetch the current status and result of a single workflow run.
get_workflows_guidance
ChatGPTCanonical 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.
image_3d_effect
ChatGPTAdd 3D parallax motion to a still image, producing a video.
list_entities
ChatGPTList built-in actors, products, visual styles, and slideshow themes plus team entities. Built-in rows have isBuiltIn true and cannot be updated or archived. Filter with entityType when you only need one kind.
list_files
ChatGPTList files visible to the current API key.
list_languages
ChatGPTList supported languages for narration and captions.
list_project_remix_actions
ChatGPTList the status of remix actions applied to a project.
list_projects
ChatGPTList projects, including projects created in the dashboard.
list_tool_executions
ChatGPTList past tool executions, most recent first.
list_tts_voices
ChatGPTList available text-to-speech voices for narration, text_to_speech, and workflows.
list_workflow_runs
ChatGPTList workflow runs, most recent first.
open_uploader
ChatGPTOpen 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.
prompt_to_video_clip
ChatGPTGenerate one short AI video clip from a prompt inside an editable project.
remix_project
ChatGPTApply curated edits to an existing project. Poll with list_project_remix_actions for status.
remove_entity_reference
ChatGPTDetach a reference image from an entity by file id. Built-in entities cannot have references removed.
remove_image_background
ChatGPTRemove the background from an image.
remove_video_background
ChatGPTRemove the background from a video.
script_to_video
ChatGPTPreferred 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.
slideshow_to_video
ChatGPTBuild 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.
storyboard_to_video
ChatGPTBuild an editable video from an ordered storyboard (frame-by-frame shot list). Every scene needs a visual prompt and may include spoken words. 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.
text_to_speech
ChatGPTConvert text into spoken audio using a selectable voice.
update_entity
ChatGPTOverwrite an entity's display name and/or description. Built-in entities cannot be updated.
upload_file
ChatGPTUpload 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.
upscale_image
ChatGPTIncrease the resolution of an image.
upscale_video
ChatGPTIncrease the resolution of a video.
vectorize_image
ChatGPTConvert a raster image into a vector (SVG).
voiceover_to_video
ChatGPTBuild an editable video with AI-generated visuals from an uploaded voiceover audio file.