Skip to main content
Glama

pixelforge-mcp

MCP server that forges pixel art sprites & game assets using Google Gemini — generate, crop, split & process, all from your AI assistant.

Features

  • AI-powered generation — sprites, animations, backgrounds, thumbnails via Google Gemini

  • Smart post-processing — background removal, auto-crop, pixelation downscale, square padding

  • Sprite sheet splitting — auto-detect and split sheets into individual frames

  • Style presets — neon, retro, gameboy, snes, clean

  • Pure PNG pipeline — zero-dependency PNG encoder/decoder, no native modules

  • Reference matching — pass existing sprites to match visual style

Related MCP server: PixelLabRat

Installation

Claude Code (CLI)

claude mcp add pixelforge npx pixelforge-mcp@latest \
  --env GEMINI_API_KEY=your-api-key

Claude Code (Plugin)

/plugin marketplace add freema/pixelforge-mcp
/plugin install pixelforge-mcp

Restart Claude Code to load the MCP server (check with /mcp).

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "pixelforge": {
      "command": "npx",
      "args": ["-y", "pixelforge-mcp@latest"],
      "env": {
        "GEMINI_API_KEY": "your-api-key"
      }
    }
  }
}

Manual (any MCP client)

Add to your .mcp.json or equivalent config:

{
  "mcpServers": {
    "pixelforge": {
      "command": "npx",
      "args": ["-y", "pixelforge-mcp@latest"],
      "env": {
        "GEMINI_API_KEY": "your-api-key"
      }
    }
  }
}

Requirements

Tools

forge_sprite

Generate a single pixel art sprite with automatic post-processing (crop, bg removal, downscale, square padding).

"Generate a green slime enemy sprite, 48px, retro style"

Required: description, outputPath Optional: size (default: 48), style, background, aspect, square, model, references

forge_animation

Generate animation frames as a sprite sheet, then auto-split into individual frame PNGs.

"Animate a slime bouncing, 4 frames"

Required: description, action, outputPrefix Optional: frames (default: 3), frameDescriptions, names, size, style, model, references

forge_background

Generate a full game background — no cropping, outputs the image as-is.

"Deep space background with stars and nebula, 16:9"

Required: description, outputPath, aspect Optional: style, model

forge_thumbnail

Generate a game thumbnail/screenshot. Pass references for visual consistency with your sprites.

"Space shooter scene with player ship vs alien rows"

Required: description, outputPath Optional: references, aspect (default: 4:3), style, model

process_sprite

Post-process an existing PNG — background removal, auto-crop, sprite sheet splitting.

"Split this sprite sheet into individual frames"

Required: inputPath Optional: outputPath, split, names, threshold, square, padding, skipCrop, skipTransparent

optimize_sprite

Downscale oversized AI images to true pixel art resolution using area-averaging (not blurry bilinear).

"Optimize this 1024px image down to 48px pixel art"

Required: inputPath, size Optional: outputPath, removeBackground, square

Full parameter docs: see docs/tools.md

Models

Alias

Model ID

Notes

nano-banana, banana

nano-banana-pro-preview

Default — best for pixel art

flash, gemini-flash

gemini-3.1-flash-image-preview

Fast, reliable

pro, gemini-pro

gemini-3-pro-image-preview

Best quality

25, gemini-25

gemini-2.5-flash-image

Stable fallback

Prompts

pixel_art_guide

Built-in MCP prompt with comprehensive pixel art generation guidelines — prompting rules, style tips, size recommendations, and best practices.

License

MIT — see LICENSE


Built by Tomas Grasl

Available Tools

8 tools
forge_animationA

