game-art-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| art.get_project_contextA | Returns the full art context: project config, active style definition, all rule categories, and palette. |
| art.get_styleA | Returns the active style definition. Optionally specify style_id and version to look up a specific style. |
| art.get_style_rulesB | Returns the rules for a specific category of the active style. |
| art.get_paletteB | Returns the color palette for the active style. |
| art.validate_styleB | Validates the active style configuration and returns any errors found. |
| art.asset.getA | Get a registered asset by its ID. Returns the full asset record. |
| art.asset.findA | Search and filter registered assets. All parameters are optional; omit all to return every asset. |
| art.asset.existsA | Check whether an asset with the given ID exists in the registry. |
| art.asset.registerA | Register a new asset in the registry. Validates schema, style reference, source file, and relationships. |
| art.asset.updateC | Update an existing asset. Provide the asset ID and a patch object with fields to change. |
| art.asset.deprecateC | Mark an asset as deprecated. |
| art.asset.archiveB | Archive an asset (remove from active use). |
| art.asset.rebuild_indexA | Rebuild the asset registry index from all registered asset files. |
| art.memory.get_summaryA | Get a summary of the art memory: anchor count, active decisions, active rejections, total references. |
| art.memory.explain_styleA | Explain the current or specified style: core rules, canonical anchors, important decisions, things to avoid, and history. |
| art.memory.resolve_referencesD | Resolve relevant references, anchors, decisions, and rejections for a given context. Returns categorized results. |
| art.memory.get_anchorA | Get a style anchor by its ID. |
| art.memory.find_anchorsC | Search for style anchors with optional filters. |
| art.memory.add_anchorC | Add a new style anchor to the art memory. |
| art.memory.get_referenceC | Get an approved reference by its ID. |
| art.memory.find_referencesC | Search for approved references with optional filters. |
| art.memory.add_referenceC | Add a new approved reference to the art memory. |
| art.memory.get_rejectionA | Get a rejection record by its ID. |
| art.memory.find_rejectionsC | Search for rejection records with optional filters. |
| art.memory.add_rejectionB | Add a new rejection record to the art memory. |
| art.memory.get_decisionA | Get an art decision record by its ID. |
| art.memory.find_decisionsB | Search for art decision records with optional filters. |
| art.memory.add_decisionC | Add a new art decision record to the art memory. |
| art.memory.get_style_historyB | Get the full style evolution history. |
| art.qa.assetA | Run QA checks on a single asset. Returns a full QA report with all rule results. |
| art.qa.batchA | Run QA checks on multiple assets at once. Returns a batch report with individual results. |
| art.qa.gateB | Run a QA gate check on an asset. Returns pass/fail verdict with full report. |
| art.qa.list_rulesA | List all available QA rules with their definitions. |
| art.qa.ruleA | Get the full definition of a specific QA rule by its ID. |
| art.qa.explain_failureA | Explain why a specific QA rule failed for an asset. Returns rule definition, issue details, and context. |
| art.qa.historyC | Get QA run history. Optionally filter by asset ID. |
| art.provider.listA | List all registered art providers with their metadata. |
| art.provider.getA | Get detailed metadata for a specific provider. |
| art.provider.capabilitiesB | Get the capabilities of a specific provider. |
| art.provider.healthB | Check the health status of a specific provider. |
| art.provider.executeC | Execute an art generation operation via a provider. |
| art.provider.cancelC | Cancel a running provider operation. |
| art.provider.operationC | Get the status of a provider operation. |
| art.provider.artifactB | Get details of a generated artifact. |
| art.provider.health_allA | Check health of all registered providers. Returns a map of provider ID to health status with latency and consecutive failure count. |
| art.provider.analyzeB | Analyze a PNG file using the canvas-analysis provider. Runs local analysis (signature, clusters, palette) without external APIs. |
| art.provider.fallbackC | Execute an art operation with fallback — tries the primary provider, falls back to a secondary on failure. |
| art.production.planB | Create a production plan for an art asset (inspect before executing). |
| art.production.createB | Create a production job (plan + persist, does not start execution). |
| art.production.startC | Start executing a production job. |
| art.production.statusC | Get the current status of a production job. |
| art.production.inspectC | Get full details of a production job including events, attempts, and plan. |
| art.production.resumeA | Resume a failed or interrupted production job. |
| art.production.cancelC | Cancel a production job. |
| art.production.attemptsB | Get the attempt history for a production job. |
| art.production.approveB | Approve a production job that is awaiting approval, moving it to completed. |
| art.production.listB | List all production job IDs. |
| art.asset.currentB | Get the canonical (current) version number of an asset. |
| art.asset.inspect_versionB | Get details of a specific asset version. |
| art.asset.historyC | Get the full version history of an asset. |
| art.asset.compareB | Compare two versions of an asset. |
| art.asset.provenanceC | Get version provenance including approval record. |
| art.asset.approval.requestC | Request approval for a candidate asset. |
| art.asset.approval.inspectB | Get an approval record by ID. |
| art.asset.approveC | Approve a candidate asset. |
| art.asset.rejectC | Reject a candidate asset. |
| art.asset.request_changesC | Request changes on a candidate asset. |
| art.asset.promoteC | Promote an approved candidate to become the canonical version. |
| art.asset.rollbackB | Rollback the canonical version to a previous version. |
| art.asset.archive_versionC | Archive a canonical asset, removing it from active use. |
| art.pipeline.analyzeB | Analyze a reference image. Returns palette, silhouette, composition, pixel characteristics. Provide either a file path or reference_id of an already-uploaded reference. |
| art.pipeline.specB | Build an ArtSpecification from a reference analysis + active style. The spec defines canvas, palette, outline, shading constraints for pixel art generation. |
| art.pipeline.planA | Build a 7-stage ArtPlan (silhouette-first) from an ArtSpecification. The plan defines ordered generation stages with QA checkpoints. |
| art.pipeline.scoreC | Compute visual quality score for a pixel art asset. Scores silhouette, palette, composition, pixel cleanliness, and style match. |
| art.tilemap.register_tilesetB | Register a tileset definition with semantic tile metadata. Each tile gets an ID, terrain, walkability, collision info. |
| art.tilemap.list_tilesetsA | List all registered tileset definitions. |
| art.tilemap.resolve_tilesA | Resolve semantic tile names to tileset local IDs. Use to verify tile names before building a map. |
| art.tilemap.create_specC | Create a MapSpecification for tilemap generation. Defines map size, biome, layers, objects, terrain rules. |
| art.tilemap.validateA | Validate a MapSpecification against its tileset. Checks missing tiles, invalid refs, style mismatch, object bounds. |
| art.tilemap.build_opsB | Generate TiledMCP operations from a MapSpecification. Returns the operation sequence for TiledMCP provider execution. |
| art.canvas.createB | Create a new pixel canvas session for drawing. |
| art.canvas.set_pixelB | Set a single pixel on the canvas. |
| art.canvas.draw_rectB | Draw a rectangle on the canvas. |
| art.canvas.draw_lineA | Draw a line between two points using Bresenham algorithm. |
| art.canvas.draw_circleB | Draw a circle on the canvas. |
| art.canvas.fillB | Flood fill an area starting from a point. |
| art.canvas.draw_noiseC | Fill a region with random noise using specified colors. |
| art.canvas.draw_ditherB | Apply a dither pattern to a rectangular region. |
| art.canvas.get_stateA | Get the current canvas state as a color map (2D hex array) or base64 PNG. |
| art.canvas.analyze_refA | Analyze a reference image: extract dimensions, color palette with counts, and 2D color map. |
| art.canvas.saveA | Save the current canvas to a PNG file. |
| art.canvas.batch_drawA | Execute multiple draw commands in a single call for efficiency. Each command references a canvas tool name and its params. |
| art.canvas.clearB | Clear the entire canvas, optionally filling with a color. |
| art.canvas.get_pixelB | Read the color of a single pixel on the canvas. |
| art.detail.planB | Create a detail art plan for an asset, specifying subject, resolution, materials, and detail profile. |
| art.detail.executeC | Run the full detail pass pipeline on an existing canvas session. Requires content already drawn on canvas. |
| art.detail.passC | Run a single named detail pass on a canvas session. |
| art.detail.clusterC | Create a pixel cluster on the canvas at a given position with a specified shape. |
| art.detail.textureC | Apply a texture pattern to a rectangular region on the canvas. |
| art.detail.materialB | Apply a full material treatment (all texture patterns for that material) to a region. |
| art.detail.crackB | Add crack patterns to a region (stone, ice surfaces). |
| art.detail.grainA | Add directional grain lines to a region (wood, cloth). |
| art.detail.speckleA | Add scattered speckle dots to a region (dirt, stone, skin). |
| art.detail.cavityB | Add cavity details (dark center with light rim) to a region. |
| art.detail.highlightC | Add highlight clusters to a region for specular/light reflection. |
| art.detail.shadowA | Add shadow clusters to a region for depth/occlusion. |
| art.detail.edge_breakB | Apply edge breakup to avoid perfectly geometric silhouettes. |
| art.detail.clean_clustersC | Cleanup pass: merge orphan/isolated pixels into nearest larger cluster. |
| art.critic.evaluateB | Run the art critic to evaluate canvas quality with spatial scoring and issue detection. |
| art.critic.refineC | Execute refinement actions from a critique to improve canvas quality. |
| art.style.compileB | Compile style constraints for a subject — merges style definition, optional material profile, and resolution into a flat StyleConstraints object. |
| art.style.checkA | Run style consistency check on a canvas session — compares canvas content against compiled style constraints. |
| art.style.repairA | Generate a repair plan from a style consistency check — identifies actions to fix style issues on a canvas. |
| art.style.bootstrapA | Get session bootstrap context — assembles project config, style, canonical assets, anti-patterns, and recent decisions into one payload. |
| art.ref.retrieveB | Smart ranked reference retrieval — scores and returns top assets by canonical status, style match, material match, and recency. |
| art.ref.packB | Build a reference pack for generation — combines style constraints, canonical references, negative examples, and material palette. |
| art.ref.canonicalA | Get canonical assets for a type/material — filters retrieve results to only canonical status entries. |
| art.memory.signatureA | Compute a visual signature (deterministic fingerprint) for a canvas session — color distribution, cluster stats, edge complexity, etc. |
| art.memory.insightsA | Get style insights derived from approved assets — patterns, preferences, and learned conventions from the asset corpus. |
| art.memory.negativeA | Get negative patterns (rejected examples) for a type/material — query rejections filtered by type hints in reasons. |
| art.workflow.guideA | Generate a step-by-step painting guide for the AI to follow when drawing a subject. Enforces strict palette discipline, form-first/detail-last hierarchy, and per-step color limits. The guide is TEXT instructions — read it and follow each step sequentially. |
| art.workflow.paletteA | Get the strict palette for a material — returns role-to-hex mappings, maximum color count, and forbidden colors. Use this before painting to know EXACTLY which colors are allowed. |
| art.aseprite.exportB | Export a canvas session to Aseprite format. Saves the canvas as PNG and generates the Aseprite CLI command to convert it. Commands are returned for external execution. |
| art.aseprite.spritesheetB | Generate a spritesheet export command for a canvas session. The canvas PNG is saved and a CLI command is returned to produce a packed spritesheet via Aseprite. |
| art.aseprite.layersA | Generate a Lua script and Aseprite command to set up standard layer structure. Writes the script to disk and returns the command to execute it. |
| art.aseprite.validateB | Generate a validation Lua script and Aseprite command to check sprite constraints (palette size, dimensions). Writes the script to disk and returns the command. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 126 tools
The hierarchical namespaces help, but the sheer number of tools creates real overlap: art.provider.analyze vs art.pipeline.analyze, art.asset.archive vs art.asset.archive_version, and art.qa.asset vs art.critic.evaluate vs art.style.check all have fuzzy boundaries. An agent could easily pick the wrong one without very careful descriptions.
Most tools follow a predictable art.<category>.<action> pattern with snake_case verbs, which is highly readable. However, a few top-level tools like art.validate_style, art.get_style, and art.get_palette break the convention, and verbs are mixed across add/register/create for similar operations.
126 tools is an extreme count for any MCP server, far beyond the 25+ threshold. Many micro-tools—individual detail effects, memory CRUD variants, and Aseprite command generators—could be consolidated into broader operations, making the surface unnecessarily hard to navigate.
The tool surface is remarkably comprehensive for a game-art domain: asset lifecycle, versioning, approvals, style memory, QA, providers, canvas painting, production jobs, tilemaps, detail passes, Aseprite export, and workflow guidance are all covered. Major workflows have no obvious dead ends.