MeiGen AI Design MCP
OFFICIAL SERVERImage and video generation, visual edit workflows and prompt-gallery search on MeiGen
Draws, animates and exports pixel art inside a running Aseprite window, one undo step per action
By Pebbly TypeScript Local · stdio DesignMedia
67 popularity score ★ 628 ↓ 797/wk
Opens the app, which asks before it adds the server.
npx @pebbly/aseprite-ai-artist install-extensionclaude mcp add aseprite-ai-artist -- npx -y @pebbly/aseprite-ai-artist serve{
"mcpServers": {
"aseprite-ai-artist": {
"command": "npx",
"args": [
"-y",
"@pebbly/aseprite-ai-artist",
"serve"
]
}
}
}{
"mcpServers": {
"aseprite-ai-artist": {
"command": "npx",
"args": [
"-y",
"@pebbly/aseprite-ai-artist",
"serve"
]
}
}
}{
"servers": {
"aseprite-ai-artist": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@pebbly/aseprite-ai-artist",
"serve"
]
}
}
}[mcp_servers.aseprite-ai-artist]
command = "npx"
args = ["-y", "@pebbly/aseprite-ai-artist", "serve"]gemini mcp add --scope user aseprite-ai-artist npx -- -y @pebbly/aseprite-ai-artist serveASEPRITE_AI_HEADLESS |
Optional: Set to 1 to have the server run its own windowless Aseprite instead of using the open window. |
|---|---|
ASEPRITE_PATH |
Optional: Path to the Aseprite executable for headless mode, when it is not in a standard or Steam location. |
ASEPRITE_AI_ALLOW_LUA |
Optional: Set to 1 to expose run_lua; in a live window, Aseprite itself also needs this variable. |
ASEPRITE_AI_PLUGIN_PORT |
Optional: Local port the Aseprite extension connects to (9931 by default). |
ASEPRITE_AI_CONTROL_PORT |
Optional: Local control port of the bridge (9932 by default). |
Aseprite AI Artist connects a coding agent to the Aseprite pixel-art editor. A small Lua extension inside Aseprite talks to a local bridge, and the MCP server sends the agent's requests through it. The agent edits the document you have open, so you watch each change happen and can undo any action with one Ctrl+Z.
The agent can create and open sprites, set palettes (console presets plus about 2000 Lospec palettes), draw shapes, fills, text and whole frames typed out as character grids, add layers, frames, tags and tweened cels, recolour, and check its work with previews, ASCII read-backs, diffs and a lint pass. It exports PNG, GIF, spritesheets with a JSON atlas, and tilesets for Tiled or Godot 4. The server also serves a pixel-art rulebook (62 chapters) as rules:// resources and its workflows as skill:// resources and MCP prompts. For Claude Code and omp the same repository is a plugin that adds /aseprite:* commands and helper subagents.
The tool reference at the installed version (0.8.2) lists 18 tools. A 19th, run_lua, runs arbitrary Lua inside Aseprite. The server keeps it hidden unless started with --allowLua or ASEPRITE_AI_ALLOW_LUA=1, and in a live window the extension refuses it unless Aseprite itself was started with that variable (docs/TOOLS.md, SECURITY.md). A headless mode (serve --headless) has the server start a windowless Aseprite for batch or CI work.
| Runtime | Node.js 22+ |
|---|
Aseprite 1.3 or later (a paid app, or built from source) on macOS, Linux or Windows, and Node 22.6+ for npx. Install the Aseprite extension once with `npx @pebbly/aseprite-ai-artist install-extension`, then restart Aseprite. In live mode Aseprite must be open with the extension connected. Headless mode needs the Aseprite executable path (--aseprite or ASEPRITE_PATH) if it is not in a standard place. Local ports 9931 and 9932 must be free, or set others.
In live mode, tools refuse with not_connected while Aseprite is closed or detached. They do not fall back to editing files on disk. The agent switches to headless mode only when told to. transform acts on one cel at a time, and rotation by angles other than 90° needs allowLossy. tileset needs Aseprite's tileset feature. palette extract works on RGB sprites only (2-256 colours, 16 by default). Codex does not show MCP prompts, so there the skills come only as resources. OpenCode 1.x needs the config entry written by hand. The installer edits agent config files without a lock, so its docs say to run it while the agent is closed.
Suits game developers and pixel artists who already use Aseprite and want an agent to draw, animate and export sprites while they watch and correct it in the open window, or to batch-produce assets in headless mode. It is a poor fit without an Aseprite licence or build, on a machine shared with untrusted local users (the bridge port has no sign-in), or if you want image generation rather than pixel-by-pixel editing.
preflightsprite_infosprite_managelookread_pixelsdrawselecttransformrecolorlayerframetagcelpalettevalidatereferenceexporttilesetrun_lua