Generate pixel art animation frames. Produces a sprite sheet via Gemini, then automatically splits it into individual frame PNGs with background removal and cropping. Returns an array of ready-to-use frame files.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoTarget frame size in pixels (default: 48). Snaps to nearest standard size. Recommended: 16-24 for particle effects/small FX, 32 for item animations, 48 for character animations (PixelLab default), 64 for detailed characters, 96-128 for bosses. Set to 0 to skip downscale.
modelNoModel alias or full ID. Aliases: 25, nano-banana, banana, banana-2, nano-banana-2, gemini-flash, flash, gemini-pro, pro, gemini-25, gemini-flash-25 (default: nano-banana)
namesNoFrame names (default: frame-0, frame-1, ...)
styleNoVisual style preset (default: clean)
actionYesWhat the animation shows (e.g. "bouncing up and down", "walking cycle", "idle breathing")
framesNoNumber of animation frames (default: 3)
squareNoPad each frame to square (default: true)
backgroundNoBackground color for generation. Use "auto" to pick based on description. Use "chromakey" for best transparency (HSV-based green screen removal). Named colors: chromakey, forest, sky, dungeon, lava, ocean, sand, snow, night. (default: black)
referencesNoPaths to existing PNG/JPEG assets to match visual style. The animation frames will be generated in a similar art style, color palette, and detail level as the reference images.
descriptionYesWhat is being animated (e.g. "green slime enemy", "player knight")
useTemplateNoUse grid template reference for precise frame placement (default: false). When true, generates a numbered grid template and sends it as a reference image for more consistent frame splitting.
outputPrefixYesOutput path prefix — frames saved as {prefix}-{name}.png (e.g. "public/assets/games/rpg/slime")
frameDescriptionsNoOptional per-frame descriptions (e.g. ["compressed flat", "stretching up", "at peak"])
useReferenceChainNoGenerate each frame individually using the first frame as style reference (default: true). Produces much more consistent animations than sprite sheet splitting. Each frame is a separate API call with the idle/first frame as reference image.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does disclose key behaviors: uses Gemini to produce a sprite sheet, splits it into frames, applies background removal and cropping, and returns an array of files. However, it omits side effects like file writing (despite outputPrefix) and fails to mention that `useReferenceChain` (a schema parameter) changes the core pipeline from sprite-sheet splitting to per-frame generation, making the described process sometimes inaccurate.

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?

Two tight sentences with no filler. The first sentence states the primary purpose, and the second summarizes the processing pipeline and output. Information is front-loaded and every sentence contributes.

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?

The description gives a useful high-level overview but misses two important contextual points: (1) it presents sprite-sheet splitting as the only process, ignoring the alternate mode controlled by `useReferenceChain`, and (2) it doesn't mention that files are actually saved to disk via outputPrefix. Given the tool's complexity (14 params, no output schema), the description should clarify these variations and output behavior.

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 100%, and each parameter has a detailed description with defaults, recommendations, and examples. The tool description adds no parameter-specific meaning beyond what the schema provides, so the baseline of 3 applies.

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?

The description opens with a specific verb and resource: 'Generate pixel art animation frames.' It clearly distinguishes this tool from siblings like forge_sprite or forge_tileset by explaining the multi-step pipeline (sprite sheet → split → frame files), which indicates a unique capability for producing animation frames rather than static images or sets.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives like forge_sprite (likely for single images) or forge_tileset. There are no usage scenarios, exclusions, or references to sibling tools, leaving the agent to infer context solely from the tool name and pipeline description.

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

forge_backgroundA

Generate a pixel art game background. No post-processing — outputs the full image as-is, ready for use as a game scene background. Use appropriate aspect ratio for your game resolution.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel alias or full ID. Aliases: 25, nano-banana, banana, banana-2, nano-banana-2, gemini-flash, flash, gemini-pro, pro, gemini-25, gemini-flash-25 (default: nano-banana)
styleNoVisual style preset (default: clean)
aspectYesAspect ratio matching your game resolution (e.g. 3:4 for 480x640 portrait game)
outputPathYesOutput file path (e.g. "public/assets/games/invaders/bg.png")
descriptionYesBackground scene description (e.g. "deep space with stars and nebula", "forest clearing at night")

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It explicitly states 'No post-processing' and 'outputs the full image as-is', which clarifies the output behavior. However, it does not mention potential side effects, required permissions, or any limitations, though for a generation tool these are less critical.

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?

The description is concise, two sentences, with the core purpose front-loaded. Every sentence adds value—purpose, behavioral guarantee, and a usage hint—without unnecessary verbosity.

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?

Given the rich input schema (5 parameters, enums, descriptions) and no output schema, the description adequately covers the essential context for a simple generation tool. It clarifies the output format and the key aspect ratio consideration. It lacks some details like output resolution defaults, but the schema and no-post-processing note make it sufficiently complete.

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?

The input schema has 100% coverage, so the description does not need to heavily clarify parameters. It adds a small note about matching aspect ratio to game resolution, which is already implied in the schema's description for 'aspect'. The description adds minimal extra value beyond the schema.

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?

The description clearly states 'Generate a pixel art game background' with a specific verb and resource, and further distinguishes from post-processing tools by noting 'No post-processing — outputs the full image as-is'. This makes it unambiguous what the tool does and differentiates it from siblings like process_sprite.

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 gives practical guidance about aspect ratio ('Use appropriate aspect ratio for your game resolution') but does not explicitly state when to prefer this tool over alternatives like forge_sprite or forge_thumbnail. Usage context is implied rather than explicitly contrasted with sibling tools.

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

forge_item_kitA

Generate multiple pixel art sprites in a single batch. Items are generated together on a grid for visual consistency, then split into individual PNGs. Ideal for item sets, inventory icons, collectibles, or any group of related sprites.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoTarget sprite size in pixels (default: 48). Snaps to nearest standard size.
itemsYesList of item descriptions (max 16). E.g. ["red apple", "banana", "cherry", "grapes"]
modelNoModel alias or full ID. Aliases: 25, nano-banana, banana, banana-2, nano-banana-2, gemini-flash, flash, gemini-pro, pro, gemini-25, gemini-flash-25 (default: nano-banana)
namesNoCustom file names for each item (default: item-0, item-1, ...)
styleNoVisual style preset (default: clean)
squareNoPad each item to square (default: true)
backgroundNoBackground color for generation. Use "auto" to pick based on items. (default: black)
referencesNoPaths to existing PNG/JPEG assets to match visual style.
outputPrefixYesOutput path prefix — items saved as {prefix}-{name}.png (e.g. "public/assets/items/fruit")

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses that items are generated together on a grid, split into individual PNGs, and assures visual consistency. However, it does not mention side effects like file overwriting or cleanup behavior, leaving some gaps.

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?

The description is three sentences with no waste: main action, process, and use cases. Information is front-loaded and every sentence contributes meaning.

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?

Given the tool has 9 parameters and no output schema, the description adequately explains the core workflow (batch generation, grid, split). It mentions the output as PNGs and covers use cases, though it could clarify that the grid is not saved as a separate artifact.

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 100%, so parameter meanings are already well-documented. The description adds context about batch generation and grid alignment but does not elaborate on specific parameters beyond what the schema provides.

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?

The description starts with 'Generate multiple pixel art sprites in a single batch,' clearly stating the verb, resource, and scope. It distinguishes itself from siblings like forge_sprite (single sprite) and forge_tileset by emphasizing batch generation and splitting into individual PNGs.

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 explicitly states use cases: 'Ideal for item sets, inventory icons, collectibles, or any group of related sprites.' This provides clear context for when to use the tool, though it does not explicitly mention alternatives or exclusions.

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

forge_spriteA

Generate a single pixel art sprite. Handles prompt engineering, generation via Gemini, and post-processing (crop, background removal, pixelation downscale, square padding) automatically. Returns a clean, transparent PNG at proper pixel art resolution. Output size snaps to standard pixel art sizes (16, 24, 32, 48, 64, 96, 128).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoTarget sprite size in pixels (default: 48). Snaps to nearest standard size. Recommended: 16-24 for icons/projectiles/powerups, 32 for tiles/small sprites, 48 for game sprites/characters (PixelLab default), 64 for detailed characters, 96-128 for bosses/large objects. Set to 0 to skip downscale.
modelNoModel alias or full ID. Aliases: 25, nano-banana, banana, banana-2, nano-banana-2, gemini-flash, flash, gemini-pro, pro, gemini-25, gemini-flash-25 (default: nano-banana)
styleNoVisual style preset (default: clean)
aspectNoAspect ratio (default: 1:1)
squareNoPad output to square (default: true)
backgroundNoBackground color for generation. Use "auto" to pick based on description. Use "chromakey" for best transparency (HSV-based green screen removal). Named colors: chromakey, forest, sky, dungeon, lava, ocean, sand, snow, night. (default: black)
outputPathYesOutput file path (e.g. "public/assets/games/rpg/slime.png")
referencesNoPaths to existing PNG/JPEG assets to match visual style.
descriptionYesWhat the sprite is (e.g. "green slime enemy with horns", "cyan spaceship", "golden coin")

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and reveals key behaviors: automatic prompt engineering, post-processing steps (crop, background removal, downscale, padding), and standard size snapping. It does not disclose failure modes or file overwrite behavior, but the disclosed pipeline and output format are substantial.

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?

The description is three sentences long, front-loaded with the primary action, and contains no redundancy. Each sentence adds distinct value: scope, pipeline, and output guarantees.

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?

The description covers the overall workflow, output format/resolution, and size behavior, which is solid given the rich schema (9 params). It does not explicitly state that the file is written to outputPath or discuss edge cases, but the schema covers parameters and the output format statement makes it reasonably complete.

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 100%, and the schema already contains rich parameter details (size recommendations, background semantics, model aliases). The description only adds a high-level note about size snapping, which is already included in the size parameter, so it does not materially increase understanding beyond the schema.

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?

The description opens with a specific verb+resource statement ('Generate a single pixel art sprite'), and the word 'single' clearly distinguishes it from sibling tools like forge_animation and forge_tileset. This makes the tool's scope immediately clear.

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?

The description provides clear context by stating the tool handles the full pipeline (prompt engineering, generation, post-processing) automatically, implying it is the go-to for a single finished sprite. It does not explicitly name alternatives or exclusions, but the 'single' qualifier and pipeline coverage give strong contextual guidance.

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

forge_thumbnailA

Generate a pixel art game thumbnail/screenshot. Use reference images to match the visual style of actual in-game sprites. Best for store listings, game cards, and preview images.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel alias or full ID. Aliases: 25, nano-banana, banana, banana-2, nano-banana-2, gemini-flash, flash, gemini-pro, pro, gemini-25, gemini-flash-25 (default: nano-banana)
styleNoVisual style preset (default: clean)
aspectNoAspect ratio (default: 4:3)
outputPathYesOutput file path (e.g. "public/assets/games/invaders/thumbnail.png")
referencesNoPaths to actual game sprite PNGs — STRONGLY RECOMMENDED. The thumbnail will visually match these assets so the preview looks like the real game. Pass the main character, enemies, and key objects.
descriptionYesScene description (e.g. "space shooter, cyan spaceship vs rows of colorful aliens, dark space")

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It adds behavioral context by mentioning reference images for style matching, but it does not disclose side effects like file overwriting, external model invocation, or failure behavior. This is adequate but not comprehensive.

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?

The description is two sentences, front-loaded with the main action, and every sentence provides value. There is no fluff or repetition of schema details.

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?

Given the tool's complexity (6 params, no output schema), the description covers purpose, use cases, and the key reference-image behavior. It could be more explicit about what happens after generation, but the outputPath parameter implies the output. Overall, it is reasonably complete.

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 100%, so the description does not need to explain parameters. It does reinforce the importance of references ('Use reference images to match the visual style'), but this is also already in the schema's references parameter description. Thus the description adds little beyond the schema.

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?

