Skip to main content
Glama

Create a storyboard

create_storyboard

Make a film three ways: from a brief you have written as scenes, from media the account already holds, or from a video you have already analysed. Scenes are written in order and chained in one write, so a twelve-beat board arrives as one video path rather than twelve calls. Anything you leave out of a scene is filled in: the description and the image prompt fall back to the title, and an unwritten motion prompt gets a subtle drift. Cast members are named, not referenced — the names of Subjects the account holds, which list_subjects finds. settings applies to written scenes and from_analysis; a film made from_media takes its frame from the first file, so set its settings with update_storyboard afterwards. A style is looked up before anything is made, and a name that misses makes nothing. Nothing here spends credits. For written scenes, attach owned footage with set_scene_clip, or use generate_scene_images when new stills are needed. Add a voice-over or music with add_storyboard_sound before rendering.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "create_storyboard"
  }
}

Input Schema

NameRequiredDescriptionDefault
castNo
nameNo
scenesNo
settingsNo
from_mediaNo
from_analysisNoBuild the board from a video you read with measure_video and wrote a beat sheet for with save_video_analysis. One scene per beat, with its title, its intent, its prompts and its MEASURED length — never re-type a beat sheet as scenes, because the arithmetic is ours and a board written by hand remembers no source, which is what match_scene_motion needs. The prompts arrive written for a different subject, as the beat sheet wrote them: transpose them with update_scene afterwards.

Output Schema

