Skip to main content
Glama
Aseprite-MCP

Aseprite-MCP

by iborymagic

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 version

  • aseprite_export_sheet: Exports a sprite sheet as PNG + JSON

  • aseprite_export_frames: Exports each animation frame as an individual PNG file

  • aseprite_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 templates

  • Predefined safe Lua automation(templates)

    • get_active_sprite_info: Provides basic information about the currently active sprite

    • get_frame_info: Inspects the animation timeline and frame structure of the active sprite

    • get_layer_list: Returns a full structural overview of all layers in the active sprite, including groups

    • get_tag_list: Lists all animation tags defined in the active sprite

    • get_is_layer_exists: Checks whether a layer with a specific name exists

    • get_is_tag_exists: Checks whether a specific animation tag exists

    • get_palette_info: Inspects the current palette of the active sprite

    • get_selection_bounds: Inspects the current selection state and its bounds

    • remove_layer_by_name: Removing specific layers

    • recolor_palette: Palette recoloring

    • normalize_animation_speed: Normalizing animation speed

    • auto_crop_transparent: Removing empty transparent borders around the sprite

    • export_layer_only: Exporting only a specific layer as a flattened PNG image

    • export_tag_frames: Exporting all frames within a specific animation tag as individual PNG files

    • merge_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

  1. Run directly with npx

npx -y @iborymagic/aseprite-mcp
  1. Local Build & Run (for development)

npm install
npm run build
npx @iborymagic/aseprite-mcp

Using 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 tools
aseprite_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

    C2.8/5.0

    Scored across 21 tools

    Disambiguation5/5

    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 Consistency2/5

    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.

    Tool Count4/5

    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.

    Completeness3/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers