Overview
Creates a video clip from a text prompt and/or starting image. Routes to the correct provider for the requested model (Sora 2 Pro, Kling 2.5 Turbo Pro, Wan, Minimax, …). Always asynchronous — returns a job_id immediately; poll for completion.
Auth oauth-jwt
Returns
{ jobId, status, video?: { url } } — poll via `studio_job_status`. Final response includes `creditsRemaining`.
Web client src/app/[locale]/dashboard/creative-studio/videos/videos-page-client.tsx
MCP handler mcp-director/src/tools/studio.py
Quick start
Invoke the tool over Streamable HTTP at {MCP_BASE_URL}/mcp/. The request below assumes you already minted an MCP JWT via the OAuth flow.
MCPcurlTypeScript
{
"name": "studio_generate_video",
"arguments": {
"prompt": "<prompt>"
}
}
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | string | — | Text prompt. |
| model | string | "fal-ai/kling-video/v2.5-turbo/pro/text-to-video" | Provider/model id. Pro variants can take 3–5 min — prefer non-pro for fast iteration. |
| image_url | string | — | Optional starting frame for image-to-video. Must be a real URL; HEAD preflight rejects fabrications. |
| duration | number | 5 | Clip length in seconds (model-dependent ceiling). |
| aspect_ratio | "16:9" | "16:9" | Target aspect ratio. |
Examples
Image-to-video
{
"name": "studio_generate_video",
"arguments": {
"prompt": "slow dolly-in, golden hour reflection on the ceramic mug",
"model": "fal-ai/kling-video/v2.5-turbo/pro/image-to-video",
"image_url": "https://cdn.wm.studio/uploads/mug.png",
"duration_seconds": 5
}
}