The description clearly states the tool's function: 'Generate a pixel art game thumbnail/screenshot.' It uses a specific verb and resource, and differentiates from sibling tools by focusing on thumbnails for store listings, game cards, and preview images.

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?

The description provides clear usage context with 'Best for store listings, game cards, and preview images' and instructs to 'Use reference images to match the visual style of actual in-game sprites.' It doesn't explicitly exclude other tools, but the unique purpose is implied through the thumbnail focus.

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

forge_tilesetA

Generate a seamless tileable pixel art texture. Produces a square texture that tiles seamlessly in all directions — ideal for terrain, floors, walls, and backgrounds. No background removal is applied; the texture fills the entire canvas.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoTarget texture size in pixels (default: 32). Snaps to nearest standard size. Common: 16 for retro, 32 for standard, 64 for detailed.
modelNoModel alias or full ID. Aliases: 25, nano-banana, banana, banana-2, nano-banana-2, gemini-flash, flash, gemini-pro, pro, gemini-25, gemini-flash-25 (default: nano-banana)
styleNoVisual style preset (default: clean)
outputPathYesOutput file path (e.g. "public/assets/tiles/grass.png")
descriptionYesWhat the texture is (e.g. "grass terrain", "stone brick wall", "wooden floor planks", "water surface")

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully states that 'No background removal is applied; the texture fills the entire canvas,' which are meaningful output characteristics. Yet it omits side effects such as whether the output file is written/overwritten, permission requirements, or return behavior, leaving a moderate gap.

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?

The description is exactly two sentences, front-loaded with the core purpose followed by a key behavioral caveat. There is no redundancy or filler; every sentence earns its place.

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?

For a generation tool with five parameters and no output schema, the description explains the product's nature and critical limitation (no background removal). It does not mention the return value/confirmation or output format, but given the tool's simplicity and the presence of an outputPath parameter, these omissions are minor.

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?

The input schema covers 100% of the parameters, so the baseline is 3. The description does not add parameter-level details like size snapping, model aliases, or style presets beyond what the schema already provides, thus neither enhancing nor harming the semantic clarity.

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?

The description clearly states it 'Generate a seamless tileable pixel art texture' and emphasizes 'tiles seamlessly in all directions,' which sharply distinguishes it from sprite, animation, and background generators in the sibling list. It also adds the specific trait that no background removal is applied, making the purpose unambiguous.

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 provides concrete use cases ('ideal for terrain, floors, walls, and backgrounds') that indicate when to use the tool. However, it does not explicitly mention when not to use it or name alternatives such as forge_sprite or forge_background, so it falls short of a perfect 5.

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

optimize_spriteA

Optimize an existing sprite PNG for pixel art games. Downscales large AI-generated sprites to proper pixel art resolution using area-averaging (not blurry bilinear). Also optionally removes background and crops. Use this to convert oversized "pixel art style" images into true pixel art at game-ready sizes.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeYesTarget size in pixels for the longest side. Snaps to nearest standard size (16, 24, 32, 48, 64, 96, 128). Recommended: 16-24 for icons/particles, 32 for tiles, 48 for sprites, 64 for characters, 96-128 for bosses.
squareNoPad output to square (default: false)
inputPathYesPath to the input PNG file
outputPathNoOutput path (default: overwrites input)
removeBackgroundNoAuto-detect and remove background color (default: true)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the downscaling algorithm (area-averaging vs bilinear), background removal, and cropping, which adds useful behavioral context. However, 'crops' lacks a corresponding schema parameter and is ambiguous (auto-crop to content?), and side effects like overwriting the input are only implied via schema, not described.

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?

The description is two sentences, front-loaded with purpose, and includes a critical algorithmic distinction (area-averaging, not blurry bilinear). Every sentence earns its place with no redundancy.

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?

