Create Mascot Animation
create_mascot_animationCreate 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
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional numeric seed for reproducibility when retrying a similar animation. | |
| prompt | Yes | Describe the desired motion clearly, for example 'friendly wave, then point at the dashboard panel, subtle bounce, clean product UI animation'. | |
| duration | No | Optional duration in seconds. Short UI loops usually work best at 4-6 seconds. | |
| mascotId | Yes | The mascot id to animate. Usually use activeMascotId from svgapp.conf.json. If missing, call list_mascots or create_mascot first. | |
| workspace | No | Optional 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. | |
| resolution | No | Optional video resolution. Defaults server-side to the product default when omitted. | |
| aspectRatio | No | Optional video aspect ratio. Use 1:1 or 4:3 for compact UI embeds, 16:9 for wide product panels, and auto when unsure. | |
| endMascotPoseId | No | Optional pose id for the last frame. Omit to end on the same source as the start frame. | |
| startMascotPoseId | No | Optional pose id for the first frame. Omit to start from the mascot's base image. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Current async state. If pending, poll get_generation_status. If completed, call get_generated_asset. | |
| assetUrl | No | Embeddable asset URL for the generation, matching imageUrl for images and videoUrl for animations. It can be used immediately while polling continues. | |
| canvasId | No | Underlying SVG App canvas id when the generation produced an image. Kept for UI integration and background removal. | |
| imageUrl | No | Embeddable image URL. It is returned immediately, serves a frontend placeholder while pending, and redirects to the final image when ready. | |
| mimeType | No | MIME type of the final asset when known, for example image/png or video/mp4. | |
| videoUrl | No | Embeddable 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. | |
| nextAction | Yes | The exact next MCP action the model/client should take for this generation. | |
| animationId | No | Underlying SVG App video generation id when the generation produced an animation. | |
| resourceUri | No | Optional MCP resource URI for clients that explicitly choose to read resources. Do not rely on resources for polling. | |
| generationId | Yes | Pass this exact id to get_generation_status until status is completed. The returned asset URL can be used immediately. |