Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)★ 8
Write a review

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.

We use your email only for this newsletter. Privacy

About

Live+headless Aseprite MCP: Unity export, art-QA, tilemaps, in-editor dialogs, update-aware

No 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_point
  • desaturate
  • extract_palette_from_image
  • frame_diff
  • get_asked_point
  • get_color_stats
  • get_dialog_choice
  • get_editor_state
  • get_palette
  • get_pixel
  • get_pixels
  • get_selection
Show 13 more tools
  • get_sprite_info
  • get_sprite_metadata
  • get_tilemap_info
  • get_watched_changes
  • list_layers
  • list_slices
  • list_sprites
  • list_tags
  • measure_padding
  • qa_sweep
  • show_choice_dialog
  • status
  • watch_changes

Write 64 · Create, change, send or run things.

  • add_frame
  • add_frames
  • add_group
  • add_layer
  • add_outline
  • add_palette_color
  • add_tile
  • apply_bundled_palette
  • apply_dither
  • apply_preset_palette
  • apply_shading
  • batch_apply_palette
Show 52 more tools
  • batch_resize
  • cancel_ask_point
  • create_slice
  • create_sprite
  • create_tag
  • create_tilemap_layer
  • draw_gradient
  • draw_on_tile
  • draw_pixels
  • export_tags
  • fill_area
  • fill_polygon
  • import_image_as_layer
  • import_spritesheet
  • load_palette
  • move_layer
  • move_layer_to_group
  • rename_layer
  • rename_tag
  • render_onion_composite
  • replace_color
  • resize_sprite
  • save_palette
  • save_sprite
  • select_all
  • select_by_color
  • select_ellipse
  • select_rectangle
  • set_active_sprite
  • set_cel_opacity
  • set_cel_position
  • set_color_mode
  • set_editor_view
  • set_frame_duration
  • set_frame_durations
  • set_layer_blend_mode
  • set_layer_opacity
  • set_layer_visibility
  • set_onion_skin
  • set_palette
  • set_palette_color
  • set_slice_center
  • set_slice_pivot
  • set_sprite_metadata
  • set_symmetry
  • set_tag_color
  • set_tag_direction
  • set_tag_range
  • set_tiles
  • smear_frame
  • stop_watching_changes
  • tween_frames

Delete 12 · Delete, drop, revoke or wipe things.

  • clear_cel
  • close_sprite
  • crop_sprite
  • delete_frame
  • delete_layer
  • delete_slice
  • delete_tag
  • deselect
  • erase_area
  • flatten_sprite
  • merge_layer_down
  • run_lua

Not yet classified 38 · We could not tell from the name and description.

  • adjust_brightness_contrast
  • adjust_hsl
  • autocrop_sprite
  • batch_export
  • box_blur
  • draw_circle
  • draw_ellipse
  • draw_iso_box
  • draw_iso_cylinder
  • draw_line
  • draw_polyline
  • draw_rectangle
Show 26 more tools
  • duplicate_frame
  • duplicate_layer
  • expand_canvas
  • export_layers
  • export_sprite
  • export_spritesheet
  • export_tileset
  • export_unity_slices
  • export_unity_sprite
  • flip_sprite
  • generate_color_ramp
  • invert_colors
  • invert_selection
  • iso_recessed_panel
  • open_sprite
  • paint_with_stamp
  • palette_from_sprite
  • palette_ramp_walk
  • quantize_to_palette
  • redo
  • reverse_frames
  • rotate_sprite
  • sharpen
  • sort_palette
  • tween_cel_opacity
  • undo

Secrets and settings it asks for

Other settings (environment variables or headers).

  • ASEPRITE_MCP_BACKEND
  • ASEPRITE_MCP_NO_UPDATE_CHECK
  • ASEPRITE_PATH
  • ASEPRITE_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 frame

    Append a new empty frame.

  • add_framesAdd frames

    Append ``count`` empty frames in one undo step.

  • add_groupAdd layer group

    Add a layer group. Move layers into it with ``move_layer_to_group``; reference nested layers anywhere by name or as ``Group/Layer``.

  • add_layerAdd layer

    Add a new empty layer (optionally named) at the top of the stack.

  • add_outlineAdd outline

    Add 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 color

    Append ``color`` to the palette and return its new index.

  • add_tileAdd tile

    Append 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 / contrast

    Adjust the active cel's brightness and contrast, each -100..100 (0 = unchanged). Alpha is preserved. One undo step. Headless: pass ``file``.

  • adjust_hslAdjust HSL

    Shift 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 palette

    Apply 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 dither

    Fill 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 palette

    Replace the palette with a built-in preset: gameboy | pico8 | cga.

  • apply_shadingApply shading

    Palette-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 point

    Live 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 palette

    Palette-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 folder

    Export 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 folder

    Resize 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 blur

    Blur 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 request

    Withdraw a pending ``ask_point`` request (e.g. the artist stepped away and you're moving on).

  • clear_celClear celcan change or delete data

    Empty the cel at the given layer + frame (transparent).

  • close_spriteClose spritecan change or delete data

    Close 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 slice

    Create 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 sprite

    Create 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 tag

    Create an animation tag named ``name`` spanning frames ``from_frame``..``to_frame`` (1-based).

  • create_tilemap_layerCreate tilemap layer

    Create 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 data

    Crop the sprite to the given rectangle.

  • delete_frameDelete framecan change or delete data

    Delete frame ``number`` (1-based). Cannot delete the last frame.

  • delete_layerDelete layercan change or delete data

    Delete the layer with the given name.

  • delete_sliceDelete slicecan change or delete data

    Delete the slice with the given name. One undo step. Headless: pass ``file``.

  • delete_tagDelete tagcan change or delete data

    Delete the animation tag named ``name``.

  • desaturateDesaturate

    Convert the active cel to grayscale (Rec. 601 luma), keeping alpha. One undo step. Headless: pass ``file``.

  • deselectDeselect

    Clear the current selection.

  • draw_circleDraw circle

    Draw a circle centered at (center_x, center_y). ``fill`` true fills the disk. One undo step. Headless: pass ``file``.

  • draw_ellipseDraw ellipse

    Draw 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 gradient

    Fill 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 box

    Draw 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 cylinder

    Draw 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 line

    Draw a 1px line from (x1,y1) to (x2,y2). One undo step. Headless: pass ``file``.

  • draw_on_tileDraw on tile

    Set 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 pixels

    Set 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 polyline

    Stroke 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 rectangle

    Draw 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 frame

    Duplicate frame ``number`` (1-based).

  • duplicate_layerDuplicate layer

    Duplicate a layer (with its cels) above the original.

  • erase_areaErase areacan change or delete data

    Erase 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 canvas

    Grow (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 layers

    Export 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 sprite

    Export 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 spritesheet

    Pack 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 tags

    Export 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 tileset

    Export 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 slices

    Export 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 sprite

    Export 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 image

    Extract 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 fill

    Flood-fill the contiguous same-color region at (x, y). Most reliable on RGB sprites. One undo step. Headless: pass ``file``.

  • fill_polygonFill polygon

    Scanline-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 data

    Flatten all layers into a single layer.

  • flip_spriteFlip sprite

    Flip the whole sprite horizontally or vertically.

  • frame_diffFrame diffread-only

    Pixel-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 ramp

    Generate 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-only

    Poll 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-only

    Return 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-only

    Poll the result of ``show_choice_dialog``: ``done`` false while the dialog is open, then the chosen button text.

  • get_editor_stateEditor view stateread-only

    Live 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-only

    Return the active sprite's palette as #rrggbbaa hex strings.

  • get_pixelGet pixelread-only

    Read one composited pixel (all layers) at (x, y) as #rrggbbaa.

  • get_pixelsGet pixelsread-only

    Read 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-only

    Report 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-only

    Get the active sprite's size, color mode, and layer/frame/tag lists. Headless: pass ``file`` (the .aseprite to inspect).

  • get_sprite_metadataGet sprite metadataread-only

    Read the sprite's typed key/value metadata (Properties).

  • get_tilemap_infoGet tilemap inforead-only

    Read 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-only

    Poll the change counter started by ``watch_changes`` (``reset=True`` zeroes it after reading).

  • import_image_as_layerImport image as layer

    Import 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 sheet

    Slice 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 colors

    Invert the active cel's RGB (alpha untouched). One undo step.

  • invert_selectionInvert selection

    Invert the current selection against the canvas bounds.

  • iso_recessed_panelIso recessed panel

    Draw 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-only

    The 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-only

    List every slice with its bounds, pivot, and 9-patch center. Read-only. Headless: pass ``file``.

  • list_spritesList open spritesread-only

    Live editor only: list every open document — filename (or "(unsaved)"), size, frame/layer counts, unsaved-changes flag, and which one is active.

  • list_tagsList tagsread-only

    List animation tags with their frame ranges.

  • load_paletteLoad palette file

    Replace the sprite's palette from a palette file (.gpl, .pal, .ase, .png strip — anything Aseprite reads). One undo step.

  • measure_paddingMeasure paddingread-only

    Measure 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 data

    Merge a layer into the layer directly beneath it.

  • move_layerMove layer

    Reorder a layer in the stack. ``direction`` is up | down | top | bottom (bottom = stack index 1).

  • move_layer_to_groupMove layer into group

    Move a layer inside a layer group.

  • open_spriteOpen sprite

    Open 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 stamp

    Stamp 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 sprite

    Derive 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 shading

    Shade 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-only

    Audit 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 palette

    Snap 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``.

  • redoRedo

    Redo the last undone edit (live editor).

  • rename_layerRename layer

    Rename a layer.

  • rename_tagRename tag

    Rename the animation tag ``old_name`` to ``new_name``. One undo step. Headless: pass ``file``.

  • render_onion_compositeRender onion-skin composite

    Write 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 color

    Replace 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 sprite

    Scale the whole sprite to new pixel dimensions.

  • reverse_framesReverse frames

    Reverse 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 sprite

    Rotate 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 data

    Run 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 file

    Write the sprite's palette to a file (.gpl, .pal, .png — by extension).

  • save_spriteSave sprite

    Save 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 all

    Select the whole canvas.

  • select_by_colorSelect by color

    Select every pixel matching ``color`` (composited, within ``tolerance`` 0-255 per channel) — a global magic wand. ``mode`` is ``replace``/``add``/``subtract``.

  • select_ellipseSelect ellipse

    Select an ellipse inscribed in the given rectangle. ``mode`` is ``replace`` (default), ``add``, or ``subtract`` against the current selection.

  • select_rectangleSelect rectangle

    Set a rectangular selection. Most meaningful on the live editor.

  • set_active_spriteSet active sprite

    Live 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 opacity

    Set the cel's opacity (0-255).

  • set_cel_positionSet cel position

    Move the cel's top-left origin to (x, y).

  • set_color_modeSet color mode

    Convert 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 view

    Live 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 duration

    Set frame ``number``'s duration in milliseconds.

  • set_frame_durationsSet frame durations

    Set every frame in [from_frame..to_frame] to ``ms`` milliseconds.

  • set_layer_blend_modeSet layer blend mode

    Set 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 opacity

    Set a layer's opacity (0-255).

  • set_layer_visibilitySet layer visibility

    Show or hide a layer.

  • set_onion_skinSet onion skin

    Configure 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 palette

    Replace the whole palette with ``colors`` (list of #rrggbb/#rrggbbaa).

  • set_palette_colorSet palette color

    Set 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 pivot

    Set 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 metadata

    Attach 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 symmetry

    Live 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 color

    Set the timeline label color of the tag ``name`` (#rrggbb or #rrggbbaa). One undo step. Headless: pass ``file``.

  • set_tag_directionSet tag direction

    Set the playback direction of the tag ``name``: forward | reverse | pingpong | pingpong_reverse. One undo step. Headless: pass ``file``.

  • set_tag_rangeSet tag range

    Move 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 tiles

    Place 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``.

  • sharpenSharpen

    Sharpen 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 dialog

    Live 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 frame

    Append 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 palette

    Reorder 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-only

    Report 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 changes

    Detach the ``watch_changes`` listener.

  • tween_cel_opacityTween cel opacity

    Fade 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 frames

    Insert ``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``.

  • undoUndo

    Undo the last edit on the active sprite (live editor).

  • watch_changesWatch sprite changes

    Live 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)