Skip to main content
Glama

Make a video

create_video

Render a short branded video (9:16 vertical by default; also square and landscape) and save it to the media library as an mp4 — returning a media id create_post takes as mediaIds. Either a storyboard (template storyboard: the scenes given in scenes, in order, with an optional music bed) or one of the fixed, silent templates in list_video_templates. Pick the canvas by where it goes: vertical for Reels, TikTok, Shorts and Stories (every word is kept clear of the buttons and captions those apps draw over a video, and inside the feed's 4:5 crop), square for X, LinkedIn and other feeds, landscape only for YouTube or a website. Fewer, shorter lines read better: three features beat five. It lays out the user's own pictures, clips and words — no generative model draws anything. It costs 25 of the workspace's monthly credits, taken before rendering and handed back if the render fails; once the month's credits are spent it is refused with the balance — tell the user, do not retry. Render only what the user asked for: confirm the template, the headline and the pictures first when they have not said. Pictures come from the media library: upload_media for a file, capture_screenshot for the website, import_app_screenshots for the App Store or Google Play listing. A shot given by mediaId must be an image. The brand name, tagline and icon are filled in from the brand profile and the workspace unless overridden here; set accent to a #rrggbb colour to give the video the brand's colour. Rendering takes one to five minutes on a shared box, a 30-second storyboard the most. The call waits up to wait seconds (default 40) reporting progress, then returns the finished video — or the render's id and status when it needs longer, in which case call get_video with the id. The result names any field the template leaves out. Nothing is posted anywhere: the video sits in the private library until a post carrying it is published.

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": "<template>",
      "headline": "<headline>"
    },
    "name": "create_video"
  }
}

Input Schema

NameRequiredDescriptionDefault
ctaNoThe closing call to action
bodyNoA sentence of detail (announcement template)
statNoThe number the milestone template counts up to
waitNoSeconds to wait for the render before answering (default 40)
musicNoA music bed under a storyboard: glow (warm and calm — a product walkthrough, a story); pulse (upbeat — a launch, a release, a big number); drift (mellow lo-fi — tips, how-tos, behind the scenes). Leave out for none; the templates are always silent.
shotsNoThe pictures, in order (app_showcase needs at least one; announcement and feature_list take the first)
themeNodark (default) or light background
titleNoA name for the video in the library; defaults to the headline
accentNoBrand colour as #rrggbb
canvasNovertical (9:16, default), square (1:1) or landscape (16:9)
scenesNoThe storyboard template's scenes, in order: 2 to 10, at most 30 s in all, opening on a hook and ending on an end card (see list_video_templates). The other templates ignore them.
featuresNoTwo to five features, for feature_list
headlineYesThe big line the video opens with; for a storyboard, the name it is filed under (its hook scene opens it)
templateYesstoryboard (your own scenes — the one for a reel or a TikTok), or a fixed template: app_showcase, feature_list, announcement or milestone (see list_video_templates)
brandNameNoOverrides the brand name the workspace knows
iconMediaIdNoAn image in the media library to use as the brand mark (the app icon)
subheadlineNoThe line under the headline
workspaceIdNoWhich workspace to act in — an id from list_workspaces. Optional with a single workspace; REQUIRED once there are several, where guessing would mean posting one client's content to another client's accounts. Ask the user which one before publishing.
brandTaglineNoOverrides the tagline; "" for none

Output Schema

NameRequiredDescriptionDefault
okNo
nextNo
mediaNo
renderNo
creditsNo
ignoredNo
posterUrlNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say it is a non-read-only, non-destructive, non-idempotent, closed-world write. The description adds substantive behavior the annotations cannot: 25 monthly credits charged up front and refunded on failure, hard refusal with balance when exhausted, 1–5 minute render time, the wait/status fallback to get_video, brand-profile defaulting, and the key fact that nothing is posted publicly. That is exactly the extra context this dimension rewards.

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?

It is a single dense paragraph, but it is front-loaded with the verb, the output, and the two template modes before pivoting to guidance and cost. A few clauses (e.g. "three features beat five", the 4:5 crop aside) are advisory padding, but nothing is redundant with the schema.

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 a 19-parameter tool with nested scene unions, an output schema already covering returns, and a real cost/time side effect, the description covers what the agent still needs: mode selection, media sourcing, credit and latency behavior, and the async fallback. Nothing material for a correct invocation is missing.

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?

Schema coverage is 100%, so the baseline is 3 and the schema already carries enum meanings and limits. The description still earns above baseline by adding cross-field semantics the schema doesn't: brand name/tagline/icon default from the profile unless overridden here, accent applies the brand colour, and a shot's mediaId must be an image (while clips take video).

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+resource ("Render a short branded video... save it to the media library as an mp4") plus the concrete artifact it produces (a media id that create_post takes as mediaIds). It also distinguishes the two modes (storyboard vs fixed templates from list_video_templates), so an agent can tell it apart from create_variants or preview_post without opening a 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 routing rules: canvas by platform (vertical for Reels/TikTok/Shorts/Stories, square for X/LinkedIn, landscape only for YouTube/web), template selection, and prerequisites (confirm template/headline/pictures when the user hasn't said). It names alternatives for sourcing pictures (upload_media, capture_screenshot, import_app_screenshots) and the follow-up path via get_video, plus an explicit when-not-to-retry rule on credit exhaustion.

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.