Aseprite-MCP
Click on "Deploy 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-MCP Export the active sprite as a sprite sheet with JSON metadata."
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
This server automates Aseprite workflows using the Model Context Protocol (MCP).
It enables AI, chat assistants, and automation pipelines to directly execute Aseprite tasks such as sprite sheet export, frame extraction, and metadata output.
*Aseprite must be installed in order to use this MCP server.
Features Overview
V1 - Export/Utility
Supports fundamental Aseprite export workflow:
aseprite_check_environment: Checks Aseprite installation status, executable path, and versionaseprite_export_sheet: Exports a sprite sheet as PNG + JSONaseprite_export_frames: Exports each animation frame as an individual PNG fileaseprite_export_metadata: Exports Aseprite metadata in JSON format
V2 - Lua Automation
Adds deeper control using Aseprite Lua scripting, enabling safe AI-driven editing operations such as:
aseprite_list_lua_templates: Lists available Lua templatesPredefined safe Lua automation(templates)
get_active_sprite_info: Provides basic information about the currently active spriteget_frame_info: Inspects the animation timeline and frame structure of the active spriteget_layer_list: Returns a full structural overview of all layers in the active sprite, including groupsget_tag_list: Lists all animation tags defined in the active spriteget_is_layer_exists: Checks whether a layer with a specific name existsget_is_tag_exists: Checks whether a specific animation tag existsget_palette_info: Inspects the current palette of the active spriteget_selection_bounds: Inspects the current selection state and its boundsremove_layer_by_name: Removing specific layersrecolor_palette: Palette recoloringnormalize_animation_speed: Normalizing animation speedauto_crop_transparent: Removing empty transparent borders around the spriteexport_layer_only: Exporting only a specific layer as a flattened PNG imageexport_tag_frames: Exporting all frames within a specific animation tag as individual PNG filesmerge_visible_layers: Merging all currently visible layers into a single layer
aseprite_run_lua_script: Executes a raw Lua script (advanced / unsafe)
Related MCP server: aseprite_mcp
How to use
Run directly with npx
npx -y @iborymagic/aseprite-mcpLocal Build & Run (for development)
npm install
npm run build
npx @iborymagic/aseprite-mcpUsing with Claude Desktop
Add the following to your claude_desktop_config.json
{
"mcpServers": {
"aseprite-mcp": {
"command": "npx",
"args": ["-y", "@iborymagic/aseprite-mcp"]
}
}
}Using with Cursor
Add the following to your mcp.json
{
"mcpServers": {
"aseprite-mcp": {
"command": "npx",
"args": ["-y", "@iborymagic/aseprite-mcp"]
}
}
}Available Tools
21 toolsaseprite_check_environmentB
Check the environment of Aseprite
Inputs: no named parameters.
aseprite_export_framesC
Export each frame of Aseprite file
Inputs: inputFile (required), outputPattern (required), tag.
aseprite_export_metadataC
Export metadata json from Aseprite file
Inputs: dataFile (required), inputFile (required), format.
aseprite_export_sheetC
Export Aseprite file to sprite sheet image
Inputs: inputFile (required), outputSheet (required), tag, dataFile, +1 more.
aseprite_list_lua_templatesA
List available Aseprite Lua templates.
Inputs: no named parameters.
aseprite_run_lua_scriptC
Run a raw Lua script (advanced / unsafe).
Inputs: no named parameters.
auto_crop_transparentC
Automatically crops empty transparent borders of the sprite
Inputs: inputFile (required), saveOutput (required).
export_layer_onlyB
Exports only the specified layer to a flattened PNG
Inputs: inputFile (required), layerName (required), outputDir (required).
export_tag_framesC
Exports frames inside a specific animation tag to PNG files
Inputs: tag (required), inputFile (required), outputDir (required), filenamePrefix.
get_active_sprite_infoC
Gets information about the active sprite
Inputs: inputFile (required).
get_frame_infoC
Gets information about the current frame
Inputs: inputFile (required).
get_is_layer_existsC
Checks if a layer exists in the active sprite
Inputs: inputFile (required), layerName (required).
get_is_tag_existsC
Checks if a tag exists in the active sprite
Inputs: tagName (required), inputFile (required).
get_layer_listC
Gets a list of all layers in the active sprite
Inputs: inputFile (required).
get_palette_infoC
Gets information about the palette of the active sprite
Inputs: inputFile (required).
get_selection_boundsC
Gets the bounds of the selection in the active sprite
Inputs: inputFile (required).
get_tag_listC
Gets a list of all tags in the active sprite
Inputs: inputFile (required).
merge_visible_layersC
Merges all currently visible layers into a single layer
Inputs: inputFile (required), saveOutput (required).
normalize_animation_speedC
Normalizes all frame durations to a single target duration (in seconds)
Inputs: inputFile (required), saveOutput (required), targetDuration (required).
recolor_paletteC
Recolors the palette based on a mapping of from->to colors
Inputs: mapping (required), inputFile (required), saveOutput (required).
remove_layer_by_nameC
Removes a layer with a given name and saves to a new file (or overwrites)
Inputs: inputFile (required), layerName (required), saveOutput (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
All tools have clearly distinct purposes. Export tools target different output types (frames, sheet, metadata, layer, tag frames), get tools retrieve different information, and actions like recolor or merge are unique. No two tools appear to do the same thing.
Naming is inconsistent: some tools use 'aseprite_' prefix while others (e.g., auto_crop_transparent, export_layer_only) omit it. Verb patterns also vary (verb_noun vs. noun_verb). This could confuse an agent expecting a uniform naming scheme.
21 tools cover a broad range of sprite editing operations. The count is on the higher side but justifiable given the complexity of Aseprite. It's well-scoped without being excessive.
The tool set covers querying, exporting, and some editing (layer operations, palette recolor, animation speed). However, it lacks creation tools (new sprite, new layer) and more fundamental editing (drawing, saving). This leaves notable gaps for a complete workflow.
Maintenance
Related MCP Connectors
Create AI animations and export transparent sprite sheets, alpha video, frames, and game assets.
Turn images into pixel art, extract and remap palettes, and upscale sprites without blur.
Generate, edit, style-match, turn, and animate game-ready pixel art at exact sizes.
Generate game assets with AI for 2D games, including sprites, tilesets, and animations.
Related MCP Servers
- AlicenseCqualityBmaintenanceEnables AI assistants to control Aseprite for drawing and editing images through its API.59948MIT
- AlicenseAqualityDmaintenanceEnables AI sprite generation and semantic tools for Aseprite, allowing LLMs to create pixel art, add animations, and manage projects with visual feedback.61GPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to drive Aseprite for pixel-art creation, including sprite setup, grid-based drawing, layer/frame/tag management, reference image import, and export, with rendered previews after every mutation.MIT
- AlicenseBqualityCmaintenanceEnables AI assistants to create and edit pixel art and animated sprites in Aseprite through 104 tools covering drawing, layers, animation, palettes, tilemaps, exports, visual analysis, and raw Lua scripting.116MIT