lentera-aseprite-mcp
# Lentera Aseprite MCP Server
Custom Model Context Protocol (MCP) Server yang dirancang khusus untuk mengotomatisasi manipulasi pixel art, layer, frame animasi, quantize palet, slicing, dan ekspor spritesheet pada **Aseprite** untuk proyek *Lentera Pudar*.
---
## Arsitektur Sistem
Server ini menghubungkan AI Agent ke Aseprite Editor secara real-time melalui WebSocket dan Lua Extension Bridge:
- **AI Agent / Antigravity** <--> *(Stdio / MCP Protocol)* <--> **Lentera Aseprite MCP Server (TypeScript)**
- **Lentera Aseprite MCP Server** <--> *(WebSocket Bridge)* <--> **Aseprite Lua Extension (lua-extension/bridge.lua)**
- **Aseprite Lua Extension** <--> *(Aseprite Lua API pp.*)* <--> **Aseprite Canvas Engine**
---
## Fitur & Kategori Tool
Server ini menyediakan lebih dari 40 tools otomasi pixel art yang dikelompokkan ke dalam beberapa modul:
| Modul | File Handler (src/tools/) | Deskripsi Kemampuan |
|---|---|---|
| **Drawing & Canvas** | drawing.ts, sprite.ts | Menggambar pixel, garis, kotak, elips, fill area, outline, flip, rotate, resize kanvas, dan zoom fit. |
| **Layers & Cels** | layer.ts | Menambah/menghapus layer, mengatur opacity, visibility, blend mode, merge layers, dan navigasi active cel. |
| **Frames & Animation** | rame.ts, ag.ts | Menambah frame, mengatur durasi frame (ms), membuat tag animasi (idle_south, walk_north), dan navigasi frame. |
| **Palette Management** | palette.ts | Load palet resmi Lentera Pudar (load_palette_lentera), replace color, color quantization, dan resize palet. |
| **Exporting** | export.ts | Ekspor frame tunggal, ekspor spritesheet horizontal/vertikal, ekspor Godot SpriteFrames (.tres), dan ekspor Godot TileSet. |
| **Scripting & Visual** | misc.ts | Eksekusi script Lua dinamis via
un_lua_script, capture screenshot Aseprite, dan canvas preview. |
---
## Cara Instalasi & Menjalankan
### 1. Build Server MCP
Pastikan Anda memiliki Node.js (v18+) terinstal:
`ash
npm install
npm run build
`
### 2. Pasang Lua Extension ke Aseprite
Buka Aseprite, pilih **Edit -> Preferences -> Extensions -> Add Extension**, lalu arahkan ke folder lua-extension/ di dalam repo ini (atau salin ke direktori ekstensi Aseprite Anda).
### 3. Konfigurasi di Antigravity IDE (mcp_config.json)
`json
{
mcpServers: {
lentera-aseprite: {
command: node,
args: [D:/GodotProjects/lentera-aseprite-mcp/build/index.js]
}
}
}
`
---
## Lisensi
Dibuat secara kustom untuk ekosistem game **Lentera Pudar**.
TDQS
Scored across 51 tools
Each tool targets a distinct resource and action. Drawing tools are separated by shape, palette tools by operation, and export tools by format. Even similar tools like `get_canvas_preview` and `take_screenshot` are clearly differentiated by description.
All tools follow a consistent `verb_noun` snake_case convention, making it easy to predict tool names. Verbs are action-oriented (open, get, set, add, remove, draw, export) and nouns clearly identify the target (sprite, layer, frame, tag, palette).
At 51 tools, the server is heavily overloaded. While each tool is individually useful, the sheer number creates navigation burden and suggests excessive granularity (e.g., separate shape drawing tools, multiple export formats). This detracts from coherence.
The surface is extremely complete, covering sprite lifecycle, layers, frames, tags, palette, drawing, transformations, export, and cel operations. The inclusion of `run_lua_script` ensures no operation is impossible, making gaps moot.