Skip to main content
Glama

pixel-art-mcp

Server Details

Turn images into pixel art, extract and remap palettes, and upscale sprites without blur.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
comficker/pixel-art-mcp
GitHub Stars
0
Server Listing
pixel-art-mcp

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct operation: extracting a palette from an image, listing built-in palettes, converting an image to pixel art, remapping an existing pixel art image to a palette, and upscaling pixel art. The boundary between pixelate_image and remap_palette is clear because one creates pixel art from a larger image while the other recolours an existing pixel art image.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: extract_palette, list_palettes, pixelate_image, remap_palette, upscale_pixel_art. There are no mixed conventions or vague names.

Tool Count5/5

Five tools is well-scoped for a focused pixel art utility server. Each tool covers a meaningful step in the palette/pixel-art workflow without obvious redundancy.

Completeness4/5

The surface covers palette discovery, extraction, pixelation, palette remapping, and upscaling, which are core operations for this domain. Minor gaps such as dithering options, explicit resizing/cropping, or format conversion are not present but can be worked around or are outside the focused scope.

Available Tools

5 tools
extract_paletteExtract paletteAInspect

Pull the main colours out of an image (median cut). Returns hex codes plus a GIMP/Aseprite .gpl palette.

NameRequiredDescriptionDefault
colorsNoHow many colours to extract
image_urlNoPublic http(s) URL of a PNG or JPEG (max 4 MB, 2048x2048)
image_base64NoPNG or JPEG as base64 (or a data: URL), if there is no public URL

TDQS

A3.7/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 does disclose the algorithm and the return artifact, which is useful. However it says nothing about whether the operation mutates state, whether the result is stored or ephemeral, how failures (unreachable URL, oversized image) surface, or any cost/rate considerations.

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 zero filler, front-loading the action and following with the output format. Nothing needs trimming.

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?

No output schema exists, and the description compensates by naming both return artifacts (hex codes and a .gpl file). Combined with the fully documented schema, an agent has everything needed to call it 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?

Schema coverage is 100% with three fully documented parameters, including defaults, bounds, and the URL-vs-base64 fallback, so the schema does the heavy lifting. The description adds no parameter-level meaning beyond noting the output palette format.

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 and resource ('Pull the main colours out of an image') and names the algorithm (median cut) plus the output artifact (hex codes and a .gpl palette). It is clearly distinct from remap_palette and list_palettes, though it never explicitly contrasts itself with those siblings.

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?

Usage is only implied: the tool is for extracting a new palette rather than applying an existing one. There is no explicit statement of when to choose this over remap_palette or how it relates to list_palettes, and no preconditions are given.

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

list_palettesList built-in palettesAInspect

List the built-in pixel art palettes and their colours.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the burden. It makes clear the result set is fixed ('built-in') and includes colour values, which is useful. It does not state whether the listing is paginated, how many palettes exist, or the shape of each entry.

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?

One short, front-loaded sentence with no filler. The resource and its contents are stated immediately.

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 zero-parameter read tool with no output schema, the description covers what the tool returns (palettes plus colour data). It stops short of describing the entry format or overall count, which an agent composing a follow-up call might want.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline applies. The stated return content ('palettes and their colours') is a useful hint about what each entry contains.

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?

Names a specific verb (list) and resource (built-in pixel art palettes) with the payload ('their colours'). It implicitly separates itself from extract_palette by scoping to 'built-in', but never names a sibling explicitly.

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 word 'built-in' hints that this is the reference/enumeration tool rather than a palette-derivation tool, but there is no explicit when-to-use or when-not, and it doesn't route the agent to extract_palette or remap_palette.

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

pixelate_imageImage to pixel artAInspect

Turn a photo or illustration into pixel art: shrink it to a pixel grid and reduce it to a few colours (or a named palette). Returns the PNG.

NameRequiredDescriptionDefault
scaleNoNearest-neighbour upscale of the returned PNG, capped at 1024 px
widthNoWidth of the pixel grid in pixels (height keeps the aspect ratio)
colorsNoNumber of colours when no palette is given
paletteNoPalette name (pico-8, sweetie-16, endesga-32, game-boy, 1-bit) or hex colours like "#1a1c2c,#5d275d"
image_urlNoPublic http(s) URL of a PNG or JPEG (max 4 MB, 2048x2048)
image_base64NoPNG or JPEG as base64 (or a data: URL), if there is no public URL

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 carries the full burden, and it does disclose the core behavior (downscale to grid, quantize colors, return PNG). However, it omits that at least one of image_url/image_base64 must be supplied, what happens if both are provided, and any error/failure behavior — meaningful gaps for an unannotated tool.

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?

One front-loaded sentence describing the transform plus a short return statement — zero waste, and the output declaration is placed where an agent will see it immediately.

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?

