lentera-aseprite-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_spriteA | Create a new sprite in Aseprite. Opens it in the GUI. |
| open_spriteB | Open an existing sprite file in Aseprite. |
| save_spriteA | Save the active sprite. Optionally save to a new path. |
| close_spriteB | Close the active sprite. |
| get_sprite_infoA | Get info about the active sprite (size, layers, frames, filename). |
| list_open_spritesA | List all open sprites in Aseprite. |
| add_layerA | Add a new layer to the active sprite. |
| remove_layerA | Remove a layer by name from the active sprite. |
| list_layersA | List all layers in the active sprite. |
| set_layer_propertiesC | Set properties of a layer (name, opacity, visibility, blend mode). |
| get_active_layerA | Get the currently active/selected layer. |
| set_active_layerA | Set the active layer by name. |
| add_frameB | Add a new frame to the active sprite. |
| remove_frameA | Remove a frame from the active sprite. |
| list_framesA | List all frames in the active sprite with their durations. |
| set_frame_durationA | Set the duration of a specific frame. Lentera walk=125ms (8fps), attack varies per frame. |
| set_active_frameB | Set the active frame (navigate to a specific frame). |
| create_tagA | Create an animation tag for a frame range. Used for walk/attack/idle/dodge cycles in Lentera Pudar. |
| remove_tagA | Remove an animation tag by name. |
| list_tagsA | List all animation tags in the active sprite. |
| rename_tagB | Rename an animation tag. |
| draw_pixelsA | Draw individual pixels on the canvas. Use for precise pixel-art placement. |
| draw_rectC | Draw a rectangle (outline or filled) on the canvas. |
| draw_lineB | Draw a line between two points using Bresenham algorithm. |
| draw_circleB | Draw a circle (outline or filled) on the canvas. |
| draw_ellipseB | Draw an ellipse on the canvas. |
| fill_areaB | Flood fill an area starting from a point (like paint bucket tool). |
| outlineA | Add a pixel outline around non-transparent pixels. Default color is Lentera Pudar shadow (#2A211C). |
| load_palette_lenteraA | Load the official Lentera Pudar 8-color palette (#F4B860 warm yellow, #4A6FA5 cold blue, etc.). Use this always for Lentera Pudar art. |
| get_paletteA | Get the current palette colors of the active sprite. |
| set_palette_colorsB | Set specific palette colors by index. |
| load_palette_from_fileB | Load a .gpl palette file into the active sprite. |
| resize_paletteB | Resize the palette to a specific number of colors. |
| export_frameB | Export a single frame as PNG. |
| export_sprite_sheetB | Export a sprite sheet (all frames as horizontal/vertical/packed strip). |
| export_layersB | Export each layer as a separate PNG file. |
| export_godot_spriteframesA | Generate a Godot 4 SpriteFrames .tres resource from a sprite sheet. Ready to use with AnimatedSprite2D. |
| export_godot_tilesetA | Generate a Godot 4 TileSet .tres resource from a tile sheet. For use with TileMapLayer. |
| export_animation_tagA | Export all frames from a specific animation tag as individual PNGs or a GIF. |
| flip_spriteB | Flip the active sprite (or a specific layer/frame) horizontally or vertically. |
| rotate_spriteB | Rotate the sprite 90, 180, or 270 degrees. |
| replace_colorA | Replace one color with another across the entire sprite or a layer/frame. |
| merge_layersB | Merge multiple layers into one. |
| move_celB | Move a cel from one layer/frame to another. |
| set_cel_opacityB | Set the opacity of a specific cel (layer+frame combination). |
| clear_celC | Clear (erase) the content of a cel. |
| take_screenshotA | Capture the Aseprite window as an image. Use to visually verify pixel art results. |
| get_canvas_previewA | Get a PNG preview of just the canvas (active frame, all visible layers). Cleaner than take_screenshot. |
| zoom_to_fitA | Zoom the Aseprite canvas to fit the window (for better screenshot visibility). |
| run_lua_scriptA | Execute arbitrary Lua code inside Aseprite. Use for operations not covered by other tools. |
| get_aseprite_versionA | Get the version of the connected Aseprite instance. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 51 tools
Each tool targets a distinct resource and action. Drawing tools are separated by shape, palette tools by operation, and export tools by format. Even similar tools like `get_canvas_preview` and `take_screenshot` are clearly differentiated by description.
All tools follow a consistent `verb_noun` snake_case convention, making it easy to predict tool names. Verbs are action-oriented (open, get, set, add, remove, draw, export) and nouns clearly identify the target (sprite, layer, frame, tag, palette).
At 51 tools, the server is heavily overloaded. While each tool is individually useful, the sheer number creates navigation burden and suggests excessive granularity (e.g., separate shape drawing tools, multiple export formats). This detracts from coherence.
The surface is extremely complete, covering sprite lifecycle, layers, frames, tags, palette, drawing, transformations, export, and cel operations. The inclusion of `run_lua_script` ensures no operation is impossible, making gaps moot.