NameRequiredDescriptionDefault
castYes
briefYes
notesYes
quoteNo
textsYes
scenesYes
soundsYes
videosYes
creditsYes
historyYes
messageYes
skippedNo
startedNo
stoppedNo
acceptedNo
receiptsNo
scheduleYes
settingsYes
referenceNo
storyboardYes
download_urlNo
generation_idNo
remaining_scenesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / settings / properties / default_image_model / enum
      Previous value: -[
      -  "seedream-5-lite",
      -  "nano-banana-2.1",
      -  "nano-banana-2",
      -  "gpt-image-2.5-flare",
      -  "gpt-image-2.5-sunburst",
      -  "gpt-image-2",
      -  "nano-banana-2-lite",
      -  "seedream-5-pro",
      -  "seedream-5-pro-spicy",
      -  "flux-schnell",
      -  "flux-2-flex",
      -  "flux-2-pro",
      -  "flux-2-max",
      -  "recraft-v4.1-svg",
      -  "recraft-v4.1-pro-svg",
      -  "p-image",
      -  "grok-imagine-image",
      -  "grok-imagine-image-quality",
      -  "krea-3",
      -  "qwen-image-3-pro",
      -  "soul-2"
      -]New value: +[
      +  "seedream-5-lite",
      +  "nano-banana-2.1",
      +  "nano-banana-2",
      +  "gpt-image-2.5-flare",
      +  "gpt-image-2.5-sunburst",
      +  "gpt-image-2",
      +  "nano-banana-2-lite",
      +  "seedream-5-pro",
      +  "flux-schnell",
      +  "flux-2-flex",
      +  "flux-2-pro",
      +  "flux-2-max",
      +  "recraft-v4.1-svg",
      +  "recraft-v4.1-pro-svg",
      +  "p-image",
      +  "grok-imagine-image",
      +  "grok-imagine-image-quality",
      +  "krea-3",
      +  "qwen-image-3-pro",
      +  "soul-2"
      +]
    • changedInput schema / properties / settings / properties / default_video_model / enum
      Previous value: -[
      -  "seedance-2.5",
      -  "seedance-2.5-spicy",
      -  "seedance-2.0",
      -  "seedance-2.0-mini",
      -  "seedance-2.0-fast",
      -  "grok-imagine-video-1.5",
      -  "veo-3.1",
      -  "veo-3.1-fast",
      -  "veo-3.1-lite",
      -  "gemini-omni-1.1",
      -  "kling-v3-omni-video",
      -  "kling-v3-video",
      -  "happyhorse-1.0",
      -  "wan-3",
      -  "wan-3-prime",
      -  "gen-4.5",
      -  "p-video",
      -  "p-video-2",
      -  "flux-3",
      -  "minimax-h3-max",
      -  "p-video-avatar",
      -  "p-video-animate",
      -  "p-video-replace",
      -  "omni-human-1.5",
      -  "kling-avatar-v2",
      -  "kling-v3-motion-control",
      -  "kling-lip-sync",
      -  "sync-lipsync-2",
      -  "genjutsu-motion-transfer",
      -  "genjutsu-object-swap"
      -]New value: +[
      +  "seedance-2.5",
      +  "seedance-2.0",
      +  "seedance-2.0-mini",
      +  "seedance-2.0-fast",
      +  "grok-imagine-video-1.5",
      +  "veo-3.1",
      +  "veo-3.1-fast",
      +  "veo-3.1-lite",
      +  "gemini-omni-1.1",
      +  "kling-v3-omni-video",
      +  "kling-v3-video",
      +  "happyhorse-1.0",
      +  "wan-3",
      +  "wan-3-prime",
      +  "gen-4.5",
      +  "p-video",
      +  "p-video-2",
      +  "flux-3",
      +  "minimax-h3-max",
      +  "p-video-avatar",
      +  "p-video-animate",
      +  "p-video-replace",
      +  "omni-human-1.5",
      +  "kling-avatar-v2",
      +  "kling-v3-motion-control",
      +  "kling-lip-sync",
      +  "sync-lipsync-2",
      +  "genjutsu-motion-transfer",
      +  "genjutsu-object-swap"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / scenes / items / properties / motion_prompt / maxLength
      Previous value: -1000New value: +6000
  3. Changed1 schema field changed
    • changedInput schema / properties / from_analysis / description
      Previous value: -"Build the board from a video you read with measure_video and wrote a beat sheet for with save_video_analysis. One scene per beat, with its title, its intent, its prompts and its MEASURED length — never re-type a beat sheet as scenes, because the arithmetic is ours and a board written by hand remembers no source, which is what match_scene_motion needs. The prompts arrive written for a different subject, as the beat sheet wrote them: transpose them in one edit_storyboard afterwards."New value: +"Build the board from a video you read with measure_video and wrote a beat sheet for with save_video_analysis. One scene per beat, with its title, its intent, its prompts and its MEASURED length — never re-type a beat sheet as scenes, because the arithmetic is ours and a board written by hand remembers no source, which is what match_scene_motion needs. The prompts arrive written for a different subject, as the beat sheet wrote them: transpose them with update_scene afterwards."
  4. Changed1 schema field changed
    • changedInput schema / properties / from_analysis / description
      Previous value: -"Build the board from a video you read with get_video_analysis_bundle and wrote a beat sheet for with save_video_analysis. One scene per beat, with its title, its intent, its prompts and its MEASURED length — never re-type a beat sheet as scenes, because the arithmetic is ours and a board written by hand remembers no source, which is what match_scene_motion needs. The prompts arrive written for a different subject, as the beat sheet wrote them: transpose them in one edit_storyboard afterwards."New value: +"Build the board from a video you read with measure_video and wrote a beat sheet for with save_video_analysis. One scene per beat, with its title, its intent, its prompts and its MEASURED length — never re-type a beat sheet as scenes, because the arithmetic is ours and a board written by hand remembers no source, which is what match_scene_motion needs. The prompts arrive written for a different subject, as the beat sheet wrote them: transpose them in one edit_storyboard afterwards."
  5. Changed1 schema field changed
    • changedInput schema / properties / settings / properties / default_image_model / enum
      Previous value: -[
      -  "seedream-5-lite",
      -  "nano-banana-2.1",
      -  "nano-banana-2",
      -  "gpt-image-2.5-flare",
      -  "gpt-image-2.5-sunburst",
      -  "gpt-image-2",
      -  "nano-banana-2-lite",
      -  "seedream-5-pro",
      -  "seedream-5-pro-spicy",
      -  "flux-schnell",
      -  "flux-2-flex",
      -  "flux-2-pro",
      -  "flux-2-max",
      -  "recraft-v4.1-svg",
      -  "recraft-v4.1-pro-svg",
      -  "p-image",
      -  "grok-imagine-image",
      -  "grok-imagine-image-quality",
      -  "soul-2"
      -]New value: +[
      +  "seedream-5-lite",
      +  "nano-banana-2.1",
      +  "nano-banana-2",
      +  "gpt-image-2.5-flare",
      +  "gpt-image-2.5-sunburst",
      +  "gpt-image-2",
      +  "nano-banana-2-lite",
      +  "seedream-5-pro",
      +  "seedream-5-pro-spicy",
      +  "flux-schnell",
      +  "flux-2-flex",
      +  "flux-2-pro",
      +  "flux-2-max",
      +  "recraft-v4.1-svg",
      +  "recraft-v4.1-pro-svg",
      +  "p-image",
      +  "grok-imagine-image",
      +  "grok-imagine-image-quality",
      +  "krea-3",
      +  "qwen-image-3-pro",
      +  "soul-2"
      +]
  6. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say it's a non-destructive, non-idempotent write. The description adds substantially beyond that: fill-in defaults for missing description/image_prompt/motion_prompt, that a style name miss produces nothing, that no credits are spent, that scenes chain in one write, and that settings silently don't apply to from_media boards. These are exactly the non-obvious behaviors an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but nearly every sentence earns its place, and the three-mode framing is front-loaded. It is long and runs several ideas together in single sentences, which slightly raises parsing cost for an agent skimming it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with nested scene objects, large model enums, and an output schema, the description covers modes, defaulting, failure modes, and follow-up tools. The remaining gaps—what `name` does, scene cast vs board-level cast, the 60-scene cap—are minor since the schema enforces them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 17% schema description coverage the description carries the burden well for the tricky parameters: cast is names of Subjects resolved via list_subjects, settings scoping per mode, and from_analysis' beat-sheet provenance. It leaves `name` and the top-level cast-vs-scene cast relationship unexplained, so it compensates strongly but not completely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a concrete verb and resource and immediately enumerates the three construction modes (written scenes, owned media, analysed video), which no sibling offers—add_scene adds one beat, apply_storyboard_template copies a template. An agent can tell exactly what this creates and how, without reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit mode-selection logic and names the alternatives at each fork: set_scene_clip for owned footage, generate_scene_images for new stills, add_storyboard_sound before rendering, update_storyboard to set settings after a from_media board. It also warns against hand-retyping a beat sheet as scenes, pointing to from_analysis instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources