Skip to main content
Glama

Server Details

Pixel art for your game, from your coding agent. Generate sprites, items and tiles in your game's style (64 to 1024 px), make variants, reskins and N/E/S/W directions, then edit everything in a full pixel art editor that syncs into your project. Works with Claude, Claude Code, Cursor and ChatGPT; sign in with OAuth, no API key.

Ownership verified
Status
Healthy
Uptime
66.7% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.8/5.0

Scored across 24 tools

Disambiguation4/5

Most tools target distinct resources and the descriptions carefully separate kit images (add_style_sample/get_style_set) from style references (list/get/upload_style_reference). Remaining friction is in the generation cluster, where generate_variants, generate_directions, apply_with_ai and reskin_character all operate on an existing sprite and rely on long prose to disambiguate, and between get_style_profile vs get_style_set vs list_style_references.

Naming Consistency4/5

Nearly everything follows a clean snake_case verb_noun pattern (list_assets, get_asset, create_project, generate_pixel_art, update_style_profile). The only real outliers are whoami (no verb) and reskin_character, plus add_style_sample which hides add/replace/remove modes behind one verb.

Tool Count3/5

24 tools is at the heavy end for a sprite-generation server, driven by four separate generation entry points plus parallel library/marketplace and style/kit/reference triplets. Each has a rationale, but several could be folded (e.g. add/remove style sample, list/get marketplace pair).

Completeness3/5

Core lifecycle is covered for generation, credits, projects, folders and styles, but there are notable gaps: no asset delete/rename/move/upload, no folder list or delete, no project delete or rename, and style-sample removal exists only as a flag on add_style_sample rather than a real operation.

Publisher details

Operator
MagicPixel
Operator website
https://magicpixel.art
Vendor relationship
First-party
Trust center
Not available
Restrictions
Needs a MagicPixel account (OAuth sign-in, no API key). Browsing, library and style tools are free; generation tools spend credits from a paid plan or a one-time credit pack.

Available Tools

24 tools
add_style_sampleAdd style set imageAInspect

Add one image to the user's active style kit (a style holds any number of images per type and size; the user picks one as the anchor in Create with AI). subject_category sets the type it frames and replaces that type's anchor (its first image) at that size; add:true keeps the anchor and adds the image beside it; no subject_category adds an untagged image. image_id replaces that exact image. remove:true removes image_id (or, without it, the first image of subject_category at that size). With a MagicPixel style active, uploading makes the user's own copy of it (its images and brief) and activates it; with No style it creates "My style". The result says which. remove never creates one. Rules match the in-app editor: size 128 accepts a 128/256/512/1024 square on an exact 128-pixel grid (stored at 128); size 64 must be exactly 64×64; no soft (partly transparent) edges; max 2 MB. The active style's images steer the look and pixel size of EVERY generation (account-wide), unlike style_reference_id which only guides one call. Seed them from the game's existing art. The user edits the same images in the app (the style picker in Create with AI, ✎ on the style).

Inputs: add, size, remove, image_id, +2 more.

apply_with_aiApply with AI (Merge)AInspect

Merge / Apply-with-AI: apply a donor design (armor, outfit, weapon, hat, accessory, or overall style) onto a target sprite. Pass asset_id (+ artboard) for the target and donor_asset_id (+ donor artboard) OR style_reference_id for the donor. Defaults: preset style, subject character, density quality — infer preset/subject from the request and state your assumptions. Optional fit_to_target scales the donor design to the target subject. Results append to the target file. ~8 credits (HD).

Inputs: asset_id (required), save, preset, density, +11 more.

create_credit_checkoutBuy credits (one-time pack)AInspect

Create a Stripe Checkout URL for a one-time credit pack ($20 → 400 credits, no subscription). Show the checkout_url to the user so they can pay in the browser. After payment, credits appear on get_credit_balance — then retry the generation. Use when get_credit_balance is too low or a tool returns [insufficient_credits] / needsUpgrade.

Inputs: pack.

create_folderCreate folderAInspect

Create a folder inside the signed-in user's library. Scope 'art' is the Files tab; 'component' is the Components tab; 'reference' is the References panel (for upload_style_reference folder_id). Optionally nest under a parent folder or scope to a project.

Inputs: name (required), scope (required), project_id, parent_folder_id.

create_projectCreate projectAInspect

Create a new MagicPixel project owned by the signed-in user. Returns the new project id. Plan limits apply (1 project on free/hobby, more on paid plans).

Inputs: name (required), description.

enrich_promptImprove prompt (active style)AInspect

