Releases: sloplink/aseprite-mcp
Releases · sloplink/aseprite-mcp
Release list
v0.7.0
Needs the MCP Bridge extension 0.7.0 for the sprite guard and aseprite_sprites; with older
extensions everything else keeps working as before (without the guard).
Added
- Sprite guard: the server remembers which sprite it works on (the one it created or opened, or
the active one afteraseprite_status). If the artist switches to another sprite, drawing
commands stop with a clear message instead of drawing into the wrong sprite. aseprite_sprites: lists open sprites and switches to one of them.- Automatic backups: a few seconds after the assistant changes a sprite, a copy is saved as
.asepriteto~/.config/aseprite-mcp/autosave(newest 5 per sprite,ASEPRITE_MCP_AUTOSAVE
to move or disable it). Original files are never touched.aseprite_backupslists the copies,
and the Backups… button in the MCP Bridge window opens one directly. Copies are named
<file name>/<local date time>.aseprite; copies older than 14 days are deleted and all copies
together stay below 200 MB (ASEPRITE_MCP_AUTOSAVE_DAYS,ASEPRITE_MCP_AUTOSAVE_MB). aseprite_statusshows whether autosave works and where the copies go.- When the server adopts the active sprite on its own (first command after a restart), the result
says which sprite it is working on.
Changed
- Once connected, the MCP Bridge window only shows the status and its buttons; Settings…
brings back token, port and the Lua option. aseprite_batchpins the active frame for all ops without aframe, so playing the animation
in Aseprite during a batch no longer spreads the ops over several frames.
v0.6.0
Needs the MCP Bridge extension 0.6.0 for aseprite_selection, aseprite_changes and
rect: "selection"; everything else still works with extension 0.4.0.
Added
aseprite_viewwithcritique: true: one small sheet with colour, grayscale, silhouette,
true 1x size and optionally a colour-blindness (deutan) panel, for self-review.aseprite_selectionandrect: "selection"(read_pixels, view, clear, copy, outline,
palette from_image): work on whatever the artist has selected.aseprite_changes: watch mode – returns only the pixels the artist changed since the last
call, as a pixel map (.unchanged,-erased).aseprite_paletteactionramp: hue-shifted shading ramps from base colours.aseprite_outline(also inaseprite_batch): selective outline ("sel-out") or a solid
outline, outside or inside the shapes.- Smaller tool list (~2,700 characters less per session): integer and colour checks are done by
the server instead of being repeated in every schema. - Compatibility: tool schemas no longer use tuples,
constorpropertyNames(rejected by
some MCP clients such as Gemini); newaseprite_helpreturns the usage guide for clients that
ignore server instructions;aseprite_viewis rendered by the server for images up to
128×128 px, so it also works when Aseprite runs in a sandbox with its own/tmp. - Security:
fileonly reads your own.jsonfiles from the temp directory or
ASEPRITE_MCP_FILE_DIRSand never repeats their characters in errors;aseprite_open/
aseprite_saveonly accept absolute paths with image formats; rows are limited to 4096
characters; the critique sheet is capped in size; GitHub Actions are pinned to commits. - Ramps and selective outlines are computed in OKLCH (perceptual lightness), so pale colours
get muted shadows instead of saturated orange, and yellow shadows turn warm, not green.
v0.5.0
Server-only release: the MCP Bridge extension stays at 0.4.0 – no need to reinstall it.
Changed
- Server and extension are versioned separately. The server only warns when the installed
extension is older than the version it needs (currently 0.4.0), so server-only releases
work with the installed extension.
Added
- Stamps:
aseprite_pixel_mapandaseprite_animationacceptstamps(reusable pixel maps)
andplace([name, x, y, flip?]), so repeated parts are sent only once. file:aseprite_pixel_mapandaseprite_animationcan read their drawing data from a
.jsonfile, so generated art does not have to be pasted into the conversation.
v0.4.0
Includes everything since 0.2.0 (0.3.0 was never released).
Added
aseprite_read_pixels: read pixels back in thepixel_mapformat (palette + text rows),
from one layer or the visible frame, optionally only a rectangle.aseprite_copy: copy or mirror (flip) a region to another position, layer or frame.aseprite_animation: draw several frames in one call; missing frames are created,
later frames can be deltas of the previous one.aseprite_palette: save, list and delete named palettes, or collect one from the image.
paletteNameworks inpixel_map,read_pixelsandanimation.aseprite_viewtakes arectto zoom into a detail.aseprite_pixel_mapandaseprite_batch(all drawing operations in one call).- The server sends usage instructions (
instructions.md) to the MCP client. aseprite_statusreports the server and extension version and warns when they differ.aseprite_frameactionnewacceptsframe(insert after that frame).- Integration tests that run the extension handlers inside a real Aseprite (
aseprite -b).
Fixed
- Indexed sprites: new sprites got an all-black palette, so every drawn color became black;
colors are now matched against the sprite palette and never map to the transparent index. - Indexed sprites:
new_spritebackground andclearused the wrong pixel value. aseprite_viewandaseprite_framereport a clear error for frames that do not exist.aseprite_openno longer opens a modal error dialog in Aseprite for missing files.aseprite_saveno longer blocks on export option dialogs (e.g. "GIF Options");
the user's "don't show again" settings are left unchanged.- Numbers from the server are passed to the handlers as integers where they are whole
(error messages said "Frame 5.0"); fractional values such as durations stay intact. - Error messages no longer start with the Lua source location.
Changed
- Requires Node.js 20 or newer (Node.js 18 is end-of-life).
- Tool results are compact JSON (fewer tokens).
- Protocol: the extension sends its version in
hello(backwards compatible).