Aseprite MCP Tools
An MCP server giving an agent 123 Aseprite tools for pixel art and animation, plus previews to check its own drawing
- 845 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- run_lua_script executes arbitrary Lua code on your machine
- The server creates, edits and overwrites .aseprite files and exports them to any folder the agent names
- Installing Aseprite through SteamCMD in the container needs a Steam login, password and Steam Guard code
Install
- Works in
Manual install
{"mcpServers": {"aseprite": {"type": "stdio", "command": "uv", "args": ["--directory", "/path/to/aseprite-mcp", "run", "-m", "aseprite_mcp"], "env": {}}}}Clone the repository first and replace /path/to/aseprite-mcp with its path. Needs Python 3.13+, uv and Aseprite.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- run_lua_script executes arbitrary Lua code on your machine
- The server creates, edits and overwrites .aseprite files and exports them to any folder the agent names
- Installing Aseprite through SteamCMD in the container needs a Steam login, password and Steam Guard code
This is third-party code. Review the repository files before installing.
What it does
Aseprite MCP Tools runs Aseprite in batch mode and turns what it can do into MCP tools. An agent creates a canvas, adds layers and groups, draws pixels, lines, polygons and isometric boxes, fills gradients and sets up tilemaps. For small details there is draw_rows: the picture is given as rows of characters plus a color legend, like ASCII art, and read_rows returns a region in the same form, so an edit means swapping a few characters. A separate set deals with color and style: ready palettes (gameboy, pico8, c64, cga, dawnbringer16 and others), shading ramps with hue shift, snapping pixels to the nearest palette color, ordered dithering and outlines. Animation is built from frames, per-frame durations and tags, and in-between cel positions are computed with easing. The result exports to PNG, GIF, a sprite sheet or one file per layer. For feedback there is view_sprite, which returns the image straight to the model with a pixel grid and coordinate rulers, and render_onion_skin, compare_frames, lint_sprite and get_color_stats show what drifted between frames and where stray pixels remain.
Who it is for. For game developers and pixel artists who want an agent to make sprites, tiles and short animations in Aseprite and then finish the files by hand.
Good fit when
- You need a 32x32 or 48x48 sprite in a limited palette such as pico8 or dawnbringer16, with an outline and hue-shifted shading
- A character needs an animation loop, such as a sword slash, a jump or an idle sway, exported as a GIF or a sprite sheet
- The agent should check its own drawing: look at frames through view_sprite and hunt stray pixels with lint_sprite
- You need a tileset and tilemap for a 2D game, with slices, 9-patch centers and pivot points set by commands
- Finished Aseprite files should be exported per layer or per animation tag with a single request to the agent
Not a fit when
- You need a high-resolution image or photorealism: the server draws pixel by pixel in Aseprite and calls no image-generation model
- Aseprite is not installed and cannot be: the server only drives the program and does not work without it
- You want a sprite from a single sentence with no editing: the catalog has separate skills that generate finished sprites from text
- You work in a different raster editor: the server drives Aseprite only
Example request
Draw a green 32x32 slime in Aseprite with the pico8 palette, make 8 frames of a hop with squash and stretch and export a GIF at 8xMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
ASEPRITE_PATH- Path to the Aseprite executable when the program is not on PATH
STEAM_USERNAME- Steam login, needed only to install Aseprite in the container through SteamCMD
STEAM_PASSWORDsecret- Steam password for installing Aseprite in the container; pass it through --env-file
Limitations
- Requires Python 3.13 or newer, the uv package manager and an installed Aseprite. If the program is not on PATH, the ASEPRITE_PATH variable sets its location.
- The instructions have no uvx or pip install: the server starts from a cloned repository with uv run -m aseprite_mcp.
- The Docker image does not include Aseprite. It can be fetched at startup through SteamCMD, but that needs Steam account credentials and, with Steam Guard on, a code.
- Drawing quality depends on the model.
How to disable. Remove the aseprite block from mcpServers in the client settings or the project's .mcp.json and restart the agent. A container stops with docker stop. Finished .aseprite, PNG and GIF files stay where the agent saved them, and ~/.aseprite-mcp/fonts holds only fonts you added.
FAQ
How do I connect Aseprite to Claude Code through MCP?
Clone the repository and add an aseprite server to .mcp.json with command uv and arguments run -m aseprite_mcp. If you start the agent outside the clone, put --directory and the repository path before run. Aseprite must be installed beforehand.
Can AI draw pixel art and animation in Aseprite?
The agent draws with primitives and rows of characters, then looks at the result through view_sprite and corrects it. The repository's examples include a 16-frame isometric bedroom at dusk, a swordsman with a slash and a hopping slime. These are Claude models' work, and other models were not tested.
Can I run Aseprite MCP in Docker?
Yes. The image builds with docker build -t aseprite-mcp:latest . and runs through docker run -it --rm aseprite-mcp:latest or docker-compose. Aseprite is not in the image; see DOCKER.md in the repository.
What does run_lua_script do and why is it risky?
It runs an arbitrary Lua script in Aseprite's batch mode when no ready tool covers the operation. The script runs on your machine without limits, so the developer advises passing it only trusted code.
Which palettes and export formats does Aseprite MCP support?
Ready palettes are gameboy, pico8, c64, cga, dawnbringer16, dawnbringer32, grayscale_4 and monochrome. Export covers PNG, GIF, JPG, a sprite sheet with JSON metadata, a PNG sequence and separate files per layer or animation tag.
Discussion
No questions or reviews yet.
Related
MCP serversAseprite AI Artist: pixel art through an agent
Aseprite AI Artist
A plugin and MCP server that let an agent draw and animate in your open Aseprite window, with every action undone by one Ctrl+Z
An MCP server for Adobe Photoshop: background removal, retouch, social export and batch jobs by chat
Recraft's remote MCP server: an agent draws raster and vector images, edits a region, removes the background and upscales
A local MCP server for editing and analyzing images: the agent crops frames, finds objects and reads text from photos
Inkscape MCP
inkscape-mcp
An agent creates, edits, layers, animates and exports SVG through Inkscape without the interface. An MCP server, stdio and HTTP
An MCP server for Windows that drives an installed Photoshop: documents, layers and arbitrary JSX scripts
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Aseprite MCP Tools (this entry) | no | not required | 845 | |
| Agent Sprite Forge | no | 4,620 | Codex skills that generate sprites and sheets from text and do not drive Aseprite itself | |
| Sprite Gen | no | 3,101 | builds sprites from one base image and removes the background, no Aseprite needed | |
| LabArt | no | 292 | a Codex marketplace with three creative plugins |
README in short
The repository page opens with a gallery of work made through the server and a table of 18 tool categories, from canvas and drawing to tilemaps, frame analysis and scripting. Each category has its own section with a tool table and call examples such as draw_rows and measure_text. Next comes a six-step recommended workflow for the model, from choosing a palette to exporting an animation. The page ends with Docker usage, a local install and the MCP configuration.