Skip to main content
Glama

flip_rotate

Flip or rotate a whole sprite, active cels on a layer or frame, or the current selection to adjust orientation and build mirrored or angled pixel art.

Instructions

Flips and/or rotates the whole sprite, the active cel(s) of a layer/frame, or the selection.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
flipNo
saveNoBatch mode: write changes back to the sprite file (default true)
frameNo1-based frame number. Defaults to the active frame (or 1).
layerNoLayer name, 'Group/Child' path, or 1-based index from get_sprite_info. Defaults to the active layer.
rotateNo
spriteNoFile path, open tab title, or sprite id. Defaults to the active sprite (live). Batch mode needs a file path.
targetNo
backendNoauto (default): live Aseprite if connected, else headless batch

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is known. The description adds the operation's scope targets but is silent on whether edits are applied live vs. batched, whether they are undoable, and how flip and rotate combine in a single call. Some useful behavioral context, but notable gaps remain.

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?

A single tight sentence with the operation front-loaded and the affected targets enumerated. No filler, though the enumeration could be slightly better ordered by default scope.

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

Completeness3/5

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

For an 8-parameter mutation tool with no output schema and 63% schema coverage, the description is barely adequate. It never addresses the live-vs-batch distinction, the save behavior, or how simultaneous flip+rotate are applied, leaving an agent to rely on parameter descriptions alone.

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 63% and the schema itself documents the key ambiguities (save defaults true, frame defaults, layer/sprite resolution, backend auto). The description's scope sentence loosely mirrors the target enum but adds no format, ordering, or default information beyond the schema. Baseline 3 is appropriate when the schema carries most of the burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (flips/rotates) and names the resources it affects (whole sprite, active cel(s) of a layer/frame, or the selection). An agent immediately understands the operation and its scope. It doesn't explicitly distinguish itself from siblings, but no sibling overlaps this transform operation.

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

Usage Guidelines3/5

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

The description lists the three operation scopes, which implies when to use the tool, but gives no explicit when-to-use guidance, prerequisites, or alternatives. The caller must infer how target selection interacts with the other parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.