Skip to main content
Glama

Kalpana Designer

Add a flow

create_flow

Add a flow to a template: some of its pages in order, joined by transitions, as one video. Edits to the pages not yet saved are saved first. By default a page holds for its own duration, so give each page its motion before adding a flow, or update the flow after. Returns the flow with its flow_id and length. Choosing transitions: design_guide topic flows.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "template_id": "<template_id>",
      "name": "<name>",
      "steps": "<steps>"
    },
    "name": "create_flow"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYes
stepsYesThe pages in the order the video visits them. The same page may come twice.
widthNoThe video's width. Left out: the first page's.
heightNoThe video's height. Left out: the first page's.
backgroundNoWhat shows between pages during a fly: #RRGGBB, or "page" for the first page's own look. Default near-black.
descriptionNoWhat this cut of the video is for.
template_idYesThe template, from search_templates or create_design.
background_gradientNoTwo to six #RRGGBB colours to show between pages as a gradient, in place of `background`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / steps / items / properties / hold / description
      Previous value: -"Seconds on this page after its transition. Leave it out and the page's own duration decides, and keeps deciding when that changes."New value: +"Seconds on this stop after its transition; the stop lasts transition + hold, and the page's motion starts when its transition starts. Left out: the page's duration minus the transition (at least 0.5), following the page when it changes; a still page or a layer_id close-up holds 2."
    • changedInput schema / properties / steps / items / properties / layer_id / description
      Previous value: -"Close in on this layer of the page instead of showing all of it. Every type except fly, morph, dissolve and cut needs whole pages on both sides."New value: +"Close in on this layer of the page instead of showing all of it. Every transition works on a close-up; between two stops on one page only fly and cut do."
  2. Changed1 schema field changed
    • changedInput schema / properties / steps / items / properties / show_finished / description
      Previous value: -"Coming back to a page: show it as it ended instead of playing its motion again."New value: +"Coming back to a page: skip its animation and show it at its still time, or where its motion ends without one."
  3. Changed2 schema fields changed
    • addedInput schema / properties / background_gradient
      Added value: +{
      +  "description": "Two to six #RRGGBB colours to show between pages as a gradient, in place of `background`.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / steps / items / properties / transition / properties / anticlockwise
      Added value: +{
      +  "description": "Clock: the hand turns anticlockwise.",
      +  "type": "boolean"
      +}
  4. Changed14 schema fields changed
    • changedInput schema / properties / steps / items / properties / layer_id / description
      Previous value: -"Close in on this layer of the page instead of showing all of it. Push, cover, wipe and dip need whole pages on both sides."New value: +"Close in on this layer of the page instead of showing all of it. Every type except fly, morph, dissolve and cut needs whole pages on both sides."
    • addedInput schema / properties / steps / items / properties / transition / properties / angle
      Added value: +{
      +  "description": "Stripes: the lean in degrees, -60 to 60. Clock: where the hand starts, degrees clockwise from 12.",
      +  "type": "number"
      +}
    • changedInput schema / properties / steps / items / properties / transition / properties / color / description
      Previous value: -"A dip's colour as #RRGGBB. Default black."New value: +"The colour of a dip, flood, rings, stripes, blades, burst or pixel as #RRGGBB. Default black."
    • addedInput schema / properties / steps / items / properties / transition / properties / count
      Added value: +{
      +  "description": "How many: rings 2 to 6, stripes 2 to 24, burst rays 4 to 40.",
      +  "type": "integer"
      +}
    • changedInput schema / properties / steps / items / properties / transition / properties / direction / description
      Previous value: -"Which way a push, cover or wipe moves. Default left."New value: +"Which way a push, cover, wipe, whip, flip, cube or pixel moves; stripes take left or right. Default left."
    • addedInput schema / properties / steps / items / properties / transition / properties / gradient
      Added value: +{
      +  "description": "Two to six #RRGGBB colours to use in place of `color`, left to right.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / steps / items / properties / transition / properties / gradient_angle
      Added value: +{
      +  "description": "Turns the gradient, degrees clockwise.",
      +  "type": "number"
      +}
    • addedInput schema / properties / steps / items / properties / transition / properties / opacity
      Added value: +{
      +  "description": "How solid the colour is, on the types that have one. Below 1 the pages show through and fade across.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / steps / items / properties / transition / properties / order
      Added value: +{
      +  "description": "Which way a pixel's rows set off.",
      +  "enum": [
      +    "random",
      +    "in_order",
      +    "centre"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / steps / items / properties / transition / properties / origin
      Added value: +{
      +  "description": "Where an iris, flood, rings or burst starts: [x, y] as fractions of the page, [0, 0] top left. Default the middle.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "maxItems": 2,
      +  "minItems": 2,
      +  "type": "array"
      +}
    • addedInput schema / properties / steps / items / properties / transition / properties / panels
      Added value: +{
      +  "description": "Where blades close from.",
      +  "enum": [
      +    "sides",
      +    "top_bottom",
      +    "corners"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / steps / items / properties / transition / properties / size
      Added value: +{
      +  "description": "Pixel: the block, 0.02 to 0.25 of the page's long side. Burst: the ray, 0.004 to 0.06.",
      +  "type": "number"
      +}
    • changedInput schema / properties / steps / items / properties / transition / properties / type / description
      Previous value: -"fly: the camera moves across the board. morph: layers with the same name glide to their new places and the rest fade. dissolve: the next page fades in. cut: straight there. push: the next page slides in and shoves this one out. cover: it slides in over this one. wipe: a hard edge crosses the page. dip: down to a colour and up on the next page."New value: +"fly: the camera moves across the board. morph: layers with the same name glide to their new places and the rest fade. dissolve: the next page fades in. cut: straight there. push: the next page slides in and shoves this one out. cover: it slides in over this one. wipe: a hard edge crosses the page. dip: down to a colour and up on the next page. zoom: this page grows away as the next fades up. zoom_through: the camera passes through this page. blur: this page blurs out as the next comes into focus. whip: a very fast smeared push. flip: the pages turn over like a card. cube: the pages are two faces of a turning cube. iris: the next page opens through a growing circle. clock: a hand sweeps round. flood: a circle of colour floods the page, then fades off the next one. rings: rings of colour grow from the middle, then close on the next page. stripes: tilted bands of colour sweep across. blades: two panels of colour slam shut and part on the next page. burst: rays shoot out of the middle, then a circle floods the page. pixel: rows of colour step across in hard blocks."
    • changedInput schema / properties / steps / items / properties / transition / properties / type / enum
      Previous value: -[
      -  "fly",
      -  "morph",
      -  "dissolve",
      -  "cut",
      -  "push",
      -  "cover",
      -  "wipe",
      -  "dip"
      -]New value: +[
      +  "fly",
      +  "morph",
      +  "dissolve",
      +  "cut",
      +  "push",
      +  "cover",
      +  "wipe",
      +  "dip",
      +  "zoom",
      +  "zoom_through",
      +  "blur",
      +  "whip",
      +  "flip",
      +  "cube",
      +  "iris",
      +  "clock",
      +  "flood",
      +  "rings",
      +  "stripes",
      +  "blades",
      +  "burst",
      +  "pixel"
      +]
  5. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the write/reversibility profile (readOnlyHint false, destructiveHint false, idempotentHint false). The description adds genuinely non-schema behavior: unsaved page edits are committed first, the default hold makes a page sit for its own duration, and the call returns the flow with flow_id and length. It does not discuss failure modes or limits beyond the 100-step cap that lives in the schema.

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?

Purpose is front-loaded in the first sentence, followed by prerequisites, return value, and a terse pointer to design_guide. Every sentence carries information, though the hold-default warning is slightly dense and could be read as duplicating the schema's hold description.

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

Completeness5/5

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

For an 8-parameter creation tool with no output schema, the description supplies the missing pieces: return shape (flow_id, length), the implicit save of unsaved page edits, ordering semantics, and where to look for transition guidance. An agent could call this correctly from the description plus schema.

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

Parameters3/5

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

Schema description coverage is 88%, so parameters (including the deeply documented transition object) are already well explained in the schema. The description adds the ordering intent of steps and reinforces the hold default interplay, but does not clarify template_id, width/height, or background beyond what the schema says. Baseline 3 is appropriate.

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?

States a specific verb and resource ('Add a flow to a template') and defines what a flow is: pages in order joined by transitions as one video. It is distinguishable from siblings like update_flow, animate and make_transition without opening any schema.

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

Usage Guidelines4/5

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

Gives a clear operational rule: set each page's motion before adding the flow, or update the flow afterward, and points to design_guide topic flows for transition choice. It does not explicitly say when to prefer create_flow over building the sequence another way (e.g., update_flow on an existing flow), so it stops short of full when/when-not guidance.

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