Rewrite a short prompt into a fully-styled MagicPixel prompt using the brief of the account's active style (same as in-app Improve prompt). Does not spend AI generation credits; subject to daily enrich quota. Prefer get_style_profile / update_style_profile first when no style is active or its brief is empty. When generating more than one asset (Quantity / Quality), pass count so the rewrite is a diverse family brief instead of one locked design. Pass size so a 32px-or-smaller sprite gets a short, minimal rewrite.

Inputs: prompt (required), mode, size, count, +2 more.

generate_directionsGenerate directionsAInspect

Generate other facings of an existing sprite (in-app Directions). source_direction is required — ask the user if it is not obvious. Defaults: density quality, targets = the other cardinals. State the assumptions you used. Only an off-center subject blocks (fix_preflight: true re-centers it); brush/size findings are advisory warnings (fix_preflight: "all" applies them). ~8 credits (HD).

Inputs: asset_id (required), source_direction (required), save, density, +6 more.

generate_pixel_artGenerate pixel artAInspect

Generate new pixel art from a text prompt (in-app Generate → New). Infer sensible defaults and state them instead of interrogating the user: size = the width/height of the project's existing assets (list_assets), else 64; density quality; subject_category inferred from the prompt (character/item/building/ui/texture); no style reference unless the user mentions one (reference_role style). Texture needs 256+. Returns up to four labelled previews and saves every result. ~8 credits (HD). For a ready-made asset, list_marketplace_assets searches the asset library.

Inputs: prompt (required), name, save, size, +9 more.

generate_variantsGenerate variantsAInspect

Generate pixel-art variants of an existing sprite (in-app Variants), or edit it in place with keep_footprint. Source: asset_id (+ artboard_id/artboard_name for multi-artboard files) OR style_reference_id. Defaults when the user does not say: creativity creative, density quality, Variants (not Edit). State the assumptions you used; ask only for what cannot be inferred. Edit = keep_footprint true + custom_prompt (or color_mood alone to recolour only). Replace = creativity "replace" + custom_prompt naming the new object (e.g. "wooden barrel"). Results keep the source artboard size and are appended to the source file. Only an off-center subject blocks (fix_preflight: true re-centers it); brush/size findings are advisory warnings (fix_preflight: "all" applies them). ~8 credits (HD).

Inputs: save, count, labels, density, +16 more.

get_assetGet pixel art asset PNGA
Read-onlyIdempotent
Inspect

Fetch a library asset by id. Single-artboard files return one flattened PNG. Multi-artboard MagicPixel documents (many separate sprites in one file — NOT a packed spritesheet) return an artboard list plus up to 8 individual artboard PNGs; pass artboard_id or artboard_name to fetch one board. Captions include artboard size, content_bbox (tight subject bounds + fill≈%), and Generate-with-AI preflight warnings (off-center / brush mismatch / Shrink|Expand). Only off-center blocks Variants/Directions (fix_preflight: true re-centers); brush and size findings are advisory (fix_preflight: "all" applies them). Reuse artboard size as generate_pixel_art.size when adding sprites to the same set.

Inputs: asset_id (required), artboard_id, artboard_name.

get_credit_balanceGet credit balanceA
Read-onlyIdempotent
Inspect

Return the signed-in user's remaining and used MagicPixel AI credits, plus their plan and the live mcp_version.

Inputs: no named parameters.

get_generation_resultGet generation resultA
Read-onlyIdempotent
Inspect

Collect a generation that answered "Still generating": returns its previews, saved asset and credits once done (waits up to ~20 s), or says it is still running.

Inputs: run_id (required).

get_marketplace_assetGet asset library item detailsA
Read-onlyIdempotent
Inspect

Fetch one asset library item by id (metadata + optional preview image + structuredContent). Use after list_marketplace_assets. listing_kind=pack means N separate artboards (not an animation); artboard_names / contents confirm an item (e.g. amulet) is in the pack. Subscribers open or drag it onto their canvas from the editor's Assets tab.

Inputs: marketplace_asset_id (required).

get_style_profileGet the active styleA
Read-onlyIdempotent
Inspect

Read the account's active style: its name, brief (the game's world and look, which every generation and enrich_prompt use), how many example images it has, and the account's styles with the active one marked. A style is its images and its brief; size and camera come from each call.

Inputs: no named parameters.

get_style_referenceGet style reference imageA
Read-onlyIdempotent
Inspect

Fetch a style reference by id and return its image (PNG/JPEG/WebP/GIF) so you can visually pick among list_style_references results. Does not spend credits. Pass the same id as style_reference_id to generate_pixel_art / apply_with_ai / generate_variants.

