Title99/100
Create a video
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Create, generate, make or render a video from a text prompt with MotionVid — the primary action for producing an AI video, explainer, animation, or motion-graphics clip. Starts an async job. miltos-6-fast (default — omit `model`) is the full path: narration, music, SFX, and AI clips (ai_video: auto/on/off/full — "off" is cheapest, motion graphics only; "full" is all-footage: hundreds of credits per minute of video, more on miltos-6 — state that cost and get the user's OK before starting one). The most capable (miltos-6) and single-scene tiers are under `model`. enhance_prompt=true rewrites the prompt for better results. PASS render=true WHENEVER THE USER WANTS A VIDEO FILE — it is off by default, and a job that finishes without it has no download_url at all, only a project in the MotionVid app (render_video encodes one afterwards, so this is recoverable, not fatal). ai_video "full" builds run straight through by default; pass storyboard=true only when the user wants to REVIEW before clips are generated — the job then pauses at "awaiting_approval" (cast, then storyboard) until approve_video answers each gate. Output defaults to 16:9 landscape — pass aspect_ratio "9:16" for TikTok/Reels/Shorts. Omit duration / aspect_ratio / narration and the build decides them from the prompt and any attached material (30s, 16:9, narrated only when nothing says otherwise); a value you pass is binding, bar the script exception on `duration`. If the request is thin on those and it would change the video, ask the user before calling this. Returns a job id immediately — poll get_video_status until "completed", then use the download_url it carries. Do not quote an ETA: every status poll carries `phase`, `phase_detail` and `poll_after_seconds`, which is what the wait actually is. Credits are charged as the job runs. To CHANGE a video that already exists, use edit_video instead of re-creating — it is surgical and far cheaper.
The description explains the capability, when to use it, and what to expect.
Inputs82/100
42 of 50 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
prompt
What the video should be. Any URL or bare domain here is researched (max 2, multi-scene models only): the page is fetched as markdown and screenshotted, and the planner reads its copy, palette and typography off the screenshot — so linking the source article or brand site is how the video picks up that design. A VIDEO link here (direct .mp4/.mov, or Instagram/TikTok/YouTube/X) is imported as real footage the build cuts, captions and composites into scenes — that is how a screen recording or an existing clip gets in. A song the user supplies belongs in `audio`, NOT here — a link here is read as footage or research. The multi-scene models also research on their own: they search the web for current or dated topics, and look up a company site when no link is given, so "a video about this week's AI news" works from the prompt alone. Never guess a link: a made-up one is fetched as if it were the real site, while leaving it out lets the build find the real one.
Clear enough to supply this argument.
model
Omit for the default, miltos-6-fast: the full multi-scene path, faster and cheaper than miltos-6. miltos-6 is our most capable model on every scene (roughly 1.5x the credits of miltos-5 for the same length of video); pass it when the user names it or asks for the best quality. It needs a paid plan and is refused otherwise; miltos-6-fast runs on every plan. miltos-5 suits simpler videos; pass it only when named. miltos-4 is code-only (a single scene; anyone on screen is drawn as SVG), passed only when named; miltos-3 is a deprecated alias of it.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
enhance_prompt
Rewrite the prompt with the enhancement model first (small extra credit cost)
Clear enough to supply this argument.
dimensions › width
Width in pixels
Clear enough to supply this argument.
dimensions › height
Height in pixels
Clear enough to supply this argument.
aspect_ratio
Preset output shape: 16:9, 9:16, 1:1, or 4:5. Omit and the build reads the shape off the prompt ("for Reels" goes vertical), landing on 16:9 when nothing says otherwise; a passed value binds. Ignored when dimensions is also set (dimensions wins).
Clear enough to supply this argument.
duration
Target duration in seconds. Narration scripted in the prompt is kept verbatim and its length wins; give facts, not finished lines, to hit a length.
Clear enough to supply this argument.
animation_style
Visual style pack id from list_animation_styles / GET /v1/animation-styles. Omit and the build picks a pack that fits the topic. `taste-default` is the plain look, worth passing only when a plain look is what you want; `no-style` is no pack at all, only for a user who declines preset styles or art-directs their own look (colors and fonts alone still get a pack).
Clear enough to supply this argument.
background_color
Canvas color held for the whole video (a CSS color, e.g. #0b0b0f). Omit and the build picks one from its plan.
Clear enough to supply this argument.
narration
AI voiceover narration. multi-scene models only. Omit and the build decides from the prompt — narrated unless the request reads otherwise (a talking-head clip, an all-footage film, plan:false). Passing narration:true on single-scene models (miltos-3/miltos-4) returns HTTP 400 — they have no audio support; omit it or pass false.
Clear enough to supply this argument.
narration_voice
ElevenLabs voice id from list_voices / GET /v1/voices. Omit to auto-pick a voice fitting the content
Clear enough to supply this argument.
narration_language
Narration language. Omit to auto-detect from the prompt
Clear enough to supply this argument.
music
Background music score. multi-scene models only. Omit and the build scores it unless the request reads otherwise; true on single-scene models returns HTTP 400.
Clear enough to supply this argument.
sfx
Sound effects. multi-scene models only (default off); true on single-scene models returns HTTP 400.
Clear enough to supply this argument.
ai_video
AI-generated video clips inside scenes (photoreal or animated). "auto" (default): used only where the story calls for film; "on": mix clips in; "off": code-rendered motion graphics only — cheapest, no clip charges; "full": EVERY scene is a generated clip (all-footage build — highest charges: a still + a clip per scene, up to 20 scenes; generated in one pass unless `storyboard` review is on; on miltos-6 the clips run on our top video model — shots up to 30s, at 3x the clip credits). "Animated" is a LOOK, not this setting: a `medium:"footage"` style pack (see list_animation_styles) delivers its animated look through clips, so "off" reduces it to a code approximation — and under "off" nobody can walk, gesture or perform on screen, because code cannot animate a body. multi-scene models only; non-auto on single-scene models returns HTTP 400.
Clear enough to supply this argument.
storyboard
ai_video:"full" only. Pause the build for HUMAN review before money is spent on clips: first at the cast sheets, then at the storyboard stills. At each pause the job goes to status "awaiting_approval" and stays there until approve_video (or the MotionVid app) confirms or requests changes — nothing expires. Default off: the build runs straight through and needs no supervision. Turn this on only when the user wants to approve the look before clips are generated.
Clear enough to supply this argument.
on_screen_text
Allow burned-in text (titles, labels) inside generated clips. Only applies to ai_video:"full" builds; default off (captions/titles are added as separate overlays). multi-scene models only.
Clear enough to supply this argument.
plan
Plan the story arc before generating scenes (multi-scene, default on)
Clear enough to supply this argument.
brand_kit_id
Saved brand kit id from list_brand_kits / GET /v1/brand-kits (full brand context: logo, colors, fonts, assets). Alternative to inline brand_settings
Clear enough to supply this argument.
brand_settings › primary_color
Not provided
Missing description. Explain what this value means and how to supply it.
brand_settings › secondary_color
Not provided
Missing description. Explain what this value means and how to supply it.
brand_settings › accent_color
Not provided
Missing description. Explain what this value means and how to supply it.
brand_settings › heading_font
Not provided
Missing description. Explain what this value means and how to supply it.
brand_settings › body_font
Not provided
Missing description. Explain what this value means and how to supply it.
brand_settings › visual_style
Not provided
Missing description. Explain what this value means and how to supply it.
brand_settings › brand_name
Not provided
Missing description. Explain what this value means and how to supply it.
brand_settings › brand_description
Not provided
Missing description. Explain what this value means and how to supply it.
images › items › url
A direct, publicly downloadable image file (PNG, JPEG, WebP or SVG, 25MB max) — not a share page or a link behind a login. It is copied into the project before the build; one that cannot be fetched fails the job.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
images › items › context
Free-text note on what this image is and how to use it
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
images › items › role
"import" (default): put this image in the video — logos, product shots, artwork. "style": borrow its look only; it is never rendered and never passed to a generation input, because a reference gets copied rather than imitated. "reference": no stated purpose — the model decides from the prompt, leaning toward reading it rather than showing it.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
documents › items › url
Direct, public link to the document file
Clear enough to supply this argument.
documents › items › mime_type
Type of the file at url
Clear enough to supply this argument.
documents › items › file_name
The document's file name, if known
Clear enough to supply this argument.
audio › items › url
The track's link — which links work is under `audio`
Clear enough to supply this argument.
audio › items › role
"music" (default): the video's soundtrack. "voiceover": a spoken recording the build writes scene copy and timing against. "sfx": a one-shot.
Clear enough to supply this argument.
webhook_url
HTTPS endpoint notified when the job reaches a terminal state — the alternative to polling get_video_status. Only useful if you can receive an inbound callback; most MCP clients cannot and should poll instead.
Clear enough to supply this argument.
render
Auto-render an MP4 when generation completes
Clear enough to supply this argument.
resolution
With render=true: the MP4's resolution. Omit for 720p. Pass '1080p', '4K' or '8K' only when the user asks for a higher resolution; above the plan's maximum is refused.
Clear enough to supply this argument.
image_files › items › download_url
The host's temporary link to the attached file
Clear enough to supply this argument.
image_files › items › file_id
The host's id for the attached file
Clear enough to supply this argument.
image_files › items › mime_type
The file's type, as the host reports it
Clear enough to supply this argument.
image_files › items › file_name
The file's original name
Clear enough to supply this argument.
voiceover_file › download_url
The host's temporary link to the attached file
Clear enough to supply this argument.
voiceover_file › file_id
The host's id for the attached file
Clear enough to supply this argument.
voiceover_file › mime_type
The file's type, as the host reports it
Clear enough to supply this argument.
voiceover_file › file_name
The file's original name
Clear enough to supply this argument.
music_file › download_url
The host's temporary link to the attached file
Clear enough to supply this argument.
music_file › file_id
The host's id for the attached file
Clear enough to supply this argument.
music_file › mime_type
The file's type, as the host reports it
Clear enough to supply this argument.
music_file › file_name
The file's original name
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Output schema56/100
Describe the returned fields so an agent can interpret the result.
View output schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"status",
"model",
"estimated_credits"
],
"properties": {
"id": {
"type": "string"
},
"model": {
"type": "string"
},
"status": {
"type": "string"
},
"credits_remaining": {
"type": "number",
"description": "The account's credits before this job (absent on an unlimited plan) — weigh `estimated_credits` against it."
},
"estimated_credits": {
"type": "number"
},
"estimated_export_minutes": {
"type": "number",
"description": "With render=true: export minutes the MP4 should cost (a quote; charged on the real length)"
}
},
"additionalProperties": false
}