pixel-art-mcp

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

Should I use this

Quality & Safety

B
Description quality
70%
Schema completeness
79%
Naming quality
84%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • LOWTool 'pixelate_image' description lacks action verbin pixelate_image
  • LOWTool 'remap_palette' description lacks action verbin remap_palette
  • LOWTool 'upscale_pixel_art' description lacks action verbin upscale_pixel_art

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~873Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (0.68% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "pixel-art-mcp": {
      "command": "npx",
      "args": [
        "simplepixelart-mcp"
      ]
    }
  }
}

Runnable packages

npmsimplepixelart-mcp0.1.1stdio

Remote endpoints

https://mcp.simplepixelart.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪pixelate_image(image_url, image_base64, width, colors, palette, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "format": "uri",
      "description": "Public http(s) URL of a PNG or JPEG (max 4 MB, 2048x2048)"
    },
    "image_base64": {
      "type": "string",
      "description": "PNG or JPEG as base64 (or a data: URL), if there is no public URL"
    },
    "width": {
      "type": "integer",
      "minimum": 4,
      "maximum": 256,
      "default": 64,
      "description": "Width of the pixel grid in pixels (height keeps the aspect ratio)"
    },
    "colors": {
      "type": "integer",
      "minimum": 2,
      "maximum": 64,
      "default": 16,
      "description": "Number of colours when no palette is given"
    },
    "palette": {
      "type": "string",
      "description": "Palette name (pico-8, sweetie-16, endesga-32, game-boy, 1-bit) or hex colours like \"#1a1c2c,#5d275d\""
    },
    "scale": {
      "type": "integer",
      "minimum": 1,
      "maximum": 32,
      "default": 8,
      "description": "Nearest-neighbour upscale of the returned PNG, capped at 1024 px"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢extract_palette(image_url, image_base64, colors)

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

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "format": "uri",
      "description": "Public http(s) URL of a PNG or JPEG (max 4 MB, 2048x2048)"
    },
    "image_base64": {
      "type": "string",
      "description": "PNG or JPEG as base64 (or a data: URL), if there is no public URL"
    },
    "colors": {
      "type": "integer",
      "minimum": 2,
      "maximum": 64,
      "default": 8,
      "description": "How many colours to extract"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪remap_palette(image_url, image_base64, palette)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "format": "uri",
      "description": "Public http(s) URL of a PNG or JPEG (max 4 MB, 2048x2048)"
    },
    "image_base64": {
      "type": "string",
      "description": "PNG or JPEG as base64 (or a data: URL), if there is no public URL"
    },
    "palette": {
      "type": "string",
      "description": "Palette name (pico-8, sweetie-16, endesga-32, game-boy, 1-bit) or hex colours like \"#1a1c2c,#5d275d\""
    }
  },
  "required": [
    "palette"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪upscale_pixel_art(image_url, image_base64, scale)

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

Input Schema

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "format": "uri",
      "description": "Public http(s) URL of a PNG or JPEG (max 4 MB, 2048x2048)"
    },
    "image_base64": {
      "type": "string",
      "description": "PNG or JPEG as base64 (or a data: URL), if there is no public URL"
    },
    "scale": {
      "type": "integer",
      "minimum": 2,
      "maximum": 64,
      "default": 8
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_palettes

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

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools