Skip to main content
Glama

Open the SpriteForge tileset editor

open_tileset_editor

Opens a tileset in SpriteForge's tileset editor as an interactive card where the app shows them, and returns an edit link that opens the same editor in a browser. For a Wang autotile set (16 tiles; tile i is drawn where the map cells at its corners are painted, NW=1 NE=2 SW=4 SE=8, so tile 15 is the solid base; sets SpriteForge derives add 4 variants of tile 15 as tiles 16-19, mixed into painted floors) the user paints a small map to see the tiles chain, draws on the map or on single tiles, and edits the base texture, which re-derives the edge tiles (tiles drawn by hand stay); a platformer set (49 tiles) is edited tile by tile. With session_id it opens a tileset that's already in an edit session, and kind (wang = flat floor terrain, wall, iso) switches that Wang set's preview, keeping its tiles and the user's edits. Otherwise it makes a new set from kind (wang, wall, iso or platformer; default wang) plus palette + tiles (16 or 20 grids for Wang, 49 for platformer, in mask order), palette + base (a seamless square texture; the Wang tiles are derived from it as SpriteForge does), png_base64 (a tileset sheet or a texture), or size alone for a blank set. With png_base64 and no layout, a 16x1 or 20x1 image is a strip, a 4x5 one a sheet, and a square one is a 4x4 sheet when its tiles look like a Wang set in mask order (tile 0 empty, or nearly every tile's corners matching tile 15 where its mask has that corner and tile 0 where it doesn't), else a texture. The result says which view it opened and how it read the PNG. The user's edits save to the edit session.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "open_tileset_editor"
  }
}

Input Schema

NameRequiredDescriptionDefault
baseNoA square seamless texture to derive a Wang set from (its 16 tiles and 4 variants of tile 15).
kindNowang (flat floor terrain), wall (Wang walls), iso (isometric Wang) or platformer. For a new set, default wang. With session_id, wang, wall or iso switches that Wang set's preview, keeping its tiles; a Wang set can't become a platformer set or the other way round.
nameNoThe set's name.
sizeNoTile size for a blank set (default 32).
tilesNoThe set's tiles in mask order (16 for Wang kinds, or 20 with tile 15's 4 variants after them; 49 for platformer), palette indexes, -1 transparent.
layoutNoHow to read png_base64: sheet (4x4 or 4x5 Wang sheet, or a platformer set's 7x7), strip (16x1 or 20x1) or texture (a square base texture the Wang tiles are derived from). Default: guessed from the image (see the tool description).
paletteNoHex colours for tiles or base.
png_base64NoA tileset PNG (a Wang set's 4x4 or 4x5 sheet or 16x1 or 20x1 strip, a platformer set's 7x7 sheet) or a square texture, base64.
session_idNoAn existing tileset edit session, or an edit link containing ?s=<id>. Give kind with it to change a Wang set's preview; the other fields are for a new set.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / base / description
      Previous value: -"A square seamless texture to derive a Wang set's 16 tiles from."New value: +"A square seamless texture to derive a Wang set from (its 16 tiles and 4 variants of tile 15)."
    • changedInput schema / properties / layout / description
      Previous value: -"How to read png_base64: sheet (4x4 Wang sheet, or a platformer set's 7x7), strip (16x1) or texture (a square base texture the 16 Wang tiles are derived from). Default: guessed from the image (see the tool description)."New value: +"How to read png_base64: sheet (4x4 or 4x5 Wang sheet, or a platformer set's 7x7), strip (16x1 or 20x1) or texture (a square base texture the Wang tiles are derived from). Default: guessed from the image (see the tool description)."
    • changedInput schema / properties / png_base64 / description
      Previous value: -"A tileset PNG (a Wang set's 4x4 sheet or 16x1 strip, a platformer set's 7x7 sheet) or a square texture, base64."New value: +"A tileset PNG (a Wang set's 4x4 or 4x5 sheet or 16x1 or 20x1 strip, a platformer set's 7x7 sheet) or a square texture, base64."
    • changedInput schema / properties / tiles / description
      Previous value: -"The set's tiles in mask order (16 for Wang kinds, 49 for platformer), palette indexes, -1 transparent."New value: +"The set's tiles in mask order (16 for Wang kinds, or 20 with tile 15's 4 variants after them; 49 for platformer), palette indexes, -1 transparent."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: it describes the interactive card, returned edit link, session persistence, Wang tile derivation, PNG layout guessing, and how edits behave. It is consistent with the annotations (mutation but non-destructive) and provides rich operational context.

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

Conciseness3/5

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

The purpose and edit-link behavior are front-loaded, but the description is a dense, long paragraph with several run-on explanations. Much of the detail is useful for this complex tool, yet it could be structured more clearly to improve scanability.

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?

Given the tool's complexity, nine optional parameters, and absence of an output schema, the description is very complete. It covers creation modes, session behavior, PNG interpretation, tile derivation, and what the result reports, leaving little important context missing.

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

Parameters5/5

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

Schema coverage is already 100%, but the description adds meaning about parameter interactions: session_id opens an existing session, kind switches previews for Wang sets, and specific combinations of palette, tiles, base, png_base64, and size create different kinds of new sets. The PNG layout guessing rules add useful semantics beyond the schema.

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?

The description names a specific verb and resource: it opens a tileset in SpriteForge's tileset editor and returns an edit link. An agent can distinguish it from sprite-editor tools by the tileset resource, but the description does not explicitly contrast it with siblings such as open_full_editor or open_sprite_in_editor.

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?

It gives clear usage context for session_id versus creating a new set, and explains how kind changes behavior with an existing session. However, it does not explicitly state when to choose this tool over sibling editor tools.

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