VideoGen
Create and export videos from scripts, voiceovers, slideshows, and storyboards.
What it can do
- Get Getting Started Guidance: 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
- Get Async Tasks Guidance: 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 p
- Get Workflows Guidance: 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
What data it sees
Do you need an account
No: the server works without sign-in
Create and export videos from scripts, voiceovers, slideshows, and storyboards. This remote MCP server runs the VideoGen developer API with each user’s own authentication.
How to connect
How to connect VideoGen to Claude
The server address to paste into Claude settings:
https://videogen--videogen.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect VideoGen to ChatGPT
The server address to paste into ChatGPT settings:
https://videogen--videogen.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect VideoGen to Cursor
The server address to paste into Cursor settings:
https://videogen--videogen.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (50)
Raw names from tools/list. Only developers need these.
| get_getting_started_guidance | 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. |
| get_async_tasks_guidance | 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. |
| get_workflows_guidance | 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. |
| get_tools_vs_workflows_guidance | 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. |
| script_to_video | 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. |
| voiceover_to_video | Build an editable video with AI-generated visuals from an uploaded voiceover audio file. |
| slideshow_to_video | 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. |
| storyboard_to_video | Build 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. |
| prompt_to_video_clip | Generate one short AI video clip from a prompt inside an editable project. |
| list_workflow_runs | List workflow runs, most recent first. |
| get_workflow_run | Fetch the current status and result of a single workflow run. |
| cancel_workflow_run | Request cancellation of an in-progress workflow run. |
| generate_image | 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. |
| generate_video_clip | 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. |
| text_to_speech | Convert text into spoken audio using a selectable voice. |
| generate_sound_effect | Generate a sound effect from a text prompt. |
| generate_music | Generate a music track from a text prompt. Typically takes 1–5 minutes depending on track length. Tell the user that wait up front. |
| generate_motion_graphic | 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. |
| generate_avatar | 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. |
| vectorize_image | Convert a raster image into a vector (SVG). |
| remove_image_background | Remove the background from an image. |
| remove_video_background | Remove the background from a video. |
| upscale_image | Increase the resolution of an image. |
| upscale_video | Increase the resolution of a video. |
| image_3d_effect | Add 3D parallax motion to a still image, producing a video. |
| list_tool_executions | List past tool executions, most recent first. |
| get_tool_execution | Fetch the current status and results of a single tool execution. |
| cancel_tool_execution | Request cancellation of an in-progress tool execution. |
| list_projects | List projects. API-created projects only by default; pass includeUiProjects to also include dashboard projects. |
| get_project | Fetch metadata and the shareable URL for a single project. |
| export_project | Export 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. |
| get_project_export | Fetch the current status of a project export. Poll until status is succeeded, failed, or cancelled. |
| remix_project | Apply curated edits to an existing project. 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. |
| list_project_remix_actions | List the status of remix actions applied to a project. |
| upload_file | 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. |
| create_file_upload | 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. |
| get_file | 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. |
| list_files | List files visible to the current API key. |
| list_entities | List 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. |
| create_entity | Create 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, a product/style reference in storyboard scenes, or slideshowThemeEntityId on slideshow_to_video. |
| get_entity | Fetch one entity by id, including its reference images. Built-in catalog entities are included and have isBuiltIn true. |
| update_entity | Update an entity's display name and/or description. Built-in entities cannot be updated. |
| archive_entity | Archive an entity so it no longer appears in lists or pickers. Built-in entities cannot be archived. |
| add_entity_reference | 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. 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. |
| remove_entity_reference | Detach a reference image from an entity by file id. Built-in entities cannot have references removed. |
| list_tts_voices | List available text-to-speech voices for narration, text_to_speech, and workflows. |
| list_languages | List supported languages for narration and captions. |
| get_me | Fetch the account and team behind the API key (`apiKeyId`, `apiKeyNickname`, `email`, `displayName`, `teamId`). Use it as a connection test. |
| get_app_deep_link | 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. |
| open_uploader | 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. |