Aseprite Asset MCP
Provides tools for creating and managing Aseprite pixel art assets, including characters, scenes, tilemaps, palettes, frames, tags, and export of spritesheets with reproducible plans and manifests.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Aseprite Asset MCP create a pixel art character sprite for moon-knight"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Aseprite Asset MCP
Plan de arquitectura y evolución: docs/IMPROVEMENT_PLAN.md. La integración con la UX independiente está documentada en docs/ASSET_STUDIO_INTEGRATION.md.
MCP server público para crear pixel art, personajes y escenarios de Aseprite con TypeScript 6.0.3, Node.js 24 y arquitectura hexagonal.
El servidor usa stdio. El adaptador MCP llama a casos de uso de aplicación y el adaptador de infraestructura ejecuta Aseprite de forma controlada. Los workflows generan primero un plan JSON reproducible y un manifiesto compatible con Godot.
Install / Quickstart
En 5 minutos:
Requisitos: Node.js 24 o posterior, npm 11 o posterior y Aseprite instalado. El servidor invoca el binario de Aseprite; si no está en el
PATH, defineASEPRITE_PATH:
$env:ASEPRITE_PATH = 'C:\Program Files (x86)\Steam\steamapps\common\Aseprite\Aseprite.exe'Ejecuta el servidor sin instalarlo (paquete público en npm) o instálalo globalmente para obtener el bin
aseprite-asset-mcp:
npx -y aseprite-asset-mcp
# o
npm install -g aseprite-asset-mcp && aseprite-asset-mcpApunta tu cliente MCP al bin. El servidor habla stdio y
ASEPRITE_PATHse pasa como variable de entorno.
Claude Desktop (claude_desktop_config.json) y Cursor (mcp.json) usan mcpServers:
{
"mcpServers": {
"aseprite": {
"command": "npx",
"args": ["-y", "aseprite-asset-mcp"],
"env": {
"ASEPRITE_PATH": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Aseprite\\Aseprite.exe"
}
}
}
}OpenCode (opencode.json) usa mcp con type: "local":
{
"mcp": {
"aseprite": {
"type": "local",
"command": ["npx", "-y", "aseprite-asset-mcp"],
"environment": {
"ASEPRITE_PATH": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Aseprite\\Aseprite.exe"
},
"enabled": true
}
}
}Si instalaste el paquete globalmente, usa "command": "aseprite-asset-mcp" y omite args.
Verifica el handshake pidiendo al agente
server_capabilitiesoget_tools_list. Debe reportar 185 tools.
Related MCP server: aseprite-mcp
Arquitectura
src/
domain/ contratos y resultados del dominio
application/ casos de uso
infrastructure/ adaptador CLI de Aseprite
interfaces/ adaptador MCP y entrada stdio
workflows/ planes TypeScript y cliente MCP
tests-ts/ TDD unitario y handshake MCPEstado de la migración
La rama develop usa únicamente el runtime TypeScript. El núcleo disponible incluye canvas, grupos, capas, frames, tags, paletas, dibujo pixelado, tilemaps, validación, exportación, planes deterministas para personajes y escenarios, y handshake MCP real por stdio.
Este proyecto mantiene su propio desarrollo, roadmap y contrato de herramientas para convertirlo en una fábrica de assets pixel-art eficiente para agentes.
Showcase visual
Los ejemplos se generan de forma reproducible con npm run showcase. El mismo pipeline crea estilo, tileset, mapa, oleaje, transición temporal y manifests.