Inputs: style_reference_id (required).

get_style_setGet active style setA
Read-onlyIdempotent
Inspect

The active style's images (your own style's, a MagicPixel style's, or none with No style): id, subject_category, size_band, dimensions. Metadata only. The active style's images steer the look and pixel size of EVERY generation (account-wide), unlike style_reference_id which only guides one call. Seed them from the game's existing art. The user edits the same images in the app (the style picker in Create with AI, ✎ on the style).

Inputs: no named parameters.

list_assetsList pixel art assetsA
Read-onlyIdempotent
Inspect

List the signed-in user's pixel art assets. Optionally filter by project_id, marketplace_asset_id, or search by name substring. Returns metadata (id, name, width, height, updated_at; no thumbnails unless include_thumbnails). Reuse width/height as generate_pixel_art.size when adding sprites to the same game set. Marketplace-acquired clones may include marketplace_asset_id, catalog_category, catalog_genre, and suggested subject_category — call get_asset to fetch PNGs. Multi-artboard documents list separate artboards via get_asset (they are not packed spritesheets).

Inputs: limit, search, project_id, include_thumbnails, +1 more.

list_marketplace_assetsList marketplace assetsA
Read-onlyIdempotent
Inspect

Browse MagicPixel's ready-made asset library (the editor's Assets tab, free for subscribers). Returns id, name, description, dimensions, tags, preview_url, category, genre, listing_kind (single|pack), artboard_count, contents / artboard_names, matched_items (when search hits a pack item name), cell_count, is_animated, frame_count. Packs (listing_kind=pack) are multi-artboard item sets — one file with N artboards, not an animation. Filter by category / genre / listing_kind / size / is_animated / search. Size: min_size and max_size each require BOTH width and height in range — use min_size=64 + max_size=64 for exact 64×64. Paginate with offset + limit; sort newest|name. Next: get_marketplace_asset to preview one; the user opens or drags it from the editor's Assets tab. Search matches name, description, pack contents (artboard names), tags, category, genre. artboard_names lists artboards in order (length = artboard_count, capped at 256); contents is the distinct-name index. Placeholder descriptions are returned as null. Older listings may have null category until curated — omit category or use search. If no matches: broaden filters once, then fall back to generate_pixel_art with the same size the user/game uses.

Inputs: sort, tags, genre, limit, +7 more.

list_projectsList projectsA
Read-onlyIdempotent
Inspect

List the signed-in user's MagicPixel projects (id and name).

Inputs: no named parameters.

list_style_referencesList style referencesA
Read-onlyIdempotent
Inspect

List the signed-in user's style reference images (id, name, folder, project, updated_at, plus source_prompt and width/height when stored). Excludes trash. Metadata only — call get_style_reference to preview an image, then pass its id as style_reference_id to generate_pixel_art / generate_variants / apply_with_ai.

Inputs: limit, project_id.

reskin_characterReskin a rigged character (beta)AInspect

Beta, for invited accounts only. New skin for a Spine-rigged character, the editor's Character skins → Reskin…: paints a concept of the new look over the character's front/side/back views, then repaints every part of the skin on one sheet and saves them as a new skin folder beside the original (same file names, so the rig animates it; the original is unchanged). One call = both sheets (2 generations, ~16 credits). Use concept_only to show the concept first (~8 credits), then call again with its concept_id to paint the parts (~8 credits).

Inputs: skin_folder (required), outline, concept_id, description, +4 more.

update_style_profileUpdate the active styleA
Idempotent
Inspect

Switch the account's active style and/or set its text. active_style picks one of the account's styles by name (get_style_profile styles) or "No style". brief replaces the active style's; with No style active it creates a new style (named by name) and make it active. Every generation uses the active style. Tell the user what you set; they can change it from the style picker in Create with AI.

Inputs: name, brief, active_style.

upload_style_referenceUpload style referenceAInspect

Upload an image into the signed-in user's MagicPixel References library (same as in-app References + / AI picker Save). Returns style_reference_id for generate_pixel_art and apply_with_ai. Prefer PNG/JPEG for MCP generation (WebP/GIF store OK but generation gates require PNG/JPEG). Does not spend credits.

Inputs: name (required), image_base64 (required), folder_id, project_id.

whoamiWho am IA
Read-onlyIdempotent
Inspect

Return the signed-in MagicPixel user id (and email when present), plus the live MCP server version. Use to verify OAuth; the text includes how to refresh a stale tool catalog.

Inputs: no named parameters.

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources