Skip to main content
Glama

validate_sprite_for_game_export

Read-only

Validate sprite files for game export by checking dimensions, color mode, frames, tags, transparency, and palette against your criteria.

Instructions

Check whether a sprite is game-ready against the criteria you specify.

Runs a series of checks: does the file open, do dimensions match (exactly or as
a tile multiple), is the colour mode allowed, are frame counts / required animation
tags present, is the background transparent, is the palette within budget, do
expected export files exist, and is sprite-sheet metadata readable, plus soft
warnings for oversized canvases, missing tags, and default/blank layer names.

All criteria are optional; only the ones you pass are enforced. Returns a
``workflow_manifest.v1`` manifest (kind "validation") with a `validation` section
`{passed, checks[], errors[], warnings[]}`. `validation.passed` is the verdict;
`ok` just means the check ran.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYes
max_framesNo
min_framesNo
required_tagsNo
tile_multipleNo
expected_widthNo
expected_heightNo
expected_exportsNo
max_palette_sizeNo
spritesheet_dataNo
allowed_color_modesNo
require_transparent_backgroundNoDefault: false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed47 schema fields changedv0.10.0
    • removedInput schema / properties / allowed_color_modes / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / allowed_color_modes / default
      Removed value: -null
    • addedInput schema / properties / allowed_color_modes / items
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / allowed_color_modes / title
      Removed value: -"Allowed Color Modes"
    • addedInput schema / properties / allowed_color_modes / type
      Added value: +"array"
    • removedInput schema / properties / expected_exports / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / expected_exports / default
      Removed value: -null
    • addedInput schema / properties / expected_exports / items
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / expected_exports / title
      Removed value: -"Expected Exports"
    • addedInput schema / properties / expected_exports / type
      Added value: +"array"
    • removedInput schema / properties / expected_height / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / expected_height / default
      Removed value: -null
    • removedInput schema / properties / expected_height / title
      Removed value: -"Expected Height"
    • addedInput schema / properties / expected_height / type
      Added value: +"integer"
    • removedInput schema / properties / expected_width / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / expected_width / default
      Removed value: -null
    • removedInput schema / properties / expected_width / title
      Removed value: -"Expected Width"
    • addedInput schema / properties / expected_width / type
      Added value: +"integer"
    • removedInput schema / properties / filename / title
      Removed value: -"Filename"
    • removedInput schema / properties / max_frames / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / max_frames / default
      Removed value: -null
    • removedInput schema / properties / max_frames / title
      Removed value: -"Max Frames"
    • addedInput schema / properties / max_frames / type
      Added value: +"integer"
    • removedInput schema / properties / max_palette_size / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / max_palette_size / default
      Removed value: -null
    • removedInput schema / properties / max_palette_size / title
      Removed value: -"Max Palette Size"
    • addedInput schema / properties / max_palette_size / type
      Added value: +"integer"
    • removedInput schema / properties / min_frames / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / min_frames / default
      Removed value: -null
    • removedInput schema / properties / min_frames / title
      Removed value: -"Min Frames"
    • addedInput schema / properties / min_frames / type
      Added value: +"integer"
    • addedInput schema / properties / require_transparent_background / description
      Added value: +"Default: false."
    • removedInput schema / properties / require_transparent_background / title
      Removed value: -"Require Transparent Background"
    • removedInput schema / properties / required_tags / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / required_tags / default
      Removed value: -null
    • addedInput schema / properties / required_tags / items
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / required_tags / title
      Removed value: -"Required Tags"
    • addedInput schema / properties / required_tags / type
      Added value: +"array"
    • removedInput schema / properties / spritesheet_data / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / spritesheet_data / default
      Removed value: -null
    • removedInput schema / properties / spritesheet_data / title
      Removed value: -"Spritesheet Data"
    • addedInput schema / properties / spritesheet_data / type
      Added value: +"string"
    • removedInput schema / properties / tile_multiple / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / tile_multiple / default
      Removed value: -null
    • removedInput schema / properties / tile_multiple / title
      Removed value: -"Tile Multiple"
    • addedInput schema / properties / tile_multiple / type
      Added value: +"integer"
    • removedInput schema / title
      Removed value: -"validate_sprite_for_game_exportArguments"
  2. First observedv0.7.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered, yet the description goes further by enumerating the actual checks performed, noting which produce hard errors versus 'soft warnings', and clarifying that `ok` means the check ran while `validation.passed` is the real verdict. That is meaningful behavioral context 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?

Two paragraphs, front-loaded with the purpose before the checklist, and the verdict semantics are stated at the end where the reader needs them. It is somewhat dense with the check list, but every item describes a real behavior rather than padding.

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, and the description compensates by describing the returned workflow_manifest.v1 structure (kind 'validation', a validation section with passed/checks/errors/warnings) and disambiguating `ok` from `passed`. Combined with the check enumeration and optional-criteria rule, an agent has everything needed to call and interpret this tool.

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?

With only 8% schema description coverage across 12 parameters, the description carries most of the semantic load, and it does: dimensions (exact or tile multiple), colour mode, frame counts, required tags, transparency, palette budget, expected exports, and spritesheet metadata are all described in prose. It compensates well for the schema gap, though it does not map each check to a specific parameter name.

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 ('Check') plus resource ('sprite') and scope ('game-ready against the criteria you specify'), and the enumerated checklist pins down exactly what 'validate' means here. It is clearly distinguishable from neighboring validators like validate_minecraft_texture or validate_asset_spec, which have narrower or different targets.

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?

It clarifies that all criteria are optional and only supplied ones are enforced, which is useful calling guidance, but it never states when to choose this over validate_asset_spec, validate_minecraft_texture, or assess_sprite. Usage is implied by the 'game export' framing rather than spelled out.

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

Deploy Server

Other Tools