Skip to main content
Glama

rotate_sprite

Turn a sprite into an 8-way set (front, back, sides and diagonals) in one pass. The result is a 'rotations - 8-way' frame whose facings line up with its images; pass those to generate_animation_set to animate each direction. Works best from a side-profile sprite. 20 credits.

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": {
      "id": "<id>"
    },
    "name": "rotate_sprite"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesAsset ID (from list_assets / get_asset or a previous result)
frameIdNoOptional: the frame the new frames hang under in the editor (usually the frame referenceFile came from).
referenceFileNoWork from one image instead of the asset's base: an image key from any of your assets (as get_asset lists it), or its cdn.voidless.dev URL. Empty = the asset's current base image.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent, closed-world behavior, so the description only needs to add what they don't cover. It does: the naming/identity of the produced frame, the chaining requirement to generate_animation_set, a quality caveat about input art, and a 20-credit cost. It does not say whether the source asset is modified or whether new frames are additive, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each doing distinct work: purpose, output identity plus next step, input fitness, and cost. Nothing is repeated from the schema or annotations, and the purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter, non-destructive generation tool with no output schema, the description covers what is produced, how it is named, what to do next, and what it costs. The only meaningful omission is whether the operation mutates or adds alongside the source asset's existing frames.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so id, frameId and referenceFile are already fully documented, and the description adds no parameter-level detail (no mention of when to supply referenceFile vs. relying on the base image). Baseline 3 is appropriate since the schema carries this dimension.

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?

"Turn a sprite into an 8-way set (front, back, sides and diagonals) in one pass" gives a specific verb, resource and output artifact, and names the result frame ('rotations - 8-way'). It is clearly distinguishable from siblings like generate_animation_set, which it positions as the downstream step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent the follow-up path ("pass those to generate_animation_set to animate each direction") and states a fitness condition ("Works best from a side-profile sprite"). It stops short of naming an alternative for non-side-profile sprites or stating explicit exclusions, which keeps it out of 5 territory.

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.

Resources