Unity-first MCP for live Aseprite: Unity export, art-QA, iso tools, resources + prompts
A Unity-first MCP for live Aseprite integration. It enables Unity export, art QA, iso tooling, resources, and prompts for model-context-driven workflows. Grounded in MCP, it focuses on live, single-edit undo per action within the Aseprite editor.
π οΈ Key Features
Unity-first MCP workflow for live Aseprite
Live drawing in Aseprite with per-edit undo
Art QA tooling and iso-related utilities
Resources and prompts curated for game-dev use
MCP-compliant model-context handling and prompts
π Use Cases
Real-time AI-assisted pixel art in Aseprite
Integrated Unity export pipelines
Isometric art pipelines with quality checks
Prompt-driven workflows for asset pipelines
β‘ Developer Benefits
Clear MCP protocol alignment and extensible prompts
Open-source tooling with MCP tools, resources, and prompts
Python-based runtime requirements and compatibility notes
β οΈ Limitations
Source data indicates MCP v2025β11β25 scope; verify environment compatibility
Limited excerpt; consult readme for full setup and usage details
Let an AI agent draw in your live Aseprite editor β one named undo per edit β with a Unity-first, game-dev toolset.
An open-source Model Context Protocol server for
Aseprite. It drives your running editor (all open
documents, unsaved state, each edit a single Ctrl-Z) and runs headless
(aseprite --batch) against files on disk β 77 typed tools from one server,
including one-action Unity sprite-sheet + .meta export (named slices carry
per-slice pivots), a project-convention art-QA sweep, and isometric drawing
primitives we haven't found in another Aseprite MCP. It also exposes MCP prompts
β guided one-call art workflows we haven't seen another Aseprite MCP ship β and
MCP resources that read your live editor's open documents, active palette, and
last QA/export report (a live-state resource set unique to the live bridge).
See it in action
Each of these is an AI agent driving a live 64Γ64 Aseprite canvas through the MCP β one named undo per step.
Isometric primitives iso box β recessed port β tank β outline
Drawing suite rect Β· dithered gradient Β· ellipse Β· circle Β· dither Β· outline
Ramp-walk shading flat fill β volumetric, along a hand-ordered palette
Install
Recommended β one command (no clone):
bash
uvx aseprite-live-mcp # or: pipx run aseprite-live-mcp
From source:
bash
git clone https://github.com/oaktreegames/aseprite-live-mcp
cd aseprite-live-mcp
pip install -e .
Requires Python 3.10+ and Aseprite 1.3+. That's it for headless; the live
editor needs one extra step (below).
Quickstart β headless (2 minutes, no editor open)
Add the server to your MCP client (Claude Code, Claude Desktop, Cursor, β¦):
Set ASEPRITE_PATH to your Aseprite executable (auto-detected on common installs
if you omit it). In headless mode, tools take a file argument β the .aseprite
to act on. Ask your agent to run status to confirm the connection.
Quickstart β live editor (drive your open canvas)
The live backend edits your running Aseprite, one undo step per edit.
Install the bridge script into Aseprite β in Aseprite, File β Scripts β Open Scripts Folder, and copy aseprite_client/claude-bridge.lua
into it. Restart Aseprite (or File β Scripts β Rescan Scripts Folder).
Start the relay:python bridge/relay_server.py (needs pip install websockets).
Connect: in Aseprite, File β Scripts β claude-bridge, and grant the script
trust when asked. The panel shows "connected to Claude", live activity, and a
Pause toggle.
Switch the backend to live in your MCP config ("ASEPRITE_MCP_BACKEND": "live").
Now tools act on your active document; watch edits appear and press Ctrl-Z to undo
each one. See docs/ARCHITECTURE.md for how it works.
What you can ask it to do
"Make a 32Γ32 sprite, draw a red circle, and export it as icon.png."
"Measure the transparent padding on player.aseprite and tell me if it's centered."
"Export machines.aseprite as a Unity sprite sheet at 16 pixels-per-unit." β drops a sheet + a pre-sliced .meta straight into your Unity project.
"Draw an isometric box for a 1Γ1 machine base and put a recessed port on its front face."
"Run a QA sweep on this sprite: it must be 64Γ64, β€ 16 colors, and grid-aligned."
"Pull a 16-color palette out of concept.png and snap my sprite to it."
"Slice this atlas, set each slice's pivot, and export it to Unity with the pivots baked in."
Sanity check the whole surface: python tests/smoke_headless.py exercises all 77
tools (plus resources + prompts) end-to-end against a throwaway sprite
(pip install -e ".[dev]" then pytest for the unit + headless suite).
Where this sits (honest positioning)
There are already good Aseprite MCP servers. This project is not the first, and
doesn't claim to be. What it claims β and can defend:
Capability
Landscape
This project
Draw / layer / frame / palette / export, plus dithering, gradients, outline, color replace, quantize, ramps, palette-from-image
Well covered by the headless leaders (diivi ~104 tools, pixel-mcp, ext-sakamoro)
Defensible in combination (undo + live resources + QA on the live doc)
We don't compete on raw tool count (the leaders ship 100+). The pitch is curated,
Unity-first, and QA-gated, with an MCP-native integration layer β guided-workflow
prompts (which we haven't seen another Aseprite MCP ship) and live-state resources
(unique to the live bridge).
Tools (77)
Inspect β status, get_sprite_info, get_pixel, get_pixels (composited read-back for the AI feedback loop), get_color_stats (histogram)
Every tool is typed with accurate MCP annotations (readOnlyHint / destructiveHint
/ idempotentHint / openWorldHint); mutating tools are wrapped in a namedapp.transaction, so each edit is exactly one undo step (the editor shows
"Undo "). The QA and Unity-export tools also declare an outputSchema and
return structuredContent. Built on the official MCP Python SDK's FastMCP, stdio
transport, targeting the stable 2025-11-25 spec.
Resources
Read live editor state without spending a tool call β enabled by the live bridge:
aseprite://sprite/active β size, color mode, layer/frame/tag names of the active document
aseprite://palette/active β the active palette as hex
aseprite://docs β every open document, including unsaved/untitled tabs
aseprite://qa/last β the most recent qa_sweep / measure_padding result
aseprite://export/last β the most recent Unity export (files written + sprite manifest)
Prompts (guided workflows)
One-call "skills" that chain the tools into finished art tasks:
unity_qa_gate β run the ship-ready QA gate, then export a Unity sheet + .meta
iso_building_to_spec β build a 2:1 isometric building from a footprint spec
shade_along_ramp β shade a sprite by walking its hand-ordered palette ramp
The relay executes Lua inside Aseprite β treat it as local code execution. It binds
to 127.0.0.1 only, and every edit is one undo step. Full threat model:
SECURITY.md.
Contributing
Issues and PRs welcome β see CONTRIBUTING.md. Run pytest and
python tests/smoke_headless.py before submitting.