Skip to main content
Glama

A2UI Atomic Catalog

make_film

Read-onlyIdempotent

Make a short motion film (a social clip, launch teaser, quote card...) built by the A2UI Design Studio: you choose a template and supply the words; the studio builds the film. Use this instead of composing motion_timeline blocks yourself. It plays inline here and comes with a link that opens in the A2UI Studio app on Android, where the user can edit the text and export MP4 or GIF on the phone.

BEFORE CALLING, ask the user in one short message for what you do not know: what it is about (the hook line), any real numbers with their labels, the call to action, and where it will be posted (portrait 9:16 for LinkedIn/Instagram/stories, 16:9 for slides or YouTube, 1:1 for a quote card). Never invent statistics: with no real numbers, use scenes without a Numbers or Chart scene.

Templates (each a ready scene sequence; pass scenes to replace it): launch: Product launch, Title, numbers, phone, call to action (16:9; scenes title > stats > device > cta) data: Data story, Chart, numbers, steps (16:9; scenes title > chart > stats > steps) agent: Agent demo, Chat, particle word, CTA (16:9; scenes chat > word > cta) quote: Quote card, A quote and a name (1:1; scenes quote > cta) hook: LinkedIn hook, Portrait: captions, numbers, CTA (9:16; scenes captions > stats > cta) client: Client feature demo, Title, features that light up beside your pictures, CTA (16:9; scenes title > features > cta) event: Event promo, Particle word, title, photo, CTA (16:9; scenes word > title > morph > cta)

Scene types and their fields (fields keys; text supports word for the accent colour; list fields take one item per line in the format the label gives): title (Title): eyebrow = Eyebrow; headline = Headline (use word for accent); sub = Subline stats (Numbers): kicker = Kicker; stats = Stats, one per line: value | label; roll = Number style chart (Chart): heading = Heading; kind = Chart; data = Data, one per line: label value; unit = Unit chat (Chat): heading = Heading; messages = Messages, alternating you / agent word (Particle word): word = Word (A-Z 0-9, up to 12); sub = Subline features (Feature walkthrough): heading = Heading; features = Features (2-6): a title, a line of detail and an optional picture each; images = collage (Collage swap): heading = Heading; sets = Sets of tiles, up to 4, separated by a blank line. One tile per line: label | optional picture link (2-6 tiles a set); hold = Seconds each set stays (0.8 to 8); swap = Seconds the swap and outline change take (0.4 to 3); fx = Panel outline bubbles (Bubbles title): heading = Heading; count = Bubbles (2-14) beats (Beat countdown): items = One word or number per beat, 2-8 lines (fades; keep each beat over 0.35 s) dock (Icon dock): heading = Heading; items = Icons, one per line: glyph | name (2-7) lit (Cards light up): heading = Heading; cards = Cards, one per line: title | text (2-6) arcs (Arc mark): heading = Heading; effect = Effect lockup (Centred lockup): lines = Lines, one per line; write {mark} where the arc mark goes (up to 4 lines); effect = Effect pattern (Text pattern): text = Repeated text; word = One word turned on its side (optional); angle = Angle (-90 to 90) fit (Fill-the-width word): word = Word (up to 20 characters); recede = Recede at the end; effect = Effect morph (Shape morph): heading = Heading; shapes = Shapes (comma list; also panel, notch, step, tab); wide = Wide panel (1.78:1); effect = Effect image (Photo): heading = Heading; url = Image URL (https); caption = Caption device (Phone): heading = Heading; items = Checklist on the phone captions (Captions): sentence = Sentence (lights word by word) steps (Steps): heading = Heading; steps = Steps, one per line (2-6) quote (Quote): quote = Quote; name = Name; role = Role cta (Call to action): headline = Headline; b1 = Button 1 text; l1 = Button 1 link; b2 = Button 2 text; l2 = Button 2 link; foot = Footer line

Give the user the returned link as well as showing the film.

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>"
    },
    "name": "make_film"
  }
}

Input Schema

NameRequiredDescriptionDefault
lookNoColour preset. Default: the template's.
paceNoTiming preset for scene length and transitions. Default: the template's.
titleNoFilm title (also the file name when exported).
aspectNoOverride the template aspect.
scenesNoScenes in order, replacing the template's. Omit to keep the template's scenes with its sample words.
templateYesStarting template.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint true and destructiveHint false, so safety is covered. Beyond that, the description discloses real behavior: the film plays inline, a `link` is returned that opens in the A2UI Studio app on Android, and the user can edit text and export MP4/GIF on the phone, plus the instruction to hand the user the `link`. It does not discuss limits on template/scene substitution beyond maxItems in the schema, but the behavioral picture is substantially richer than the annotations alone.

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 and the substitution rule are front-loaded, then templates, then scene-type reference — a logical progression with labelled blocks. The bulk is reference material that earns its place because `fields` is untyped in the schema, though some per-field lines are near-tautological ("heading = Heading") and the whole block is long enough that trimming would help.

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?

There is no output schema, yet the description covers what comes back (inline playback plus a `link`) and what to do with it. Combined with the template catalogue, scene-field reference, aspect guidance and the BEFORE CALLING checklist, nothing an agent needs to call this correctly is missing.

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

Parameters5/5

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

Schema coverage is 100%, so baseline would be 3, but the schema leaves `fields` as an untyped object while the description documents every field key for all 22 scene types (e.g. stats = "value | label" one per line, collage hold 0.8–8, word max 12 chars). It also explains the relationship between `template` and `scenes` (scenes replace the template's) and what each template's ready scene sequence is — meaning the schema cannot convey.

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 ("Make a short motion film… built by the A2UI Design Studio") with concrete examples (social clip, launch teaser, quote card) and explains the division of labour: the agent picks a template and supplies words, the studio builds the film. It explicitly distinguishes itself from hand-composing motion_timeline blocks, so an agent can tell what it is for without opening 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 a clear when-to-use rule ("Use this instead of composing motion_timeline blocks yourself") plus prerequisites in a dedicated BEFORE CALLING block: collect hook line, real numbers, CTA and destination platform. It even encodes platform-to-aspect mapping and an explicit prohibition ("Never invent statistics"), which is exactly the when-and-how guidance an agent needs.

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.