Aseprite Live
Live+headless Aseprite MCP: Unity export, art-QA, tilemaps, in-editor dialogs, update-aware
Connector by oaktreegames · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/oaktreegames-aseprite-live-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 25 read · 64 write · 12 delete · 38 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 139
Read from the source code; the running server may list different tools.
Read 25 · Look things up without changing anything.
ask_pointdesaturateextract_palette_from_imageframe_diffget_asked_pointget_color_statsget_dialog_choiceget_editor_stateget_paletteget_pixelget_pixelsget_selection
Show 13 more tools
get_sprite_infoget_sprite_metadataget_tilemap_infoget_watched_changeslist_layerslist_sliceslist_spriteslist_tagsmeasure_paddingqa_sweepshow_choice_dialogstatuswatch_changes
Write 64 · Create, change, send or run things.
add_frameadd_framesadd_groupadd_layeradd_outlineadd_palette_coloradd_tileapply_bundled_paletteapply_ditherapply_preset_paletteapply_shadingbatch_apply_palette
Show 52 more tools
batch_resizecancel_ask_pointcreate_slicecreate_spritecreate_tagcreate_tilemap_layerdraw_gradientdraw_on_tiledraw_pixelsexport_tagsfill_areafill_polygonimport_image_as_layerimport_spritesheetload_palettemove_layermove_layer_to_grouprename_layerrename_tagrender_onion_compositereplace_colorresize_spritesave_palettesave_spriteselect_allselect_by_colorselect_ellipseselect_rectangleset_active_spriteset_cel_opacityset_cel_positionset_color_modeset_editor_viewset_frame_durationset_frame_durationsset_layer_blend_modeset_layer_opacityset_layer_visibilityset_onion_skinset_paletteset_palette_colorset_slice_centerset_slice_pivotset_sprite_metadataset_symmetryset_tag_colorset_tag_directionset_tag_rangeset_tilessmear_framestop_watching_changestween_frames
Delete 12 · Delete, drop, revoke or wipe things.
clear_celclose_spritecrop_spritedelete_framedelete_layerdelete_slicedelete_tagdeselecterase_areaflatten_spritemerge_layer_downrun_lua
Not yet classified 38 · We could not tell from the name and description.
adjust_brightness_contrastadjust_hslautocrop_spritebatch_exportbox_blurdraw_circledraw_ellipsedraw_iso_boxdraw_iso_cylinderdraw_linedraw_polylinedraw_rectangle
Show 26 more tools
duplicate_frameduplicate_layerexpand_canvasexport_layersexport_spriteexport_spritesheetexport_tilesetexport_unity_slicesexport_unity_spriteflip_spritegenerate_color_rampinvert_colorsinvert_selectioniso_recessed_panelopen_spritepaint_with_stamppalette_from_spritepalette_ramp_walkquantize_to_paletteredoreverse_framesrotate_spritesharpensort_palettetween_cel_opacityundo
Secrets and settings it asks for
Other settings (environment variables or headers).
ASEPRITE_MCP_BACKENDASEPRITE_MCP_NO_UPDATE_CHECKASEPRITE_PATHASEPRITE_RELAY_URL
Network hosts it talks to 1
github.com· found in code
Files it touches
- Your home directory (~)
~/.cache~/Library/Caches- Any path the agent passes to its tools
Tools (139)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_frameAdd frameAppend a new empty frame.
add_framesAdd framesAppend ``count`` empty frames in one undo step.
add_groupAdd layer groupAdd a layer group. Move layers into it with ``move_layer_to_group``; reference nested layers anywhere by name or as ``Group/Layer``.
add_layerAdd layerAdd a new empty layer (optionally named) at the top of the stack.
add_outlineAdd outlineAdd a 1px outline in ``color`` around the opaque pixels of the active cel — readability against busy backgrounds. ``diagonal`` true also outlines diagonally (8-connected). One undo step. Headless: pass ``file``.
add_palette_colorAdd palette colorAppend ``color`` to the palette and return its new index.
add_tileAdd tileAppend an empty tile to a tilemap layer's tileset; returns the new tile's index and the tileset size. The first added tile is index 1 (tile 0 is the reserved empty tile). One undo step. Headless: pass ``file``.
adjust_brightness_contrastBrightness / contrastAdjust the active cel's brightness and contrast, each -100..100 (0 = unchanged). Alpha is preserved. One undo step. Headless: pass ``file``.
adjust_hslAdjust HSLShift the active cel's colors in HSL: ``hue_shift`` degrees (-360..360), ``saturation`` a multiplier (1.0 = unchanged), ``lightness`` a delta (-1..1). Useful for tint variants. One undo step. Headless: pass ``file``.
apply_bundled_paletteApply bundled paletteApply one of Aseprite's bundled extension palettes by resource ID — e.g. DB16, DB32, ARQ4, EDG16 (availability depends on the installed palette extensions). For gameboy/pico8/cga see ``apply_preset_palette``. One undo step.
apply_ditherApply ditherFill a rectangle with a uniform ordered (Bayer 4x4) dither mixing ``color1`` and ``color2``. ``density`` 0..1 is the fraction of ``color2`` — 0.5 is an even checker-style mix. One undo step. Headless: pass ``file``.
apply_preset_paletteApply preset paletteReplace the palette with a built-in preset: gameboy | pico8 | cga.
apply_shadingApply shadingPalette-constrained shading: brighten toward the light and darken away from it, snapping every pixel to the nearest palette color. ``intensity`` ~0..1. RGB sprite only; one undo step. Headless: pass ``file``.
ask_pointAsk for a canvas pointLive editor only: ask the ARTIST to click a point on the canvas (pivot, anchor, paint origin). Returns immediately; call ``get_asked_point`` to collect the click. Human-in-the-loop, in-editor.
autocrop_spriteAutocrop sprite (trim)Trim transparent borders: shrink the canvas to the union of visible content across all layers and frames (Sprite > Trim). Errors if the sprite is fully transparent. Returns the old and new size. One undo step. Headless: pass ``file``.
Show 124 more tools
batch_apply_paletteBatch apply palettePalette-lock every ``.aseprite`` in ``folder``: snap each sprite (first frame, alpha preserved) to a palette and export images to ``out_dir``. Give a ``preset`` (gameboy/pico8/cga) or an explicit ``palette`` list of #rrggbb. Non-destructive; continues past per-file errors. Headless.
batch_exportBatch export folderExport every ``.aseprite`` in ``folder`` (first frame) to an image, optionally integer-upscaled by ``scale``. Non-destructive: writes ``<name>.<format>`` to ``out_dir`` (default = ``folder``); never modifies the source. Continues past per-file errors. Headless. (``file`` is ignored — this operates on a folder.)
batch_resizeBatch resize folderResize every ``.aseprite`` in ``folder`` (first frame, nearest-neighbor) and write images to ``out_dir``. Give either ``scale`` (multiplier) or explicit ``width``/``height``. Non-destructive; continues past per-file errors. Headless.
box_blurBox blurBlur the active cel with an alpha-weighted box kernel. ``radius`` 1-4 (1 = 3x3). Transparent neighbors don't darken edges. One undo step.
cancel_ask_pointCancel point requestWithdraw a pending ``ask_point`` request (e.g. the artist stepped away and you're moving on).
clear_celClear celcan change or delete dataEmpty the cel at the given layer + frame (transparent).
close_spriteClose spritecan change or delete dataClose the active sprite. Errors if it has unsaved changes unless ``force=true`` — save_sprite first, or force to discard them. Aimed at the live editor (frees the tab); headless has no persistent session, so there is nothing to close there.
create_sliceCreate sliceCreate a named slice (atlas region) at the given rectangle. Slices become Unity sprites via export_unity_slices. One undo step. Headless: pass ``file``.
create_spriteCreate spriteCreate a new sprite. Live: opens a new untitled sprite in the editor. Headless: writes a new .aseprite to ``file`` (required). ``color_mode`` is one of rgb | gray | indexed.
create_tagCreate tagCreate an animation tag named ``name`` spanning frames ``from_frame``..``to_frame`` (1-based).
create_tilemap_layerCreate tilemap layerCreate a tilemap layer with its own tileset on a tile_width x tile_height grid. The new tileset starts with only tile 0, the reserved empty tile — use add_tile to append editable tiles. One undo step. Headless: pass ``file``.
crop_spriteCrop spritecan change or delete dataCrop the sprite to the given rectangle.
delete_frameDelete framecan change or delete dataDelete frame ``number`` (1-based). Cannot delete the last frame.
delete_layerDelete layercan change or delete dataDelete the layer with the given name.
delete_sliceDelete slicecan change or delete dataDelete the slice with the given name. One undo step. Headless: pass ``file``.
delete_tagDelete tagcan change or delete dataDelete the animation tag named ``name``.
desaturateDesaturateConvert the active cel to grayscale (Rec. 601 luma), keeping alpha. One undo step. Headless: pass ``file``.
deselectDeselectClear the current selection.
draw_circleDraw circleDraw a circle centered at (center_x, center_y). ``fill`` true fills the disk. One undo step. Headless: pass ``file``.
draw_ellipseDraw ellipseDraw an ellipse centered at (center_x, center_y) with independent x/y radii. ``fill`` true fills it. One undo step. Headless: pass ``file``.
draw_gradientDraw gradientFill a rectangle with a linear gradient from ``color1`` to ``color2``. ``direction`` is horizontal | vertical | diagonal. ``dither`` true uses an ordered Bayer dither between the two colors instead of blending RGB — the palette-friendly way. One undo step. Headless: pass ``file``.
draw_iso_boxDraw isometric boxDraw a 2:1 isometric box. The footprint diamond is centered at (center_x, center_y) with the given ``half_width`` (full tile width = 2×half_width), rising ``height`` px. Top/left/right faces are auto-shaded from ``color`` (#rrggbb, light from top-left) with stroke + highlight. Returns the top/SE/SW face corner polygons so you can attach recessed ports or details. One undo step. Headless: pass ``file``.
draw_iso_cylinderDraw isometric cylinderDraw a vertical isometric cylinder (tank/silo/chimney): top ellipse + shaded body + front rim, auto-shaded from ``color``. ``top_y`` is the top of the body. One undo step. Headless: pass ``file``.
draw_lineDraw lineDraw a 1px line from (x1,y1) to (x2,y2). One undo step. Headless: pass ``file``.
draw_on_tileDraw on tileSet pixels on one tile of a tilemap layer's tileset. ``pixels`` is a list of {x, y, color} objects (color #rrggbb or #rrggbbaa; x/y relative to the tile's top-left). Pixels outside the tile are skipped and counted. Every placed instance of the tile updates. One undo step. Headless: pass ``file``.
draw_pixelsDraw pixelsSet individual pixels: ``pixels`` is a list of ``{"x": int, "y": int, "color": "#rrggbb[aa]"}``. The precision tool for detail work — one undo step for the whole batch. Capped at 4096 pixels per call. Headless: pass ``file``.
draw_polylineDraw polylineStroke connected line segments through ``points`` (ordered [x, y] pairs); ``close=True`` joins the last point back to the first. One undo step. Headless: pass ``file``.
draw_rectangleDraw rectangleDraw a rectangle on the active layer + frame. ``color`` is #rrggbb or #rrggbbaa. ``fill`` false draws only the outline. One undo step (live). Headless: pass ``file``.
duplicate_frameDuplicate frameDuplicate frame ``number`` (1-based).
duplicate_layerDuplicate layerDuplicate a layer (with its cels) above the original.
erase_areaErase areacan change or delete dataErase pixels to transparent. Pass an explicit rect (works everywhere, including headless), or pass nothing to erase the current selection — including non-rectangular ones (live editor). One undo step.
expand_canvasExpand canvasGrow (or shrink, with negatives) the canvas per side WITHOUT scaling content — existing pixels keep their positions relative to the old origin. One undo step. Headless: pass ``file``.
export_layersExport layersExport every image layer (recursing into groups) as its own PNG in ``out_dir``, named ``<sanitized-layer-name>.png``. Hidden layers are exported too; every layer's original visibility is restored afterwards, so the document ends exactly as it started. A multi-frame sprite splits each layer into ``<name>1.png``, ``<name>2.png``, ...; the returned ``files`` lists what was actually written. Headless: pass ``file``.
export_spriteExport spriteExport the active sprite to a file; format is chosen by ``out_path`` extension (.png, .gif, ...). A multi-frame sprite saved to a single-image format is split into ``<name>1.ext``, ``<name>2.ext``, ...; a multi-frame sprite saved to ``.gif`` becomes one animated GIF (all frames, honoring per-frame durations). The returned ``files`` lists what was actually written. Does not modify the sprite. Headless: pass ``file``.
export_spritesheetExport spritesheetPack all frames into a single sprite-sheet image (optionally writing a JSON atlas to ``data_path``). ``sheet_type`` is rows | columns | horizontal | vertical | packed. Does not modify the sprite. Headless: pass ``file``.
export_tagsExport tagsExport each animation tag's frame range as its own file in ``out_dir``: an animated ``<tag-name>.gif`` (format="gif", default) or a horizontal ``<tag-name>.png`` strip (format="png"). Errors if the sprite has no tags. Returns each tag's file, frame range, and frame count. Does not modify the sprite. Headless: pass ``file``.
export_tilesetExport tilesetExport a tilemap layer's tileset as a horizontal PNG strip (plus an Aseprite JSON atlas if ``data_path`` is given). The strip includes tile 0 (the empty tile) first, so tile index i sits at x = i * tile_width. Writes files but does not modify the sprite (it does make the layer active). Headless: pass ``file``.
export_unity_slicesExport Unity slicesExport the sprite as a single PNG AND write a Unity ``.meta`` with one Multiple-mode sprite **per named slice**, each carrying that slice's pivot — so an atlas laid out with slices imports into Unity already sliced *and* pivoted. No competitor's Aseprite→Unity path exports pivots. Requires slices (see create_slice / set_slice_pivot). Headless: pass ``file``.
export_unity_spriteExport Unity spriteExport a horizontal sprite sheet AND write the Unity ``.meta`` beside it, pre-sliced into named Multiple-mode sprites (one per frame) — one action, no manual Sprite Editor pass. ``alignment`` is one of center, top_left, top, top_right, left, right, bottom_left, bottom, bottom_right, custom; ``custom`` uses ``pivot_x``/``pivot_y`` (0..1, 0,0 = bottom left). Targets Unity 2021.3+/6. Headless: pass ``file``.
extract_palette_from_imageExtract palette from imageExtract a palette (median-cut) from an external image file and, by default, set it as the active sprite's palette — the concept-art → locked-palette step. Returns the colors as hex, sorted dark→light. Headless: pass ``file``.
fill_areaFlood fillFlood-fill the contiguous same-color region at (x, y). Most reliable on RGB sprites. One undo step. Headless: pass ``file``.
fill_polygonFill polygonScanline-fill an arbitrary polygon given ``points`` (a list of [x, y] pairs, in order). ``color`` is #rrggbb or #rrggbbaa. One undo step. Headless: pass ``file``.
flatten_spriteFlatten spritecan change or delete dataFlatten all layers into a single layer.
flip_spriteFlip spriteFlip the whole sprite horizontally or vertically.
frame_diffFrame diffread-onlyPixel-exact diff of two composited frames: changed-pixel count and ratio, the bounding box of the change, and whether they're identical. Use it to verify an animation actually moves — or that an edit didn't leak into frames it shouldn't touch. Headless: pass ``file``.
generate_color_rampGenerate color rampGenerate a dark->light shading ramp from ``base_color`` and APPEND it to the palette in order — ready for ``palette_ramp_walk``. ``count`` colors; ``hue_shift`` pushes shadows toward blue and highlights toward yellow. Returns the ramp as hex. One undo step. Headless: pass ``file``.
get_asked_pointGet asked pointread-onlyPoll the result of ``ask_point``: ``done`` false while waiting, then the clicked ``x``/``y`` (or ``cancelled`` if the artist pressed Esc).
get_color_statsColor statsread-onlyReturn a color histogram of the composited sprite: distinct opaque color count, total opaque pixels, and the ``top`` most-used colors with counts — a palette-drift check for the art-QA loop. Read-only. Headless: pass ``file``.
get_dialog_choiceGet dialog choiceread-onlyPoll the result of ``show_choice_dialog``: ``done`` false while the dialog is open, then the chosen button text.
get_editor_stateEditor view stateread-onlyLive editor only: current zoom, scroll, and which sprite pixel the mouse is over — lets an agent know what the artist is looking at.
get_paletteGet paletteread-onlyReturn the active sprite's palette as #rrggbbaa hex strings.
get_pixelGet pixelread-onlyRead one composited pixel (all layers) at (x, y) as #rrggbbaa.
get_pixelsGet pixelsread-onlyRead a composited pixel region as a grid of #rrggbbaa strings — the AI feedback loop for 'what does the canvas look like now'. Capped at 4096 px; use a smaller region or export for larger areas.
get_selectionGet selectionread-onlyReport whether a selection exists and its bounding rectangle. (Selection is editor-session state — in headless mode it doesn't persist between calls, so this is mainly a live-editor tool.)
get_sprite_infoSprite inforead-onlyGet the active sprite's size, color mode, and layer/frame/tag lists. Headless: pass ``file`` (the .aseprite to inspect).
get_sprite_metadataGet sprite metadataread-onlyRead the sprite's typed key/value metadata (Properties).
get_tilemap_infoGet tilemap inforead-onlyRead a tilemap layer: tile size, tileset length, and the cel's grid size, pixel position, and tile-index grid (``tiles`` as rows of columns, flip flags stripped; capped at 64x64 with ``truncated`` set). Read-only. Headless: pass ``file``.
get_watched_changesGet watched changesread-onlyPoll the change counter started by ``watch_changes`` (``reset=True`` zeroes it after reading).
import_image_as_layerImport image as layerImport an external image file (PNG, etc.) into a new layer at (x, y) — a reference/trace layer for concept-art intake. One undo step. Headless: pass ``file``.
import_spritesheetImport sprite sheetSlice a sheet PNG into animation frames: cells are read row-major at the given frame size onto a new "imported" layer, adding frames as needed. The sheet's dimensions must be exact multiples of the frame size. One undo step. Headless: pass ``file`` (the target sprite).
invert_colorsInvert colorsInvert the active cel's RGB (alpha untouched). One undo step.
invert_selectionInvert selectionInvert the current selection against the canvas bounds.
iso_recessed_panelIso recessed panelDraw a recessed docking socket/port on an isometric face — a light lit lip framing a dark recessed interior. ``points`` = the 4 corner [x, y] pairs of a face (e.g. the ``face_se`` returned by draw_iso_box). This is the consistent I/O-port style. One undo step. Headless: pass ``file``.
list_layersList layersread-onlyThe full layer tree, top of stack first: name, path, kind (image/group/tilemap), visibility, and opacity — including layers nested in groups (which ``get_sprite_info`` lists only at the top level).
list_slicesList slicesread-onlyList every slice with its bounds, pivot, and 9-patch center. Read-only. Headless: pass ``file``.
list_spritesList open spritesread-onlyLive editor only: list every open document — filename (or "(unsaved)"), size, frame/layer counts, unsaved-changes flag, and which one is active.
list_tagsList tagsread-onlyList animation tags with their frame ranges.
load_paletteLoad palette fileReplace the sprite's palette from a palette file (.gpl, .pal, .ase, .png strip — anything Aseprite reads). One undo step.
measure_paddingMeasure paddingread-onlyMeasure the transparent 'sticker' padding around the content: content bounding box, per-side padding (left/right/top/bottom), fill ratio, and distinct opaque color count. Read-only. Headless: pass ``file``.
merge_layer_downMerge layer downcan change or delete dataMerge a layer into the layer directly beneath it.
move_layerMove layerReorder a layer in the stack. ``direction`` is up | down | top | bottom (bottom = stack index 1).
move_layer_to_groupMove layer into groupMove a layer inside a layer group.
open_spriteOpen spriteOpen a sprite file and make it the active document; returns its filename, size, and frame/layer counts. Live: opens a new tab in the editor. Headless: each call is a fresh process, so this is a "can Aseprite read this file" probe returning the file's info — to edit a file headless, pass it as the ``file`` argument of the editing tools instead.
paint_with_stampPaint with stampStamp an image at each [x, y] in ``points`` (points are stamp centers). The stamp comes from ``source_path`` (a PNG) or ``source_rect`` ([x, y, width, height] cut from the composited sprite). One undo step for the whole scatter. Headless: pass ``file``.
palette_from_spritePalette from spriteDerive the palette FROM the sprite's actual pixels (Aseprite's color quantization) — the inverse of ``quantize_to_palette``. Returns the new palette as hex. One undo step.
palette_ramp_walkPalette ramp-walk shadingShade by WALKING the arranged palette ±N indices toward lighter/darker (per light direction), instead of snapping to the luminance-nearest color — so hand-ordered shading ramps are respected. ``steps`` = max indices to walk at the fully-lit/shadowed edges. RGB sprite with an ordered ramp palette; one undo step. Headless: pass ``file``.
qa_sweepArt-QA sweepread-onlyAudit the active sprite against project conventions and return per-check pass/fail. Any rule you pass is checked: exact canvas size (``expected_width``/``expected_height``), ``grid_multiple`` (canvas dims divisible by N), ``max_colors`` (distinct opaque colors ≤ N), and ``require_symmetric_padding`` (equal left/right + top/bottom margins). Read-only. Headless: pass ``file``.
quantize_to_paletteQuantize to paletteSnap every opaque pixel of the active cel to its nearest color in the sprite's palette (alpha preserved) — enforce palette discipline after intake or shading. RGB sprite; one undo step. Headless: pass ``file``.
redoRedoRedo the last undone edit (live editor).
rename_layerRename layerRename a layer.
rename_tagRename tagRename the animation tag ``old_name`` to ``new_name``. One undo step. Headless: pass ``file``.
render_onion_compositeRender onion-skin compositeWrite a PNG of ``frame`` with up to ``prev`` earlier frames ghosted in red and ``next`` later frames ghosted in blue (Aseprite's onion-skin convention) at the given ghost ``opacity`` — so you can *see* the motion arc in one image. Does not modify the sprite. Headless: pass ``file``.
replace_colorReplace colorReplace every pixel matching ``from_color`` (within ``tolerance``, a 0-255 RGB distance) with ``to_color`` across the active cel, preserving each pixel's alpha unless ``to_color`` carries its own. One undo step. Headless: pass ``file``.
resize_spriteResize spriteScale the whole sprite to new pixel dimensions.
reverse_framesReverse framesReverse frame order (cels on every layer, plus durations) — the whole sprite by default, or the inclusive [from_frame..to_frame] range. One undo step.
rotate_spriteRotate spriteRotate the whole sprite by 90, 180, or 270 degrees clockwise (lossless). One undo step. Headless: pass ``file``.
run_luaRun Lua (advanced)can change or delete dataRun arbitrary Lua inside Aseprite and return its result (advanced escape hatch — equivalent to local code execution). ``J(value)`` is available for JSON returns; wrap your own edits in ``app.transaction`` for clean undo. The prelude also provides ``editCel(fn)`` and ``findLayer(s, name)``. Set ``save=true`` (headless) to persist changes to ``file``. Your code must ``return`` a value.
save_paletteSave palette fileWrite the sprite's palette to a file (.gpl, .pal, .png — by extension).
save_spriteSave spriteSave the active sprite to disk: to ``path`` if given (save-as; the document's filename follows it), else to its own filename — errors if the sprite is untitled and no ``path`` is given. Live: persists the edits sitting in the open editor. Headless: mutating tools already save to ``file`` on their own; use this with both arguments to write a copy of ``file`` under a new ``path`` (the source file on disk stays untouched).
select_allSelect allSelect the whole canvas.
select_by_colorSelect by colorSelect every pixel matching ``color`` (composited, within ``tolerance`` 0-255 per channel) — a global magic wand. ``mode`` is ``replace``/``add``/``subtract``.
select_ellipseSelect ellipseSelect an ellipse inscribed in the given rectangle. ``mode`` is ``replace`` (default), ``add``, or ``subtract`` against the current selection.
select_rectangleSelect rectangleSet a rectangular selection. Most meaningful on the live editor.
set_active_spriteSet active spriteLive editor only: make one of the open documents active, found by exact filename or basename match (e.g. "turret.aseprite"). Returns which sprite matched and how. Subsequent tools operate on it.
set_cel_opacitySet cel opacitySet the cel's opacity (0-255).
set_cel_positionSet cel positionMove the cel's top-left origin to (x, y).
set_color_modeSet color modeConvert the sprite between rgb | gray | indexed color modes. ``dithering`` applies only when converting to indexed: ordered | old | error-diffusion (default none). Returns the old and new mode. One undo step. Headless: pass ``file``.
set_editor_viewSet editor viewLive editor only: set the viewport zoom (1.0 = 100%) and/or scroll — e.g. zoom to the region you're about to edit so the artist can watch.
set_frame_durationSet frame durationSet frame ``number``'s duration in milliseconds.
set_frame_durationsSet frame durationsSet every frame in [from_frame..to_frame] to ``ms`` milliseconds.
set_layer_blend_modeSet layer blend modeSet a layer's blend mode. One of: normal, multiply, screen, overlay, darken, lighten, color_dodge, color_burn, hard_light, soft_light, difference, exclusion, hue, saturation, color, luminosity, addition, subtract, divide.
set_layer_opacitySet layer opacitySet a layer's opacity (0-255).
set_layer_visibilitySet layer visibilityShow or hide a layer.
set_onion_skinSet onion skinConfigure the editor's onion-skin view: on/off, ghost counts each direction, and whether ghosting stays inside the current tag. A view preference — visually meaningful in the live editor. (For a rendered onion-skin image any backend can produce, use ``render_onion_composite``.)
set_paletteSet paletteReplace the whole palette with ``colors`` (list of #rrggbb/#rrggbbaa).
set_palette_colorSet palette colorSet palette entry ``index`` to ``color`` (#rrggbb or #rrggbbaa).
set_slice_centerSet slice center (9-patch)Set a slice's 9-patch stretchable center rectangle (relative to the slice). One undo step. Headless: pass ``file``.
set_slice_pivotSet slice pivotSet a slice's pivot point, in pixels relative to the slice's top-left. This pivot is exported into the Unity ``.meta`` by export_unity_slices. One undo step. Headless: pass ``file``.
set_sprite_metadataSet sprite metadataAttach typed key/value metadata to the sprite (Aseprite's Properties system — stored in the .aseprite file itself). Values may be strings, numbers, or booleans. Useful for provenance ("generated_by", spec IDs) and pipeline state. One undo step.
set_symmetrySet symmetryLive editor only: set mirror-painting symmetry — ``mode`` is ``none``, ``horizontal`` (mirror across a vertical axis), ``vertical``, or ``both``; optionally place the axis lines. Affects the artist's subsequent brush strokes.
set_tag_colorSet tag colorSet the timeline label color of the tag ``name`` (#rrggbb or #rrggbbaa). One undo step. Headless: pass ``file``.
set_tag_directionSet tag directionSet the playback direction of the tag ``name``: forward | reverse | pingpong | pingpong_reverse. One undo step. Headless: pass ``file``.
set_tag_rangeSet tag rangeMove the tag ``name`` to span frames ``from_frame``..``to_frame`` (1-based, inclusive; validated against the sprite's frame count). One undo step. Headless: pass ``file``.
set_tilesSet tilesPlace tile references on a tilemap layer's cel. ``tiles`` is a list of {column, row, index} objects (0-based grid cells; index 0 erases to the empty tile). The cel is created or grown as needed, anchored at the sprite origin. ``frame`` is 1-based. One undo step. Headless: pass ``file``.
sharpenSharpenSharpen the active cel (unsharp mask over a 3x3 neighborhood). ``strength`` 0.1-2.0. Only opaque pixels are considered, so sprite edges don't halo against transparency. One undo step.
show_choice_dialogShow choice dialogLive editor only: pop a small dialog IN Aseprite with a message and up to 4 option buttons (e.g. approve/redo). Non-blocking — call ``get_dialog_choice`` to collect the artist's pick.
smear_frameSmear frameAppend a motion-smear frame blending ``from_frame`` and ``to_frame``: overlapping pixels averaged, single-frame areas ghosted at half alpha — a pixel-content smear. RGB sprite only. Headless: pass ``file``.
sort_paletteSort paletteReorder palette swatches by ``luminance`` (default), ``hue``, or ``saturation``. Intended for RGB sprites' swatch organization — on an INDEXED sprite this changes which color each pixel shows (indices aren't remapped). One undo step.
statusBackend statusread-onlyReport backend health plus this server's version and whether a newer release exists. Live: whether Aseprite is connected + its version. Headless: the resolved Aseprite executable path and whether it exists.
stop_watching_changesStop watching changesDetach the ``watch_changes`` listener.
tween_cel_opacityTween cel opacityFade a layer's cels across [from_frame..to_frame]: opacity interpolates from ``from_opacity`` to ``to_opacity`` (0-255) with the chosen easing. Every frame in the range needs a cel on the layer. One undo step.
tween_framesTween framesInsert ``count`` in-between frames between ``from_frame`` and ``to_frame`` that interpolate the cel's position (a motion tween of the start cel's image). ``easing``: linear, ease_in, ease_out, or smoothstep. Headless: pass ``file``.
undoUndoUndo the last edit on the active sprite (live editor).
watch_changesWatch sprite changesLive editor only: start counting edits the ARTIST makes to the active sprite (via ``Sprite.events``). Poll with ``get_watched_changes`` — e.g. wait for the artist to finish touching up, then re-run the QA sweep.
Signals
- Stars
- 8
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 98
- Last commit
- Jul 29, 2026 (3 months ago)
- Last release
- Jul 17, 2026 (3 months ago)
- Last package publish
- Jul 17, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.oaktreegames/aseprite-live-mcp- Version
- 0.2.0
- Auth
- No auth
- Packages
- pypi aseprite-live-mcp
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Aseprite Live MCP server. Agent Mart. https://agentmart.dev/connectors/oaktreegames-aseprite-live-mcp (last updated 2026-10-24)