Skip to main content
Glama

Create Mascot Animation

create_mascot_animation

Create an asynchronous video animation for an existing SVG App mascot.

Use when the user wants a generated UI animation, loading state, onboarding motion, success motion, empty-state motion, product walkthrough character movement, or mascot video based on an existing mascot and optionally specific start/end mascot poses.

Before calling, read svgapp.conf.json from the project root and use activeMascotId as mascotId when available.

The animation starts from the base mascot pose unless startMascotPoseId is provided. It ends at the same pose unless endMascotPoseId is provided. Use list_mascots to recover mascotId and generate_mascot_pose to create specific start or end poses first when the motion needs strong pose control.

Animation generation is asynchronous. This tool returns videoUrl and assetUrl immediately; they serve a frontend placeholder video while pending and redirect to the final transparent WebM video when ready. Poll get_generation_status until completed before downloading the final video.

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": {
      "mascotId": "<mascotId>",
      "prompt": "<prompt>"
    },
    "name": "create_mascot_animation"
  }
}

Input Schema

NameRequiredDescriptionDefault
seedNoOptional numeric seed for reproducibility when retrying a similar animation.
promptYesDescribe the desired motion clearly, for example 'friendly wave, then point at the dashboard panel, subtle bounce, clean product UI animation'.
durationNoOptional duration in seconds. Short UI loops usually work best at 4-6 seconds.
mascotIdYesThe mascot id to animate. Usually use activeMascotId from svgapp.conf.json. If missing, call list_mascots or create_mascot first.
workspaceNoOptional workspace id or slug from list_workspaces. Defaults to the user's personal workspace. Use the same workspace for every call in a workflow, because generations, mascots, and palettes belong to one workspace.
resolutionNoOptional video resolution. Defaults server-side to the product default when omitted.
aspectRatioNoOptional video aspect ratio. Use 1:1 or 4:3 for compact UI embeds, 16:9 for wide product panels, and auto when unsure.
endMascotPoseIdNoOptional pose id for the last frame. Omit to end on the same source as the start frame.
startMascotPoseIdNoOptional pose id for the first frame. Omit to start from the mascot's base image.

Output Schema

NameRequiredDescriptionDefault
statusYesCurrent async state. If pending, poll get_generation_status. If completed, call get_generated_asset.
assetUrlNoEmbeddable asset URL for the generation, matching imageUrl for images and videoUrl for animations. It can be used immediately while polling continues.
canvasIdNoUnderlying SVG App canvas id when the generation produced an image. Kept for UI integration and background removal.
imageUrlNoEmbeddable image URL. It is returned immediately, serves a frontend placeholder while pending, and redirects to the final image when ready.
mimeTypeNoMIME type of the final asset when known, for example image/png or video/mp4.
videoUrlNoEmbeddable video URL for animation generations. It is returned immediately, serves a frontend placeholder video while pending, and redirects to the final transparent WebM video when ready.
nextActionYesThe exact next MCP action the model/client should take for this generation.
animationIdNoUnderlying SVG App video generation id when the generation produced an animation.
resourceUriNoOptional MCP resource URI for clients that explicitly choose to read resources. Do not rely on resources for polling.
generationIdYesPass this exact id to get_generation_status until status is completed. The returned asset URL can be used immediately.

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 declare it is a non-readonly, non-idempotent, open-world write; the description goes well beyond that by explaining the async contract, that videoUrl/assetUrl are immediate placeholders that later redirect to the final transparent WebM, and that polling is required before download. It also discloses the pose defaults (starts and ends at the base pose unless pose ids are supplied), which is non-obvious behavior.

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?

Front-loaded with purpose, then prerequisites, then pose behavior, then the async return contract — a logical order with little filler. Minor redundancy: the start/end pose defaults and workspace advice echo the parameter descriptions, costing a few lines.

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 9-parameter, async, open-world generation tool with an output schema, the description covers the prerequisite config read, workspace consistency, pose preconditions, and the polling lifecycle. Nothing an agent needs to invoke it correctly and follow through to a finished video 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 per-field meaning is already documented; the description adds workflow-level semantics the schema cannot express, notably reading svgapp.conf.json and using activeMascotId, and the rule to keep the same workspace across a workflow. It restates the start/end pose defaults already in the schema, so the added value is real but partly duplicative.

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?

"Create an asynchronous video animation for an existing SVG App mascot" names a specific verb, resource, and modality (video, not pose or still image), which separates it from siblings like generate_mascot_pose and create_generation. The scoping clause "based on an existing mascot" further pins the input requirement.

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?

It enumerates concrete trigger scenarios (loading state, onboarding motion, success motion, empty-state, walkthrough) and explicitly routes the agent to alternatives: list_mascots to recover mascotId, generate_mascot_pose when strong pose control is needed, and get_generation_status for polling. Both when-to-use and when-to-use-something-else are stated.

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.