For a tool with 5 parameters, no annotations, and no output schema, the description covers the core workflow and gives usage context. The ambiguity around 'crops' and the unstated overwrite behavior (though in schema) create minor gaps, but overall it is sufficiently complete for an agent to select and use the tool correctly.

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?

The schema description provides 100% coverage and even includes recommended sizes for the size parameter. The tool description adds no extra parameter-level detail; it merely mentions background removal and cropping, the former already in the schema and the latter not tied to any parameter.

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?

The description clearly states the tool optimizes existing sprite PNGs for pixel art games, with specific actions like downscaling using area-averaging, background removal, and cropping. This distinct purpose is well differentiated from sibling tools such as forge_sprite (likely creation) and process_sprite (generic processing).

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 provides explicit guidance on when to use the tool: 'Use this to convert oversized pixel art style images into true pixel art at game-ready sizes.' This gives clear context, though it does not explicitly name alternatives or state exclusions, so it falls short of a 5.

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

process_spriteA

Post-process an existing PNG image into a clean sprite. Handles background removal, auto-crop, square padding, and sprite sheet splitting. Use this for images from external sources that need processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoNames for split sprites (default: 0, 1, 2, ...)
splitNoSplit sprite sheet into individual sprites by detecting content boundaries
squareNoPad output to square (default: false)
paddingNoPadding around content in pixels (default: 2)
skipCropNoSkip auto-crop step
inputPathYesPath to the input PNG file
thresholdNoColor detection threshold 0-255 (default: 20)
outputPathNoOutput path. For split mode: prefix for frame files (e.g. "assets/snake" → "assets/snake-head.png")
skipTransparentNoSkip background removal step

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It does list the processing steps (background removal, auto-crop, etc.), which is helpful. However, it does not disclose whether the input file is modified in place, what happens if outputPath is omitted, or any side effects like generating multiple files in split mode. This is a notable gap for a tool that processes existing files.

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?

The description is two sentences long with no fluff. The first sentence states the core purpose and key operations, and the second provides usage context. Every word earns its place.

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?

With 9 parameters and no annotations or output schema, the description is somewhat thin. It gives a high-level overview but does not explain the return value or what the output looks like, especially in split mode. The schema covers parameter details, but for a complex tool, more contextual information about side effects and output would be expected.

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?

The input schema has 100% coverage, with descriptions for all 9 parameters. The tool description adds no additional parameter semantics beyond the schema. The baseline for full schema coverage is 3, and the description does not go above that.

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?

Description uses specific verb 'post-process' with resource 'existing PNG image' and lists concrete operations: background removal, auto-crop, square padding, sprite sheet splitting. This clearly distinguishes it from sibling tools like forge_sprite or optimize_sprite, which are more about creation or optimization.

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?

The final sentence 'Use this for images from external sources that need processing' provides a clear context for when to use the tool. It doesn't explicitly state when not to use it or mention alternatives, but the context is sufficiently clear for an agent to make a decision.

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

TDQS

A3.9/5.0
Disambiguation4/5

Each generation tool targets a distinct output type (sprite, animation, background, thumbnail, tileset, item kit), and the processing tools have clear primary functions. However, process_sprite and optimize_sprite both handle background removal and cropping, which could lead to some initial confusion about which to choose.

Naming Consistency3/5

Most generation tools follow a consistent 'forge_<output>' pattern, but the two processing tools break this pattern with 'process_' and 'optimize_' prefixes. This creates two distinct naming conventions within the same server, which is readable but not fully uniform.

Tool Count5/5

With 8 tools, the server is well-scoped for pixel art creation and processing. Each tool has a clear purpose and covers a needed capability without unnecessary redundancy or bloat.

Completeness5/5

The tool set covers the full lifecycle of pixel art assets: generating sprites, animations, backgrounds, thumbnails, tilesets, and item kits, plus processing and optimizing external images. There are no obvious missing operations for this domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/freema/pixelforge-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server