Generate Mascot Pose
generate_mascot_poseGenerate a new pose, emotion, action, or UI state for the active SVG App mascot while preserving mascot continuity.
Use when the user wants the SAME reusable mascot/character to appear in another pose, such as waving, confused, celebrating, pointing, sleeping, holding a sign, holding an object, explaining a feature, empty state, error state, onboarding state, success state, loading state, or account setup state.
Before calling, read svgapp.conf.json from the project root and use activeMascotId as mascotId when available.
Mascots are useful in UIs when a screen needs warmth, guidance, personality, or state-specific feedback: onboarding, empty states, 404/error pages, success confirmations, feature announcements, docs/help panels, upgrade prompts, and friendly dashboard moments. Use a specific pose that matches the screen's job rather than dropping in the neutral base mascot.
Generation is asynchronous. This tool returns imageUrl and assetUrl immediately; they serve a frontend placeholder while pending and redirect to the final image when ready. Poll get_generation_status until completed before downloading the final image. If the final image needs to sit on arbitrary UI backgrounds, call remove_image_background after completion.
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": "<name>"
},
"name": "generate_mascot_pose"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Short pose name for the library, for example 'Empty Search State' or 'Celebrating Deployment'. | |
| prompt | Yes | Describe the exact pose/action/emotion/UI state. Include screen context and any object the mascot should interact with, for example 'holding a magnifying glass over an empty search result panel, curious but upbeat'. | |
| mascotId | Yes | The mascot id to preserve. 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. |
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. |