Ver también:
Requisitos
Node.js 24 o posterior.
npm 11 o posterior.
Aseprite instalado y accesible.
ASEPRITE_PATHconfigurado si el ejecutable no está en el PATH.
En Windows:
$env:ASEPRITE_PATH = 'C:\Program Files (x86)\Steam\steamapps\common\Aseprite\Aseprite.exe'
npm install
npm testConectar el MCP
.mcp.json usa el servidor TypeScript:
{
"mcpServers": {
"aseprite": {
"type": "stdio",
"command": "npm",
"args": ["run", "mcp", "--silent"]
}
}
}Ejecuta manualmente con npm run mcp. stdout pertenece al protocolo MCP; los logs operativos van a stderr.
Workflows para juegos
Modo plan:
npm run asset:character -- --asset=moon-knight
npm run asset:scene -- --asset=forest-ruinsEsto crea en artifacts/aseprite/ el plan de llamadas y el manifiesto *.godot.json.
Modo ejecución, después de revisar el plan:
$env:ASEPRITE_PATH = 'C:\Program Files (x86)\Steam\steamapps\common\Aseprite\Aseprite.exe'
npm run asset:character -- --asset=moon-knight --execute
npm run asset:scene -- --asset=forest-ruins --execute
npm run asset:odiseum-style
npm run asset:odiseum-world
npm run asset:library
npm run showcaseSecuencia: canvas; grupos y capas semánticas; paleta; frames y tags; validación; spritesheet, datos y manifiesto para Godot.
asset:odiseum-style genera los personajes, el entrenador y la transición de viaje de Odiseum. asset:odiseum-world genera el sheet de seis props, el glifo animado de los portales y el cristal animado exclusivo de Starfall Grove con la misma paleta cozy. asset:library genera odiseum-cozy-kit, una biblioteca reutilizable de ocho assets de entorno de 48 px con sombras de contacto, navegación, naturaleza y arquitectura.
La biblioteca se exporta en art/library/odiseum-cozy-kit.png junto con asset-library.json. El manifiesto documenta el índice de cada frame, categoría, paleta, escala y regla de renderizado nearest para reutilizar el kit en otros juegos originales.
Herramientas compactas para agentes
El agente puede descubrir capacidades por carpetas antes de cargar detalles:
get_tools_list: devuelve carpetas y conteos sin repetir los más de cien nombres.get_tools_by_folder: carga solo una familia, por ejemploasset/animationoasset/quality.run_asset_recipe: ejecuta o previsualiza recetaspixel_art,animation_pixel_art,gifyatlas.batch_asset_job: agrupa varias recetas en una sola llamada y devuelve un resultado compacto.convert_image_to_pixel_art: convierte PNG, JPG, WebP y otros formatos soportados por Sharp con resize box/nearest, paleta limitada, transparencia y dithering Bayer opcional.convert_animation_to_pixel_art: procesa todos los frames con una paleta global y conserva sus delays en GIF.upscale_pixel_art: aumenta sprites estáticos o animados con nearest-neighbor determinista, conserva transparencia/delays y limita la salida a 4096 px.harmonize_asset_palette: mueve un PNG/GIF hacia una familia cromática de acento, limita la paleta y conserva transparencia/delays en una salida separada.build_contact_sheet: ajusta sprites heterogéneos a celdas nearest-neighbor, genera un PNG de preview y un manifest JSON navegable en una sola llamada.export_animation_gif: exporta una imagen animada o un.asepritea GIF.inspect_asset_bundle: combina dimensiones, frames, colores, transparencia, delays, violaciones y recomendaciones deterministas en una sola respuesta compacta.inspect_asset_batch: audita hasta 32 assets en una sola llamada, conserva el orden, aísla fallos de decodificación y devuelve un resumenvalid/invalid/failedsin transferir buffers de píxeles.audit_asset_manifest: revisa los archivos referenciados por un manifest generado, detecta faltantes o archivos vacíos y devuelve formato, tamaño y hash SHA-256 en una respuesta compacta.recommend_asset_scene: recibe un prompt de mundo, tags o efectos y devuelve una selección determinista de assets con ranking, razones y cobertura de tipos/variantes para componer escenas con menos llamadas.build_scene_bundle: compone en una llamada la versión PNG, la animación GIF y sus manifests de una escena, reutilizando los compositores existentes y deteniéndose si falla la composición estática.apply_enhancement_plan: inspecciona, planifica, aplica y ejecuta quality gate en una sola llamada determinista, preservando la fuente y reduciendo round-trips de la UX/agente.apply_enhancement_batch: aplica ese mismo pipeline a hasta 24 assets en una llamada, conserva el orden, aísla fallos por archivo y bloquea colisiones antes de escribir.inspect_animation_quality: audita una animación en una sola llamada, detecta frames duplicados, cambios por transición, timing irregular, deriva de paleta y costura de loop.inspect_sprite_geometry: calcula bounds alfa, componentes conectados, baseline y pivotes por frame para placement estable.generate_sprite_hitboxes: deriva un manifest JSON de colisión desde esa geometría, con modocomponentsouniony padding acotado, sin duplicar análisis raster.build_sprite_runtime_bundle: empaqueta spritesheet, timing e hitboxes en una sola llamada y publica un manifest runtime navegable.generate_sprite_anchors: deriva puntosbottom_center,center,top_center, laterales ybaselinepor frame para placement estable en motores.normalize_sprite: recorta PNG/GIF a los bounds alfa compartidos, añade padding determinista, conserva los delays y escribe un manifest JSON con pivote para motores 2D.build_animation_sheet: convierte todos los frames de una animación en un PNG spritesheet con coordenadas, pivotesbottom_center, delays y duración de loop en un manifest navegable.inspect_sprite_geometry: calcula bounds alfa, componentes conectados, baseline y pivotes por frame para detectar jitter antes de colisiones o composición de escenas.export_asset_pack: empaqueta imágenes del mismo tamaño en un atlas PNG y entrega un manifiesto JSON con la posición de cada asset.create_style_bible: fija paleta, luz, escala, detalle y semilla para mantener consistencia.inspect_referenceyrun_asset_quality_gate: analizan color, contraste, bordes, transparencia, banding y píxeles aislados.build_terrain_tileset: genera 16 máscaras cardinales por terreno para transiciones reutilizables.generate_world_map: crea mapas multi-bioma deterministas con landmarks y preview.generate_beach_scene: crea costa, arena, tierra, preview y oleaje animado.extend_scene: amplía un mapa JSON existente por sus bordes, conserva capas y desplaza landmarks de forma determinista.generate_biome_transition: detecta fronteras entre biomas, calcula una banda determinista de transición y escribe metadatos/preview para espuma, hierba, roca o bordes de terreno sin mutar el mapa fuente.generate_seamless_texture: iguala bordes opuestos para texturas repetibles de agua, tierra, piedra o hierba sin alterar la fuente.generate_water_reflection: genera un GIF determinista con reflejo bajo una línea de agua, oleaje y destellos temporales para océanos, playas y mapas.generate_water_caustics: genera una pasada GIF de luz refractada sobre píxeles opacos de agua, piscinas, playas o interiores inundados.generate_day_night_cycle: genera un GIF determinista con las etapasday,sunset,nightysunrise, preservando transparencia y dimensiones. Acepta unmanifest_filenameopcional que escribe un manifest JSON determinista (kind: day_night_cycle) con las fases.generate_environment_pack: empaqueta playa, bosque, aldea o cueva en una sola llamada.create_asset_recipe: compone outline, grading, materiales, luz, sombras, partículas, normal map y quality gate en un plan determinista sin ejecutar cambios.get_asset_library: busca una biblioteca de 339 items preconstruidos en 10 categorías, con resultados compactos para reducir tokens.get_asset_library_item: resuelve README, manifest, preview y sprite sheet de un asset concreto.audit_asset_library: valida IDs, referencias de presets, categorías y rutas navegables antes de componer escenas; devuelve métricas compactas y hasta 100 violaciones deterministas.summarize_asset_library: devuelve un mapa de categorías, tres ejemplos por categoría y presets sin cargar el detalle completo, reduciendo tokens de navegación.plan_asset_scene: recibe IDs arbitrarios de la biblioteca y devuelve capas ordenadas con roles, previews y sprites sin generar archivos.compose_asset_scene: recibe IDs y materializa un PNG de escena + manifest navegable con placements deterministas, sin modificar los originales.compose_asset_scene_animation: recibe IDs de la biblioteca y materializa un GIF de escena con selección cíclica de frames, delays y manifest por frame.generate_library_variant_pack: recibe múltiples IDs y genera en una sola llamada packs de lluvia, fuego, terremoto, aves, noche, movimiento y reflejos reutilizando el servicio de variantes existente.get_asset_preset: devuelve composiciones listas comoliving-forest,coastal-sunset,fantasy-questyrainy-village.generate_asset_preset: ejecuta un preset completo y devuelve terreno, mapa, preview, oleaje cuando aplica y transición temporal en una respuesta compacta.generate_scene_effect_stack: agrupa en una sola llamada lluvia, partículas, caústicas/reflejos, día-noche, granularidad de material e iluminación direccional; infiere dimensiones para partículas, devuelve todos los artifacts y preserva la fuente.generate_motion_pack: crea ciclosidle,walk,run,jumpoattackdesde un sprite estático o animado.generate_source_variant_pack: crea en una sola llamada hasta nueve variantes deterministas (rain,fire,earthquake,birds,night,day_night,walk,water_reflectionywater_caustics) a partir de un asset fuente y devuelve un manifiesto compacto de artifacts.
Las operaciones de imagen no necesitan abrir Aseprite; eso reduce latencia y tokens para conversiones masivas. Las operaciones sobre .aseprite siguen pasando por el adaptador CLI hexagonal y mantienen la compatibilidad con Godot.
TDD y calidad
npm run typecheck
npm run test:ts
npm testLas pruebas de dominio y planes no necesitan abrir Aseprite. La prueba MCP inicia el servidor TypeScript real, hace el handshake stdio y verifica las herramientas expuestas.
Los tests de integración reales corren en un runner self-hosted — ver docs/CI_ASEPRITE.md.
Docker
La imagen usa Node.js 24. El binario de Aseprite debe estar disponible dentro del contenedor y configurarse con ASEPRITE_PATH; no se incluyen credenciales ni binarios propietarios.
docker compose run --rm aseprite-mcp-devLicencia y proyecto
Proyecto independiente: jdsalasca/aseprite-asset-mcp. Conserva la licencia MIT.
Ejecución de recetas compuestas
create_asset_recipe genera un plan revisable y execute_asset_recipe lo ejecuta paso a paso usando los mismos servicios de efectos, materiales, iluminación y calidad. El pipeline conserva la fuente, detiene la primera operación fallida y devuelve el artifact final.
La UX puede invocar POST /api/v1/recipes/execute cuando MCP_REST_PORT está habilitado.
Biblioteca de assets y presets
assets/folders/ contiene una biblioteca determinista y navegable: personajes, flora, fauna, criaturas mitológicas, monturas, armas y accesorios, biomas/mapas, interiores, instrumentos y efectos de escena. Cada carpeta tiene su propio README.md, manifest.json, preview.png, preview.svg, sprite-sheet.png y sprite-sheet.svg.
Para regenerar la biblioteca después de cambiar sus semillas:
npm run asset:library:catalogLa API HTTP sidecar (/api/v1/...) es experimental y puede cambiar entre versiones minor; los cambios breaking se documentan en el CHANGELOG.
Ejemplos REST:
GET /api/v1/library?query=rain&limit=12
GET /api/v1/library/audit
GET /api/v1/library/summary
POST /api/v1/library/scene-plan
POST /api/v1/library/scene-compose
POST /api/v1/library/scene-animation-compose
POST /api/v1/library/variants/pack
POST /api/v1/effects/motion
POST /api/v1/effects/upscale
POST /api/v1/assets/palette-harmonize
POST /api/v1/assets/contact-sheet
POST /api/v1/effects/seamless
POST /api/v1/effects/water-reflection
POST /api/v1/effects/water-caustics
POST /api/v1/effects/day-night
POST /api/v1/variants/pack
POST /api/v1/assets/quality-bundle
POST /api/v1/assets/enhancement-plan
POST /api/v1/assets/enhancement-batch
POST /api/v1/assets/quality-batch
POST /api/v1/assets/animation-quality
POST /api/v1/assets/normalize-sprite
POST /api/v1/assets/animation-sheet
POST /api/v1/assets/sprite-geometry
POST /api/v1/assets/sprite-hitboxes
POST /api/v1/assets/sprite-runtime-bundle
POST /api/v1/assets/sprite-anchors
GET /api/v1/library/items/forest-ranger
GET /api/v1/library/presets/living-forest
GET /api/v1/library/items/forest-ranger/preview
GET /api/v1/library/items/forest-ranger/sprite
GET /api/v1/library/presets/living-forest/compose
POST /api/v1/library/presets/generate
POST /api/v1/effects/scene-stack
POST /api/v1/scenes/biome-transitionLas dos últimas rutas sirven PNG/GIF de forma binaria desde el adaptador de archivos, validando primero el id del catálogo y bloqueando escapes del directorio assets/folders. Asset Studio las consume para mostrar previews reales en PixelAssetGrid.
compose_asset_preset y GET /api/v1/library/presets/:id/compose devuelven en una sola respuesta los assets y las capas ordenadas (background, midground, foreground, effect), reduciendo búsquedas repetidas de los agentes.
compose_asset_scene y POST /api/v1/library/scene-compose reciben item_ids, output_filename, manifest_filename, width, height y padding. El servicio decodifica las previews mediante un puerto raster, compone con alpha source-over y escribe un PNG más un manifest con coordenadas, dimensiones, roles y garantías deterministic/sourcePreserved.
compose_asset_scene_animation y POST /api/v1/library/scene-animation-compose añaden frames (2–24) y delay_ms (1–2000). Cada capa selecciona su frame de forma cíclica, se compone con geometría determinista y se exporta como GIF sin modificar las previews originales.
generate_library_variant_pack y POST /api/v1/library/variants/pack reciben item_ids, output_prefix, variants, frames, seed y delay_ms. El orquestador resuelve y valida los IDs, materializa previews con un adaptador temporal, delega el algoritmo a AssetVariantPackService, libera los temporales incluso ante errores y escribe un manifest compacto del lote.
audit_asset_manifest y POST /api/v1/assets/manifest-audit reciben { "manifest_filename": "output/scene.json" }. El caso de uso extrae rutas de salida conocidas, comprueba existencia y tamaño, calcula SHA-256 y marca valid: false si falta o está vacío algún artefacto. Con ASSET_ARTIFACT_ROOT se puede restringir la auditoría a una raíz permitida.
recommend_asset_scene y POST /api/v1/library/recommendations reciben opcionalmente prompt, category, required_kinds, required_tags, required_variants, limit y seed. Devuelven suggestedItemIds, scores y razones como prompt:water, tag:tropical o variant:water_reflection; el resultado se puede pasar directamente a plan_asset_scene o compose_asset_scene.
build_scene_bundle y POST /api/v1/library/scene-bundle reciben item_ids, output_prefix, width, height, padding, frames y delay_ms. Generan scene.png, scene.json, scene.gif y scene-animation.json dentro del prefijo indicado con una respuesta compacta.
apply_enhancement_plan (MCP) y POST /api/v1/assets/enhancement-plan (REST) reciben { "filename": "hero.png", "output_filename": "hero-enhanced.png", "format": "png", "goals": ["cleanup", "terrain_grain", "directional_lighting"], "max_colors": 64, "seed": 7 }. El servicio de aplicación analiza la referencia, crea el plan explicable, escribe una salida separada y ejecuta el quality gate; devuelve plan, applied, quality, deterministic y sourcePreserved en una respuesta.
apply_enhancement_batch y POST /api/v1/assets/enhancement-batch reciben { "items": [{ "filename": "hero.png", "output_filename": "hero-batch.png", "format": "png" }, { "filename": "tree.gif", "output_filename": "tree-batch.gif", "format": "gif" }], "goals": ["cleanup", "particles"], "max_colors": 64, "seed": 7 }. Validan colisiones globales antes de escribir, procesan en orden y devuelven summary: { total, succeeded, failed } con error por item.
La composición es fail-closed: si el preset contiene una referencia inexistente, no devuelve una escena parcial. Ejecuta audit_asset_library para localizar y corregir el catálogo antes de componer.
Las variantes (rain, fire, earthquake, birds, wave-reflection, day, sunset, night, walk, attack, etc.) son contratos para los algoritmos existentes: se aplican sobre una copia del asset y conservan la fuente.
normalize_sprite es útil antes de generar atlas o integrar animaciones en Godot: usa el union de alfa de todos los frames para que el canvas no salte, limita el padding a 16 px, rechaza colisiones de input/output/manifest y deja el pivote bottom_center sobre la última fila visible.
build_animation_sheet recibe { "input_filename": "hero.gif", "output_filename": "hero-sheet.png", "manifest_filename": "hero-sheet.json", "columns": 4, "padding": 1 }. El PNG solo contiene la rejilla visual; el manifest conserva los delays originales y los pivotes globales de cada celda, evitando que la animación dependa de un formato GIF en el motor.
inspect_sprite_geometry recibe { "filename": "hero.gif", "min_component_pixels": 1 } y devuelve por frame los componentes alfa 4-conectados, bounds, baseline y pivote. Un bounds inestable genera recomendación de normalización, pero no se marca como error: el movimiento intencional también puede cambiar la silueta.
generate_source_variant_pack evita nueve llamadas del agente cuando se necesita explorar un asset fuente en distintos contextos. Ejemplo MCP/REST equivalente:
{
"input_filename": "art/forest-ranger.png",
"output_prefix": "art/forest-ranger-variants",
"variants": ["rain", "night", "birds", "day_night"],
"frames": 8,
"seed": 17,
"delay_ms": 90
}La respuesta contiene artifacts[] con ruta, operación, cantidad de frames, formato y las garantías deterministic y sourcePreserved. Las fuentes PNG estáticas también pueden producir GIFs animados; el servidor rechaza explícitamente pedir varios frames con formato PNG.
generate_scene_effect_stack reduce llamadas repetidas del agente cuando se quiere probar una escena completa. Selecciona efectos únicos y el servicio reutiliza los puertos existentes de efectos, materiales e iluminación:
{
"input_filename": "art/forest-ranger.png",
"output_prefix": "art/forest-ranger-scene",
"effects": ["material_texture", "depth_lighting", "rain", "particles", "water_caustics", "day_night"],
"frames": 8,
"seed": 17,
"material": "earth",
"direction": "south_east",
"format": "gif"
}El equivalente REST es POST /api/v1/effects/scene-stack; devuelve un manifest compacto con un artifact por efecto y mantiene deterministic: true y sourcePreserved: true.
generate_biome_transition recibe input_map_filename, output_map_filename, preview_filename opcional, transition_width de 1 a 8 y seed. Conserva las capas y landmarks, añade biomeTransitions[] con distancia, bioma origen/destino y variante (edge, blend, accent) y genera un preview de un píxel por celda; esto permite que una herramienta posterior pinte espuma, bordes de hierba o roca sin regenerar el mundo.
Available Tools
185 toolsadd_frameC
Add one animation frame.
Inputs: filename (required).
add_framesC
Add a deterministic number of animation frames.
Inputs: count (required), filename (required), duration_ms.
add_groupC
Add a named layer group to an Aseprite document.
Inputs: filename (required), group_name (required), parent_group.
add_layerC
Add a named layer, optionally inside a group.
Inputs: filename (required), layer_name (required), group.
adjust_brightness_contrastC
Apply Aseprite native brightness and contrast adjustment.
Inputs: filename (required), x, y, width, +5 more.
adjust_hslA
Shift hue, saturation, and lightness on an opaque cel while preserving alpha.
Inputs: filename (required), layer_name (required), frame_index (required), hue_shift, +2 more.
adjust_hsl_nativeC
Apply Aseprite native hue, saturation, and lightness adjustment.
Inputs: filename (required), x, y, hue, +6 more.
animation_sanitizeD
Normalize animation cels and optionally repair out-of-range activity.
Inputs: filename (required), end_frame, layer_names, layer_order, +13 more.
animation_workflow_guideA
Return a concise deterministic guide for character, environment, or general animation workflows.
Inputs: use_case.
apply_color_gradeC
Apply deterministic brightness, contrast, and saturation grading to a sprite.
Inputs: input_filename (required), output_filename (required), format, contrast, +2 more.
apply_convolutionC
Apply a built-in Aseprite convolution matrix to a layer and frame.
Inputs: matrix (required), filename (required), x, y, +4 more.
apply_depth_lightingA
Apply deterministic depth-aware directional lighting to a sprite while preserving transparency and source data.
Inputs: direction (required), input_filename (required), output_filename (required), format, +2 more.
apply_dither_gradientC
Fill a rectangle with a two-color Bayer-dithered gradient.
Inputs: x (required), y (required), width (required), height (required), +7 more.
apply_dither_patternC
Fill a rectangle with a uniform Bayer-dithered mix of two colors.
Inputs: x (required), y (required), width (required), height (required), +7 more.
apply_enhancement_batchA
Enhance up to 24 assets in one deterministic batch, isolating per-file failures and preserving every source.
Inputs: items (required), seed, goals, max_colors.
apply_enhancement_planB
Apply a deterministic enhancement plan to a new output file while preserving the source asset.
Inputs: filename (required), output_filename (required), seed, goals, +2 more.
apply_gradient_rectA
Apply a horizontal or vertical linear gradient to a rectangle on a named layer and animation frame.
Inputs: x (required), y (required), width (required), height (required), +7 more.
apply_material_textureC
Apply deterministic water, earth, grass, stone, or snow granularity while preserving transparency and source data.
Inputs: seed (required), material (required), input_filename (required), output_filename (required), +2 more.
apply_palette_presetC
Apply a built-in retro palette preset to the sprite.
Inputs: preset (required), filename (required).
apply_pixel_outlineC
Add a deterministic pixel outline around opaque sprite edges.
Inputs: color (required), input_filename (required), output_filename (required), format, +1 more.
audit_animationC
Audit animation cels, overlaps, and declared frame ranges.
Inputs: filename (required), end_frame, layer_names, report_cels, +6 more.
audit_asset_libraryA
Audit library ids, preset references, categories, folders, and navigable asset paths before composing a scene.
Inputs: no named parameters.
audit_asset_manifestA
Audit files referenced by a generated manifest, including missing, empty, format, and SHA-256 metadata.
Inputs: manifest_filename (required).
batch_asset_jobC
Run several compact asset recipes in order or return one batch plan.
Inputs: jobs (required), dry_run.
build_animation_sheetA
Assemble all frames of a PNG or GIF into a deterministic PNG spritesheet and write coordinates, bottom-center pivots, and delays to a manifest.
Inputs: input_filename (required), output_filename (required), manifest_filename (required), columns, +1 more.
build_contact_sheetC
Fit heterogeneous sprite previews into a deterministic nearest-neighbor contact sheet and write a navigable JSON manifest.
Inputs: cell_width (required), cell_height (required), input_filenames (required), output_filename (required), +3 more.
build_scene_bundleC
Build a static PNG scene, animated GIF scene, and both navigation manifests through one deterministic operation.
Inputs: width (required), height (required), item_ids (required), output_prefix (required), +3 more.
build_sprite_runtime_bundleC
Build one deterministic runtime bundle with an animation sheet, timing manifest, and sprite hitbox manifest.
Inputs: input_filename (required), sheet_filename (required), sheet_manifest_filename (required), bundle_manifest_filename (required), +6 more.
build_terrain_tilesetC
Build a deterministic terrain tileset with adjacency variants and metadata.
Inputs: terrains (required), tile_size (required), output_filename (required), manifest_filename (required), +3 more.
cancel_asset_jobA
Request cancellation of a queued or running asset job.
Inputs: job_id (required).
clear_celC
Delete a cel from a named layer and frame.
Inputs: filename (required), layer_name (required), frame_index (required).
compare_framesA
Compare two flattened animation frames and return changed-pixel metrics as JSON.
Inputs: frame_a (required), frame_b (required), filename (required).
compose_asset_presetB
Compose one scene preset into compact assets and ordered layers for a single low-token request.
Inputs: id (required).
compose_asset_sceneC
Compose selected library previews into a deterministic PNG and navigable manifest.
Inputs: width (required), height (required), item_ids (required), output_filename (required), +2 more.
compose_asset_scene_animationC
Compose selected animated library previews into a deterministic GIF and frame manifest.
Inputs: width (required), height (required), item_ids (required), output_filename (required), +4 more.
convert_animation_to_pixel_artB
Convert all image frames to pixel art and preserve animation delays.
Inputs: width (required), height (required), input_filename (required), output_filename (required), +4 more.
convert_image_to_pixel_artB
Convert one image to pixel art with a deterministic shared palette.
Inputs: width (required), height (required), input_filename (required), output_filename (required), +4 more.
copy_celB
Copy one layer cel to another frame, replacing the destination by default.
Inputs: filename (required), layer_name (required), source_frame (required), target_frame (required), +1 more.
copy_frameC
Copy all cels from one frame to another frame or append a new frame.
Inputs: filename (required), source_frame (required), overwrite, target_frame.
copy_layers_between_spritesC
Copy selected animation layers and cels from one Aseprite document into another.
Inputs: layer_names (required), source_filename (required), target_filename (required), replace, +1 more.
copy_regionC
Copy a rectangular region to a layer and frame destination.
Inputs: x (required), y (required), width (required), dest_x (required), +7 more.
copy_spriteA
Copy a sprite to another Aseprite document, refusing to overwrite by default.
Inputs: filename (required), output_filename (required), overwrite.
create_asset_recipeA
Compose a deterministic, reviewable multi-effect asset recipe without executing it.
Inputs: steps (required), asset_id (required), output_prefix (required), input_filename (required), +4 more.
create_canvasC
Create a new Aseprite canvas.
Inputs: width (required), height (required), filename (required).
create_celA
Create an empty cel at a layer and frame when one does not already exist.
Inputs: filename (required), layer_name (required), frame_index (required), x, +1 more.
create_character_planC
Create a deterministic, auditable TypeScript plan for a layered character and its Godot exports.
Inputs: asset_id (required), output_directory.
create_scene_planC
Create a deterministic, auditable TypeScript plan for a tilemap scene and its Godot exports.
Inputs: asset_id (required), output_directory.
create_sliceC
Create a named rectangular slice.
Inputs: x (required), y (required), name (required), width (required), +2 more.
create_style_bibleC
Create a deterministic visual style contract for sprites and maps.
Inputs: id (required), palette (required), filename (required), base_size (required), +5 more.
create_tilemap_layerC
Create a tilemap layer and set the Aseprite grid.
Inputs: filename (required), layer_name (required), tile_width (required), tile_height (required).
crop_canvasC
Crop the sprite canvas to a rectangle.
Inputs: x (required), y (required), width (required), height (required), +1 more.
delete_frameB
Delete one animation frame while keeping at least one frame in the sprite.
Inputs: filename (required), frame_index (required).
delete_layerC
Delete a named layer from an Aseprite document.
Inputs: filename (required), layer_name (required).
delete_sliceC
Delete a named slice.
Inputs: name (required), filename (required).
delete_tagC
Delete an existing animation tag.
Inputs: name (required), filename (required).
draw_circleC
Draw an ellipse-bounded circle.
Inputs: radius (required), center_x (required), center_y (required), filename (required), +2 more.
draw_circle_atC
Draw an ellipse-bounded circle on a named layer and animation frame.
Inputs: radius (required), center_x (required), center_y (required), filename (required), +5 more.
draw_ellipse_atC
Draw a filled or outlined ellipse on a named layer and animation frame.
Inputs: center_x (required), center_y (required), filename (required), radius_x (required), +6 more.
draw_lineC
Draw a Bresenham line with optional pixel thickness.
Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +3 more.
draw_line_atB
Draw a Bresenham line on a named layer and animation frame.
Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +6 more.
draw_on_tileC
Draw pixels onto a tilemap tileset tile.
Inputs: pixels (required), filename (required), layer_name (required), tile_index (required).
draw_pathD
Draw a polyline on a named layer and animation frame.
Inputs: points (required), filename (required), layer_name (required), frame_index (required), +3 more.
draw_pixelsC
Draw explicit pixels on the active cel.
Inputs: pixels (required), filename (required).
draw_pixels_atC
Draw explicit pixels on a named layer and animation frame, creating the cel when requested.
Inputs: pixels (required), filename (required), layer_name (required), frame_index (required), +1 more.
draw_polygonC
Draw a filled or outlined polygon on a named layer and animation frame.
Inputs: points (required), filename (required), layer_name (required), frame_index (required), +3 more.
draw_rectangleC
Draw a filled or outlined pixel-art rectangle on the active Aseprite layer.
Inputs: x (required), y (required), color (required), width (required), +3 more.
draw_rectangle_atB
Draw a filled or outlined rectangle on a named layer and animation frame.
Inputs: x (required), y (required), width (required), height (required), +6 more.
draw_textB
Rasterize and draw text into a sprite layer and frame.
Inputs: x (required), y (required), font (required), text (required), +16 more.
duplicate_frame_rangeC
Append one or more copies of an inclusive animation frame range.
Inputs: filename (required), end_frame (required), start_frame (required), times.
duplicate_layerC
Duplicate a layer and its cels across all frames.
Inputs: filename (required), layer_name (required), group, new_name.
ensure_layers_presentC
Ensure cels exist for named layers across a frame range.
Inputs: filename (required), layer_names (required), end_frame, start_frame.
erase_colorB
Erase opaque pixels matching a color within channel tolerance.
Inputs: color (required), filename (required), layer_name (required), frame_index (required), +1 more.
erase_regionC
Erase a rectangular region to transparency.
Inputs: x (required), y (required), width (required), height (required), +3 more.
execute_asset_recipeC
Execute a deterministic composed asset recipe through the shared visual services.
Inputs: steps (required), asset_id (required), output_prefix (required), input_filename (required), +4 more.
export_animation_gifB
Convert a PNG, GIF, or animated image into a GIF while preserving frames.
Inputs: input_filename (required), output_filename (required).
export_asset_packC
Export an atlas PNG and a compact JSON manifest in one call.
Inputs: input_filenames (required), output_filename (required), manifest_filename (required), columns, +1 more.
export_frameC
Export one animation frame as a PNG with nearest-neighbor integer scaling.
Inputs: filename (required), frame_index (required), output_filename (required), scale.
export_layersC
Export each layer as a PNG and confirm that at least one new layer file was written.
Inputs: filename (required), output_directory (required), include_hidden.
export_spriteC
Export a sprite to a selected image format and confirm that Aseprite wrote an output file.
Inputs: filename (required), output_filename (required), format.
export_spritesheetC
Export a spritesheet and optional frame metadata for Godot.
Inputs: filename (required), output_filename (required), scale, padding, +5 more.
export_tagC
Export an animation tag as an image or animation file after validating that the tag exists.
Inputs: filename (required), tag_name (required), output_filename (required), scale.
extend_sceneB
Extend an existing deterministic scene around its borders while preserving the original layers and landmarks.
Inputs: input_map_filename (required), output_map_filename (required), top, left, +4 more.
extract_paletteC
Extract and persist an optimized palette with a bounded color count.
Inputs: filename (required), max_colors, with_alpha.
fill_areaC
Fill a contiguous area from a seed pixel.
Inputs: x (required), y (required), filename (required), color.
fill_area_atC
Fill a contiguous area on a named layer and animation frame.
Inputs: x (required), y (required), filename (required), layer_name (required), +3 more.
flatten_spriteB
Flatten all layers into one layer.
Inputs: filename (required).
flip_layerC
Flip a layer cel horizontally or vertically.
Inputs: filename (required), layer_name (required), frame_index (required), direction.
generate_asset_presetC
Generate one executable world preset with terrain, map, preview, and deterministic time-of-day artifacts.
Inputs: seed (required), width (required), height (required), preset_id (required), +3 more.
generate_beach_sceneC
Generate a seeded beach map, preview, and animated wave GIF.
Inputs: seed (required), width (required), height (required), map_filename (required), +6 more.
generate_biome_transitionA
Generate deterministic transition metadata and a preview overlay between adjacent map biomes without mutating the source map.
Inputs: input_map_filename (required), output_map_filename (required), seed, preview_filename, +1 more.
generate_color_rampC
Generate a hue-shifted dark-to-light pixel-art color ramp.
Inputs: base_color (required), steps, lightness_range, hue_shift_degrees.
generate_day_night_cycleC
Generate a deterministic animated day, sunset, night, and sunrise cycle while preserving transparency and source dimensions.
Inputs: input_filename (required), output_filename (required), seed, format, +4 more.
generate_environment_packC
Generate a complete beach, forest, village, or cave asset pack.
Inputs: kind (required), seed (required), width (required), height (required), +3 more.
generate_library_variant_packB
Generate deterministic environmental variants for multiple asset library ids with one compact request.
Inputs: item_ids (required), variants (required), output_prefix (required), seed, +2 more.
generate_motion_packB
Generate a deterministic idle, walk, run, jump, or attack cycle from a static or animated sprite.
Inputs: motion (required), input_filename (required), output_filename (required), seed, +4 more.
generate_normal_mapC
Generate a deterministic tangent-space normal map from sprite alpha depth.
Inputs: input_filename (required), output_filename (required), format, strength.
generate_particle_burstB
Generate a deterministic animated particle burst GIF for impact, healing, magic, or dust.
Inputs: seed (required), color (required), width (required), frames (required), +4 more.
generate_rain_overlayC
Generate a deterministic rain overlay while preserving the source dimensions and frame timing.
Inputs: seed (required), color (required), input_filename (required), output_filename (required), +5 more.
generate_scene_effect_stackC
Generate a deterministic compact package of selected scene effects while preserving the source: rain, particles, water motion, day/night, material grain, and directional lighting.
Inputs: effects (required), output_prefix (required), input_filename (required), seed, +7 more.
generate_seamless_textureC
Make opposite texture borders match deterministically for repeatable water, earth, stone, or grass backgrounds.
Inputs: input_filename (required), output_filename (required), format, seam_width.
generate_source_variant_packB
Generate a deterministic multi-output environmental variant pack for one source asset: rain, fire, earthquake, birds, night, movement, and water effects.
Inputs: variants (required), output_prefix (required), input_filename (required), seed, +2 more.
generate_sprite_anchorsC
Generate deterministic placement anchors from sprite geometry for scene composition and game-engine transforms.
Inputs: filename (required), output_filename (required), min_component_pixels.
generate_sprite_hitboxesB
Generate a deterministic collision manifest from sprite geometry using component or union hitboxes with bounded padding.
Inputs: filename (required), output_filename (required), mode, padding, +1 more.
generate_sprite_shadowC
Generate a deterministic clipped sprite shadow from alpha data.
Inputs: color (required), offset_x (required), offset_y (required), input_filename (required), +3 more.
generate_water_causticsB
Generate deterministic animated light caustics over opaque water pixels for oceans, pools, beaches, and flooded interiors.
Inputs: color (required), input_filename (required), output_filename (required), seed, +5 more.
generate_water_reflectionC
Generate a deterministic animated reflection below a waterline for oceans, beaches, and wave scenes.
Inputs: waterline (required), input_filename (required), output_filename (required), seed, +5 more.
generate_world_mapB
Generate a seeded multi-biome map manifest and optional preview.
Inputs: seed (required), width (required), biomes (required), height (required), +4 more.
get_asset_job_statusC
Read one asynchronous asset job without returning raw pixels.
Inputs: job_id (required).
get_asset_libraryC
Search the deterministic asset/preset library with compact results for humans and agents.
Inputs: limit, query, category.
get_asset_library_itemA
Resolve one library item and its README, preview, sprite sheet, and variants.
Inputs: id (required).
get_asset_presetC
Resolve a ready-to-compose scene preset and its recommended MCP tools.
Inputs: id (required).
get_color_statsC
Return JSON color usage statistics for one flattened frame.
Inputs: filename (required), top, frame_index.
get_composite_pixelC
Read one RGBA pixel from the visible flattened composite.
Inputs: x (required), y (required), filename (required), frame_index.
get_composite_rectC
Read a visible flattened composite region as JSON.
Inputs: x (required), y (required), width (required), height (required), +2 more.
get_paletteB
Return the active sprite palette as a JSON color array.
Inputs: filename (required).
get_pixel_colorC
Read one RGBA pixel from a cel.
Inputs: x (required), y (required), filename (required), layer_name, +1 more.
get_pixels_rectB
Read a rectangular RGBA region from a cel as JSON.
Inputs: x (required), y (required), width (required), height (required), +3 more.
get_sprite_infoA
Read sprite dimensions, color mode, frame durations, layers, and tags as JSON.
Inputs: filename (required).
get_tile_atB
Read the tile index at a tilemap grid coordinate.
Inputs: col (required), row (required), filename (required), layer_name (required), +1 more.
get_tilemap_infoB
Read tile size, tileset count, and map dimensions.
Inputs: filename (required), layer_name (required).
get_tools_by_folderC
List concise tools in one folder. Use a parent folder to inspect its subfolders.
Inputs: folder (required).
get_tools_listB
List tool folders and counts. Use this before loading a tool folder.
Inputs: include_tools.
get_tools_searchA
Search a compact subset of tools by name, description, or folder to reduce context usage.
Inputs: query (required), limit.
harmonize_asset_paletteA
Apply a deterministic accent palette to a PNG or GIF, preserve transparency and timing, and cap output colors without overwriting the source.
Inputs: accent_color (required), input_filename (required), output_filename (required), format, +2 more.
import_image_as_layerC
Import an image into a named layer and frame, creating the layer when it does not exist.
Inputs: filename (required), image_path (required), layer_name (required), x, +2 more.
inspect_animation_qualityB
Audit an animation for duplicate frames, timing, palette drift, movement bounds, and loop seam issues.
Inputs: filename (required).
inspect_asset_batchB
Inspect up to 32 sprites in one deterministic quality pass and return a compact collection summary.
Inputs: filenames (required), max_colors, max_isolated_pixels.
inspect_asset_bundleC
Inspect one asset and return compact quality violations and deterministic recommendations in one call.
Inputs: filename (required), max_colors, max_isolated_pixels.
inspect_referenceB
Analyze reference dimensions, dominant colors, contrast, edges, and transparency.
Inputs: filename (required).
inspect_sprite_geometryA
Inspect per-frame alpha bounds, connected components, baseline, and bottom-center pivots for scene placement.
Inputs: filename (required), min_component_pixels.
invert_colorsC
Apply Aseprite native color inversion.
Inputs: filename (required), x, y, width, +3 more.
list_convolution_matricesA
List the built-in convolution matrices supported by Aseprite.
Inputs: no named parameters.
list_palette_presetsA
List built-in retro palette presets.
Inputs: no named parameters.
list_slicesB
List slice bounds, centers, and pivots as JSON.
Inputs: filename (required).
list_text_fontsA
List discoverable TrueType and OpenType fonts.
Inputs: no named parameters.
measure_textA
Measure a text run without changing a sprite.
Inputs: font (required), text (required), bold, size, +2 more.
merge_layer_downC
Merge a layer into the layer below it.
Inputs: filename (required), layer_name (required).
move_regionC
Move a rectangular region within a cel, clearing its source.
Inputs: x (required), y (required), width (required), dest_x (required), +5 more.
normalize_spriteA
Crop one or more raster frames to shared alpha bounds, add deterministic padding and write pivot metadata without overwriting the source.
Inputs: input_filename (required), output_filename (required), manifest_filename (required), pivot, +2 more.
offset_cel_positionsC
Offset cel positions across a frame range.
Inputs: dx (required), dy (required), filename (required), end_frame (required), +2 more.
oscillate_cel_positionsC
Apply sine-wave position offsets to cels across frames.
Inputs: filename (required), end_frame (required), layer_name (required), start_frame (required), +6 more.
outline_nativeC
Apply Aseprite native outline to a selected layer and frame.
Inputs: filename (required), color, place, matrix, +2 more.
plan_asset_sceneA
Plan ordered scene layers from selected asset library ids without generating files or loading full asset details.
Inputs: item_ids (required).
propagate_celsC
Copy selected layer cels from one source frame across a frame range.
Inputs: filename (required), end_frame (required), layer_names (required), start_frame (required), +2 more.
propagate_frame_to_rangeC
Propagate all source-frame cels to a frame range.
Inputs: filename (required), end_frame (required), start_frame (required), source_frame (required), +1 more.
quantize_to_paletteC
Snap opaque pixels to the nearest color in the active palette.
Inputs: filename (required), end_frame, layer_name, start_frame.
recommend_asset_sceneC
Recommend a compact, deterministic set of compatible library assets for a scene, with explainable reasons and covered tags/effects.
Inputs: seed, limit, prompt, category, +3 more.
remap_colors_in_cel_rangeB
Remap explicit RGB colors across a layer frame range while preserving alpha.
Inputs: filename (required), mappings (required), end_frame (required), layer_name (required), +3 more.
rename_layerC
Rename a named layer.
Inputs: filename (required), new_name (required), layer_name (required).
render_onion_skinC
Render neighboring animation frames as translucent onion-skin ghosts into a PNG.
Inputs: filename (required), frame_index (required), output_filename (required), after, +3 more.
reorder_layerC
Move a layer to a one-based stack position.
Inputs: filename (required), position (required), layer_name (required).
replace_colorB
Replace a cel color while preserving alpha and allowing channel tolerance.
Inputs: filename (required), to_color (required), from_color (required), layer_name (required), +2 more.
resize_canvasC
Resize the sprite canvas and its content.
Inputs: width (required), height (required), filename (required).
rotate_layerB
Rotate a layer cel 90, 180, or 270 degrees clockwise.
Inputs: filename (required), layer_name (required), frame_index (required), angle.
run_asset_quality_gateC
Run compact pixel-art quality checks before export.
Inputs: filename (required), max_colors, min_contrast, max_banding_runs, +1 more.
run_asset_recipeC
Run one compact asset recipe or return its dry-run plan.
Inputs: recipe (required), input_filenames (required), width, height, +3 more.
run_lua_scriptB
Run a bounded, trusted Aseprite Lua script as an escape hatch; dedicated tools are preferred.
Inputs: script (required), filename.
server_capabilitiesServer capabilitiesA
List the typed TypeScript MCP capabilities available to the current server.
Inputs: no named parameters.
set_cel_opacityB
Set one cel opacity from 0 to 255.
Inputs: opacity (required), filename (required), layer_name (required), frame_index (required).
set_cel_positionC
Set one cel position, optionally creating it from a source cel.
Inputs: x (required), y (required), filename (required), layer_name (required), +3 more.
set_color_modeC
Convert a sprite to RGB, grayscale, or indexed color mode.
Inputs: mode (required), filename (required).
set_frameB
Set the active animation frame by one-based index.
Inputs: filename (required), frame_index (required).
set_frame_durationB
Set one animation frame duration in milliseconds.
Inputs: filename (required), duration_ms (required), frame_index (required).
set_frame_duration_allC
Set all animation frame durations in milliseconds.
Inputs: filename (required), duration_ms (required).
set_layerC
Set the active layer by name, optionally creating it.
Inputs: filename (required), layer_name (required), create_if_missing.
set_layer_blend_modeC
Set a layer blend mode supported by Aseprite.
Inputs: mode (required), filename (required), layer_name (required).
set_layer_opacityB
Set a named layer opacity from 0 to 255.
Inputs: opacity (required), filename (required), layer_name (required).
set_layer_visibilityC
Set a named layer visibility.
Inputs: filename (required), layer_name (required), visible.
set_onion_skinC
Validate onion-skin settings for batch workflows; Aseprite UI-only settings are reported explicitly.
Inputs: filename (required), after, before, enabled, +1 more.
set_paletteC
Apply a controlled hexadecimal palette to a document.
Inputs: colors (required), filename (required).
set_slice_centerC
Set a slice 9-patch center rectangle.
Inputs: x (required), y (required), name (required), width (required), +2 more.
set_slice_pivotC
Set a slice pivot point.
Inputs: x (required), y (required), name (required), filename (required).
set_tagC
Create or update an animation tag.
Inputs: name (required), filename (required), to_frame (required), from_frame (required), +1 more.
set_tilesC
Place tile indices on a tilemap frame by grid coordinates.
Inputs: tiles (required), filename (required), layer_name (required), frame_index (required).
start_asset_jobB
Start a compact asynchronous batch asset job and return its job id.
Inputs: jobs (required).
start_preview_serverC
Serve a validated local directory over HTTP for visual asset preview.
Inputs: directory (required), port.
stop_preview_serverA
Stop a preview server started by this MCP process.
Inputs: port.
suggest_enhancement_planA
Inspect one image and return a deterministic, non-destructive enhancement plan for an agent or human review.
Inputs: filename (required), seed, goals, max_colors.
summarize_asset_libraryA
Return compact category and preset navigation metadata for the asset library with minimal tokens.
Inputs: no named parameters.
tween_cel_opacity_easedC
Tween cel opacity from 0 to 255 across frames with easing.
Inputs: filename (required), end_frame (required), layer_name (required), end_opacity (required), +5 more.
tween_cel_positionsB
Tween cel positions linearly across a frame range.
Inputs: end_x (required), end_y (required), start_x (required), start_y (required), +6 more.
tween_cel_positions_easedC
Tween cel positions across frames with deterministic easing.
Inputs: end_x (required), end_y (required), start_x (required), start_y (required), +7 more.
tween_cel_scale_easedA
Scale a source cel across frames with easing and a stable anchor.
Inputs: filename (required), end_frame (required), end_scale (required), layer_name (required), +7 more.
upscale_pixel_artB
Upscale one image or animation with deterministic nearest-neighbor pixels and preserved transparency.
Inputs: scale (required), input_filename (required), output_filename (required), format.
validate_sceneA
Validate required layers and the requested frame range before export.
Inputs: filename (required), required_layers (required), end_frame, start_frame.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 185 tools
Many tools overlap heavily across generation, recipe, export, and drawing families, e.g. create_asset_recipe vs run_asset_recipe vs execute_asset_recipe, generate_asset_preset vs compose_asset_preset, and draw_* vs draw_*_at variants. Descriptions help somewhat, but with 185 tools an agent will struggle to reliably pick the right tool without ambiguity.
Most names follow a predictable snake_case verb_noun pattern, such as create_canvas, add_layer, export_spritesheet, and inspect_asset_batch. Minor deviations like get_tools_list instead of list_* and a few noun-first or guide-style names slightly reduce consistency.
185 tools is an extreme mismatch for a single MCP server and far exceeds a well-scoped surface. Many operations could be consolidated or exposed through a smaller, more coherent API.
The tool surface covers an unusually broad lifecycle: canvas/layer/frame/cel manipulation, palettes, drawing primitives, text, tilemaps, slices, tags, export/import, asset library, recipes, batch jobs, and preview servers. No obvious domain gaps stand out for the stated Aseprite asset creation purpose.
Maintenance
Related MCP Connectors
Generate authentic pixel art - sprites, animations, and tilesets - from any MCP client
MCP server for Flux AI image generation
Make games with AI: one MCP server that connects your agent to Unity, Unreal and Godot editors.
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for programmatically creating and editing Aseprite sprites, enabling AI agents to draw, manage layers and frames, and iterate until the desired result is achieved.157 npmMIT
- AlicenseBqualityDmaintenanceMCP server for Aseprite — create, edit, and export pixel art sprites, animations, and sprite sheets from any AI assistant.43157 npm8MIT
- AlicenseBqualityBmaintenanceAn MCP server that lets AI agents create and edit Aseprite sprites headlessly, enabling pixel art, animation, and export via 98 tools.15625MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for safe local automation of Aseprite, providing tools to create, inspect, edit, save, and export pixel art documents through the official Aseprite CLI and controlled Lua scripts.157 npmMIT