Skip to main content
Glama

Create Reusable UI Mascot

create_mascot

Create a new reusable SVG App mascot/character for a product UI, SaaS app, website, design system, onboarding flow, empty state, help surface, or brand moment.

Use when the user wants a consistent character that can appear across multiple screens and later be reused in different poses, emotions, actions, or states.

Before calling, read svgapp.conf.json from the project root and pass artStyleId and colorPaletteId from that file when available.

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. After the base mascot is completed, call generate_mascot_pose for UI-specific poses; most UIs should embed a pose rather than the neutral base mascot.

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": {
      "description": "<description>",
      "artStyleId": "<artStyleId>"
    },
    "name": "create_mascot"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoOptional short mascot name. Omit to let SVG App generate a name.
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.
artStyleIdYesArt style id from svgapp.conf.json. If the config file is missing, call init_svgapp_config first.
aspectRatioNoOptional output aspect ratio. Use 1:1 for reusable mascots, 4:3 or 3:4 for UI empty states, and 16:9/9:16 only when the layout needs it.
descriptionYesDetailed character description. Include species/object/personality, product domain, visual style constraints, and any brand traits. Example: 'A friendly rounded fox mascot for a B2B analytics dashboard, curious and helpful, clean vector style.'
colorPaletteIdNoOptional color palette id from svgapp.conf.json. Pass it when the generated mascot should match the app or brand colors.

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.9/5.0
Behavior5/5

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

Annotations only declare readOnly=false, openWorld=true, non-idempotent, non-destructive; the description adds the critical behavior that generation is asynchronous and that returned imageUrl/assetUrl are placeholders that redirect once ready. It also mandates polling before download, which an agent could not infer from structured fields.

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 when-to-use, then prerequisites and async semantics, then the next-step workflow. The long enumeration of UI surfaces ('SaaS app, website, design system, onboarding flow, empty state, help surface...') is the one mildly padded element.

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?

Covers the full lifecycle an agent needs for a non-idempotent, asynchronous generation tool: config prerequisite, placeholder return values, polling, and the recommended downstream pose call. An output schema exists, so return-value detail is correctly left out.

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?

With 100% schema coverage the baseline is 3, but the description adds real routing value: it tells the agent to source artStyleId and colorPaletteId from svgapp.conf.json rather than guessing. It repeats less than it adds, though the aspectRatio guidance is already largely present in the schema.

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 and resource ('Create a new reusable SVG App mascot/character') and scopes it to UI/brand use cases. It is clearly distinct from the sibling generate_mascot_pose, which it names as a follow-up step rather than a substitute.

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 when-to-use criteria ('consistent character that can appear across multiple screens'), a prerequisite (read svgapp.conf.json, else init_svgapp_config), and named follow-ups (poll get_generation_status, then generate_mascot_pose for poses). It even states the default preference that most UIs should embed a pose rather than the neutral base.

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.