aseprite-mcp
Provides tools for creating, editing, and exporting pixel art sprites, animations, and sprite sheets using Aseprite's scripting API. Allows AI assistants to perform drawing operations, manage layers and frames, apply transformations, and export assets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aseprite-mcpcreate a 32x32 blue square sprite"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
aseprite-mcp
An MCP server for Aseprite — create, edit, and export pixel art sprites, animations, and sprite sheets from any AI assistant.
Drawn and animated entirely via aseprite-mcp tools — no manual pixel editing!
Features
43 tools across 11 categories
Native drawing with configurable brush thickness via
app.useTool()Pixel-perfect algorithms (Bresenham line, midpoint circle) for thin strokes
Cross-platform — Windows, macOS, Linux
Secure — Lua injection prevention, sandboxed execution
Zero runtime dependencies beyond
@modelcontextprotocol/sdk
Tool Overview
Category | Tools | Examples |
Sprites | 6 |
|
Layers | 4 |
|
Frames | 4 |
|
Tags | 3 |
|
Drawing | 7 |
|
Transform | 5 |
|
Palette | 4 |
|
Cels | 3 |
|
Export | 3 |
|
Slices | 2 |
|
Utility | 2 |
|
📖 Full parameter reference: docs/API.md
Related MCP server: aseprite-mcp
Quick Start
Requirements
Node.js ≥ 18
Aseprite ≥ 1.3 (aseprite.org)
Install
# npm global
npm install -g aseprite-mcp
# or from source
git clone https://github.com/ayigityol/aseprite-mcp.git
cd aseprite-mcp && npm install && npm run buildConfigure
{
"mcpServers": {
"aseprite": {
"type": "local",
"command": "node",
"tools": ["*"],
"args": ["/path/to/aseprite-mcp/build/index.js"],
"env": { "ASEPRITE_PATH": "/path/to/aseprite" }
}
}
}{
"mcpServers": {
"aseprite": {
"command": "node",
"args": ["/path/to/aseprite-mcp/build/index.js"],
"env": { "ASEPRITE_PATH": "/path/to/aseprite" }
}
}
}{
"servers": {
"aseprite": {
"command": "node",
"args": ["/path/to/aseprite-mcp/build/index.js"],
"env": { "ASEPRITE_PATH": "/path/to/aseprite" }
}
}
}{
"mcpServers": {
"aseprite": {
"command": "aseprite-mcp"
}
}
}Environment Variables
Variable | Description |
| Path to Aseprite executable. Auto-detected if not set. |
| Set |
Auto-detection searches standard install paths on all platforms, plus system PATH.
Architecture
sequenceDiagram
participant Client as MCP Client
participant Server as aseprite-mcp
participant Aseprite as Aseprite CLI
Client->>Server: Tool call (JSON-RPC via stdio)
Server->>Server: Generate Lua script
Server->>Aseprite: aseprite -b --script temp.lua
Aseprite->>Aseprite: Execute Lua (headless)
Aseprite-->>Server: stdout: __RESULT__{"success":true, ...}
Server->>Server: Parse JSON, cleanup temp file
Server-->>Client: Tool resultgraph LR
A[Tool Call] --> B{Thickness > 1?}
B -->|Yes| C[app.useTool<br/>Native Brush]
B -->|No| D[image:drawPixel<br/>Pixel Algorithms]
C --> E[Save & Return]
D --> EAll operations run headless — no GUI window is opened.
Docker
# Build
docker build -t aseprite-mcp .
# Run (mount your Aseprite binary + working directory)
docker run --rm -i \
-v /path/to/aseprite:/usr/local/bin/aseprite:ro \
-v ./sprites:/sprites \
aseprite-mcp
# Or use Docker Compose
docker compose upAseprite must be mounted into the container. The image packages only the MCP server.
Development
npm run build # Compile TypeScript
npm run watch # Recompile on changes
npm test # Run 74 unit tests (vitest)
npm run test:watch # Watch mode
npm run inspector # MCP Inspector for interactive testingSecurity
luaEscape()— prevents Lua injection by escaping\,",\n,\rluaPath()— normalizes and escapes file pathsexecFile()— argument arrays, no shell interpolationpcall()wrapping — all generated Lua scripts have error handlersLocal only — no data sent to external services
Troubleshooting
Problem | Solution |
"Aseprite executable not found" | Set |
Tool returns Aseprite error | Set |
"Layer not found" / "Tag not found" | Names are case-sensitive — use |
Sprite won't save | Ensure the output directory exists |
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server that forges pixel art sprites & game assets using Google Gemini — generate, crop, split & process, all from your AI assistant.Last updated8333MIT
- Alicense-qualityBmaintenanceMCP server for programmatically creating and editing Aseprite sprites, enabling AI agents to draw, manage layers and frames, and iterate until the desired result is achieved.Last updatedMIT
- Flicense-qualityCmaintenanceMCP server for controlling Aseprite from Codex, wrapping its native CLI and Lua scripting to enable pixel art creation, sprite editing, animation, file inspection, and export.Last updated
- AlicenseBqualityAmaintenanceAn MCP server that lets AI agents create and edit Aseprite sprites headlessly, enabling pixel art, animation, and export via 98 tools.Last updated1001MIT
Related MCP Connectors
Generate authentic pixel art - sprites, animations, and tilesets - from any MCP client
MCP server for NanoBanana AI image generation and editing
MCP server for Flux AI image generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ayigityol/aseprite-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server