Model Context Protocol implementation for Aseprite - enables programmatic control of Aseprite sprite editor via MCP tools
Aseprite MCP has basic tool definitions with schemas and descriptions, but significant gaps limit production readiness. All 9 tools have descriptions (10-50 chars, mostly short) and input schemas with typed parameters. However, descriptions lack actionable context for LLM selection, they state WHAT but not WHEN or WHY. No output schemas documented. Error handling is minimal (file-not-found checks only). No parameter validation guidance (e.g., hex color format, coordinate ranges). Tool composition is reasonable (single responsibility), but missing idempotency guarantees and recovery guidance. Naming is clear and verb-based (create_, add_, draw_, export_), following conventions well. No security concerns visible (no secrets in params), but no audit logging or permission gates either.
Add a new frame to the Aseprite file.
Add a new layer to the Aseprite file.
Create a new Aseprite canvas with specified dimensions.
Draw a circle on the canvas.
Draw a line on the canvas.
Draw pixels on the canvas with specified colors.
Draw a rectangle on the canvas.
Descriptions are too brief (10-50 chars) and lack actionable context. They state WHAT the tool does but not WHEN to use it, prerequisites, or what it returns. LLMs cannot reliably select the right tool without this context.
No output schemas documented. Tools return plain strings (e.g., 'Canvas created successfully: canvas.aseprite') instead of structured objects. LLMs cannot extract filenames, status codes, or error details for downstream tool chaining.
Parameter constraints not documented. Color parameters accept hex strings but no format validation guidance (e.g., '#RRGGBB' required). Coordinate parameters (x, y, width, height) have no range constraints. LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Export the Aseprite file to another format.
Fill an area with color using the paint bucket tool.
Error handling is minimal. Only file-not-found checks present. No guidance on retryability, user-fixable errors, or recovery steps. Lua script failures return raw stderr output, not actionable error messages.
No idempotency guarantees. Drawing operations (draw_pixels, draw_line, etc.) may produce different results on retry if Aseprite state changes. No confirmation step for destructive operations (add_frame, add_layer modify files).