Skip to main content
Glama

sprite_tools_normal_map

Normal map for a sprite or sprite sheet, for 2D lights in Unity URP 2D and Godot: a rounded bevel from the silhouette plus surface detail, alpha kept, OpenGL or DirectX; a height map and a preview lit by a moving light. Price: $0.05 USDC via x402, charged only on success. Part of Sprite tools: 2D sprite jobs for games: cut sprites out of their background (exact for one-color backgrounds, AI for busy ones), turn animation videos into aligned sprite sheets, make normal maps for 2D lights, build 47-tile autotile sets with Tiled, Godot and Unity rules, slice a sheet into frames, pack frames into an atlas with TexturePacker and Unity metadata, and turn upscaled or AI-generated pixel art into real pixel art on its true grid with a limited palette..

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": "sprite_tools_normal_map"
  }
}

Input Schema

NameRequiredDescriptionDefault
bevelNoRim width in pixels; from the sprite size when omitted.
imageNoBase64 PNG sprite or sheet with transparency.
detailNoHow much surface detail from the colors goes into the bumps.
imageUrlNo
strengthNo
conventionNoopengl (green up) for Unity and Godot.opengl

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses the x402 payment model and price ($0.05 USDC, charged only on success), that alpha is preserved, and that output includes a height map and a preview rendered under a moving light. It does not address permission/auth needs or the fact that neither image nor imageUrl is marked required.

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 operative content is front-loaded and dense in a single run-on semicolon sentence, which is efficient. However, roughly half the text is a generic catalog of sibling sprite tools that is boilerplate across the family rather than something this tool's caller 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?

There is no output schema, and the description compensates by naming the returned artifacts (normal map, height map, lit preview) and the cost model. What remains missing is input source guidance – with zero required parameters it is unclear whether image or imageUrl must be supplied.

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 coverage is 67%, so the schema already documents bevel, detail and convention. The description adds real meaning beyond it for convention ('opengl (green up) for Unity and Godot') and for detail ('surface detail ... bumps'), but never addresses strength or imageUrl, which has no schema description at all.

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+resource: it produces a normal map from a sprite or sprite sheet for 2D lights, and names the target runtimes (Unity URP 2D, Godot). The trailing family catalog incidentally distinguishes it from siblings like remove_bg, autotile and pixelate, though it never says 'this is not X' directly.

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?

Gives clear application context – normal maps for 2D lights in Unity URP 2D and Godot – and the family list implies the sibling boundaries. It offers no explicit exclusions or pointer to an alternative (e.g. texture_tools_pbr) when a normal map is not what is wanted.

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