All six parameters are schema-documented and the return type is stated, so the basics are covered. But with zero required parameters, an agent could call this with no image input at all, and the description never clarifies that a source image is mandatory or how URL vs base64 inputs interact.

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 every parameter (scale, width, colors, palette, image_url, image_base64) is already fully documented with ranges and defaults. The description adds only the vague notion of a 'named palette' and otherwise repeats schema content, so baseline 3 applies.

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 concrete transformation verb chain ('shrink to a pixel grid and reduce to a few colours') and states the output ('Returns the PNG'), so an agent knows exactly what the tool produces. It does not explicitly distinguish itself from siblings like remap_palette or upscale_pixel_art, which is the only thing keeping it from a 5.

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?

Usage is only implied by 'Turn a photo or illustration into pixel art' — there is no explicit when-to-use, no when-not, and no pointer to siblings such as extract_palette or remap_palette for related workflows. The parenthetical '(or a named palette)' hints at a palette-based variant but doesn't route the agent to the palette tools.

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

remap_paletteRecolour to a paletteAInspect

Recolour an existing pixel art image so every pixel uses a colour from the given palette (e.g. PICO-8 or Game Boy). Size is kept. Returns the PNG.

NameRequiredDescriptionDefault
paletteYesPalette name (pico-8, sweetie-16, endesga-32, game-boy, 1-bit) or hex colours like "#1a1c2c,#5d275d"
image_urlNoPublic http(s) URL of a PNG or JPEG (max 4 MB, 2048x2048)
image_base64NoPNG or JPEG as base64 (or a data: URL), if there is no public URL

TDQS

A3.6/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 usefully discloses that size is preserved and the return is a PNG, which are genuine behavioral facts. However it omits what happens with transparency/alpha, whether dithering occurs, how the two image source parameters interact, and any size or rate limits (those live only in the schema).

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 short sentences totalling under 30 words: operation first, then the invariant (size kept), then the return value. Every sentence earns its place and nothing is buried.

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 3-parameter tool with full schema coverage and no output schema, the description covers purpose, the key invariant, and the return type. The one real gap is that the mutual exclusivity of image_url and image_base64 is not stated anywhere, which could lead to a malformed call.

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 all three parameters are already documented in detail, including palette format examples and image constraints. The description's '(e.g. PICO-8 or Game Boy)' only loosely echoes the schema's palette list and adds no new constraint semantics, so baseline 3 applies.

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 (recolour) and resource (pixel art image) with the target resource (a palette), and clarifies the operation is a remap onto a constrained colour set. It is clearly not palette extraction or listing, though it never names the sibling tools to cement the distinction.

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 phrase 'an existing pixel art image' implies the precondition (you must already have an image, unlike generation-style siblings), but there is no explicit when-to-use/when-not, and no mention of extract_palette or list_palettes as the alternatives for palette discovery.

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

upscale_pixel_artUpscale without blurAInspect

Scale pixel art up by a whole number with nearest neighbour, so pixels stay sharp. Output is capped at 1024 px.

NameRequiredDescriptionDefault
scaleNo
image_urlNoPublic http(s) URL of a PNG or JPEG (max 4 MB, 2048x2048)
image_base64NoPNG or JPEG as base64 (or a data: URL), if there is no public URL

TDQS

A3.9/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 add real behavioral disclosure: the resampling method (nearest neighbour, so no blurring) and a hard output constraint of 1024 px. It omits failure behavior, permissions, and what the response contains, but the two disclosed traits are the ones that most affect correct invocation.

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 sentences, zero filler, with the algorithm and the sharpness benefit front-loaded and the output cap as the closing constraint. Nothing repeats the title or name verbatim.

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?

For a tool with no output schema, the description should say what comes back — the description gives only a size cap (1024 px) without output format, delivery (URL vs inline data), or how the two input parameters interact. It is adequate but leaves gaps an agent would hit at call time.

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 baseline is 3. The description reinforces that scale must be a whole number but never states the permitted 2–64 range or the default of 8, and it says nothing about choosing image_url versus image_base64 — leaving the mutually exclusive input path entirely to 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?

States a specific verb (scale up), resource (pixel art), and the exact algorithm (nearest neighbour, whole-number factor), which distinguishes it from the sibling pixelate_image at a glance. An agent can select this tool without opening the schema.

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?

Usage is only implied by 'Scale pixel art up' — the agent must infer that this applies to already-pixelated input rather than photographic images. No explicit when-to-use, when-not-to-use, or reference to alternatives such as pixelate_image or remap_palette.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedextract_palette
    • First observedlist_palettes
    • First observedpixelate_image
    • First observedremap_palette
    • First observedupscale_pixel_art

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to procedurally generate, edit, quantize, and export 2D retro pixel art textures and tilesets for game development, with built-in palettes, dithering, and pixel-level manipulation tools.
    14
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to create, inspect, edit, and export pixel art, sprites, animations, and spritesheets using headless Aseprite, and to convert arbitrary images into indexed pixel art.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to create layered pixel-art sprites and animations, inspect pixels, and export images, spritesheets, GIFs, APNGs, and TrueType pixel fonts. Documents and edits stay local, accessible over stdio MCP or callable directly from a shell.
    26
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.