Skip to main content
Glama

Generate a 360 turn animation

generate_character_turn

PAID (~400 credits — ONE 2-second rotation video). Spins the character through a full 360 so the sprite exists from every side; its frames are also what the directional-pose extractor reads, which is what makes top-down characters usable in more than one facing (isometric projects use top-down characters). ONLY topdown and isometric characters are supported — any other game type errors 400 TURN_NOT_SUPPORTED (topdown_overhead: the engine rotates the sprite image; platformer/point_and_click: side/front views, mirror instead). Eligibility reads the STORED CHARACTER gameType, not its project: a topdown character inside a platformer project is supported. This explicit visible turn is separate from the internal mid-walk rotation that generate_character_animation may plan for eligible directional walk/run clips; do not call it as mandatory setup for every animation. Lands as the animation "turn", or "turn_" when seeded from a pose. An existing turn is NEVER replaced: an occupied name becomes turn_2, turn_3, and so on. It 409s (ENTITY_BUSY) while ANY other job is running on the character, because it rebuilds the spritesheet: poll that job first. Returns { jobId, animation } — poll get_job. A successful 360 pauses at waiting_approval with directionalPoseReview; present all eight previews and call approve_directional_poses before treating the job as complete. DEFAULTS TO A COST PREVIEW — see the dryRun argument.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dryRunNoDEFAULTS TO TRUE. While true this returns only a cost quote ({ estimatedCredits, balance, spendCapDaily, spentLast24h, capRemaining }) and executes nothing. Show the user estimatedCredits and get an explicit yes for that amount, THEN re-call with dryRun:false to actually spend.
seedPoseIdNoRotate a specific DONE pose instead of the character's default image. Lands as "turn_<poseId>".
characterIdYesCharacter id.
idempotencyKeyNoOptional Idempotency-Key for the real (dryRun:false) call. Omit and one is minted per call. Reuse the SAME value when retrying a call that failed with ENTITY_BUSY / 402 / 429 so the retry cannot double-dispatch.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only give generic hints (readOnlyHint: false, openWorldHint: true), so the description carries the burden and delivers richly: paid (~400 credits), 409 ENTITY_BUSY while other jobs run, never replaces an existing turn (uses turn_2/turn_3), defaults to a cost-preview dryRun, and pauses at waiting_approval requiring approve_directional_poses. This goes far beyond the annotations.

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?

The description is long, but nearly every sentence conveys essential operational knowledge: cost, supported types, naming collisions, concurrency, approval flow, and dryRun default. The use of uppercase for critical terms ('PAID', 'ONLY', 'NEVER', 'DEFAULTS TO A COST PREVIEW') helps skimming, and the structure is coherent. It is dense rather than bloated, though it could be slightly tightened.

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, so the description must cover return behavior and it does: returns { jobId, animation }, tells the agent to poll get_job, and instructs presenting all eight previews and calling approve_directional_poses before treating the job as complete. Errors (400, 409), cost preview, parametered behavior, and the alternative to generating a turn are all addressed. Nothing needed to call the tool correctly 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% and the schema already documents all parameters well, so baseline is 3. The description adds meaningful extra context: it explains what dryRun does in the call flow ('Show the user estimatedCredits... THEN re-call'), what idempotencyKey is for (retrying ENTITY_BUSY/402/429 without double-dispatch), and how seedPoseId affects naming ("turn_<poseId>"). That is genuine added value, so a 4.

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?

The description states the specific action ('spins the character through a full 360'), the resource (the character), and why it matters (makes top-down/isometric characters usable in multiple facings). It explicitly differentiates from the sibling generate_character_animation by noting its separate internal mid-walk rotation, so an agent can distinguish it clearly.

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?

The description provides explicit when-to-use and when-not-to-use guidance: only topdown and isometric characters are supported, other game types error 400 TURN_NOT_SUPPORTED, and it should not be called as mandatory setup for every animation. It also explains the relationship to generate_character_animation and the requirement to poll and approve before treating the job as complete.

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.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, and the descriptions are extremely detailed with cross-references (e.g., animate_asset vs frame_animation vs generate_character_animation). A few pairs like reprocess_asset vs revise_asset could be confused initially, but their descriptions and use cases are explicit enough to prevent misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_project, get_asset, cancel_job). Verbs are imperative and nouns are appropriately singular/plural, making the API predictable and readable.

Tool Count2/5

At 41 tools, the server is far beyond the 15-25 range considered reasonable for most APIs. While the domain is broad (project, assets, characters, animations, jobs, exports, credits), the sheer number creates a heavy surface that may overwhelm agents and suggests the API could be consolidated into higher-level operations.

Completeness4/5

The tool set covers the full creative pipeline: project creation, asset/character generation, animation (both AI and frame-based), revisions, exports, and job management. Minor gaps include lack of delete operations for assets/characters/projects and no listing of all jobs, but these are not critical for the core workflow and are likely intentional for a generative art platform.

Resources