Skip to main content
Glama
with-pebbly

aseprite-ai-artist

by with-pebbly

Selection

select
Idempotent

Read or change the active selection to scope drawing, transforms, and recolors. Define rectangles, ellipses, or colour matches, then invert, grow, or shrink instead of masking by hand.

Instructions

Read or change the active selection. Ops: 'get', 'none', 'all', 'rect', 'ellipse', 'color' (select every pixel matching a colour), 'invert', 'grow', 'shrink'. A selection scopes draw, transform and recolor, which is usually cheaper and safer than masking by hand.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
opYes
modeNoHow this selection combines with the existing one.replace
rectNo
colorNoFor op 'color'.
frameNo1-based frame number. Omit to use the active frame.
layerNoLayer name. Omit to use the active layer.
amountNoPixels, for grow/shrink.
spriteNoWhich sprite: its id as '#7' (what every result reports back, and the only unambiguous form — two unsaved documents are both called 'Sprite'), its filename, or its display name. Omit to use the sprite Aseprite has focused.
toleranceNoLargest per-channel difference (0–255) still counted as the clicked colour. RGB sprites only; indexed and grayscale fills stay exact.
contiguousNoFor op 'color'.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
emptyYes
boundsNo
spriteYes
pixelCountYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.5.0
    • addedInput schema / properties / tolerance / description
      Added value: +"Largest per-channel difference (0–255) still counted as the clicked colour. RGB sprites only; indexed and grayscale fills stay exact."
  2. Changed1 schema field changedv0.1.6
    • changedInput schema / properties / sprite / description
      Previous value: -"Sprite filename or id. Omit to use the sprite Aseprite has focused."New value: +"Which sprite: its id as '#7' (what every result reports back, and the only unambiguous form — two unsaved documents are both called 'Sprite'), its filename, or its display name. Omit to use the sprite Aseprite has focused."
  3. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=true and openWorldHint=false, so safety/idempotency are already covered. The description adds genuinely new behavioral context: a selection is state that scopes draw, transform and recolor, which explains the side effects of this tool on other tools. It doesn't say what happens to a prior selection under each op, but with annotations present this is solid added value.

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?

Three tight sentences: purpose first, op inventory second, rationale third. Zero filler; every clause carries information an agent needs.

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?

With an output schema, annotations and a richly described 10-parameter schema, the description covers the conceptual surface well. Its only notable gap is that it never links ops to their required parameters (e.g., rect needs 'rect', color needs 'color'/tolerance/contiguous), which the agent must infer from the schema.

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 80%, so most parameters (mode, frame, layer, amount, sprite, tolerance, contiguous) are already documented — baseline 3. The description goes beyond by explaining the meaning of each op value, including that 'color' selects every pixel matching a colour, which the enum alone does not convey.

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+resource ('Read or change the active selection') and then enumerates all nine ops with brief semantics for the non-obvious ones ('color' = every pixel matching a colour). An agent can distinguish this from draw, transform, recolor and read_pixels without opening any schema.

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?

Provides a clear rationale for using selections: 'A selection scopes draw, transform and recolor, which is usually cheaper and safer than masking by hand.' That tells the agent when a selection is the right mechanism, but it gives no explicit exclusions or routing between ops (e.g., get vs read_pixels) and no prerequisites.

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