pixel-studio
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Pixel Studio API
A pixel-art sprite editor your AI agent can draw with. Every frame above was drawn by Claude through this API's MCP server.
English · Español
Pixel Studio is a small, local sprite editor with frame-by-frame animation. People draw in the web editor; AI agents draw with the same commands over MCP, and every change shows up live in the editor.
This repo is the server: the drawing logic, the project files, HTTP + WebSocket, and the MCP endpoint.
Why it's agent-friendly
Agents read and write sprites as text. One letter per pixel, one line per row, . is transparent:
10 ....OOOOOOOOOOOOOOOOOO..........
11 ....OOOOOOOOOOOOOOOOOO..........
12 ....OOOOOOOOOOOOOOOOOO..........
13 ....OOOOKKOOOOOOKKOOOO..........
14 .OOOOOOOKKOOOOOOKKOOOOOOO.......When a command is wrong, the error tells the agent exactly how to fix it:
Row 3 has 15 characters, expected 16
Color 'X' is not in the palette. Available: . B D W K(The real messages are in Spanish: Fila 3 tiene 15 caracteres, se esperaban 16.)
Related MCP server: pixel-mcp
Quick start
git clone https://github.com/FernandoMVG/pixel-studio-api.git
cd pixel-studio-api
npm install
npm run devThe API listens on http://127.0.0.1:4317: HTTP, WebSocket on /ws, MCP on /mcp. Projects are saved as .json files in ~/PixelStudio/proyectos.
Connect your agent
With Claude Code:
claude mcp add --transport http pixel-studio http://127.0.0.1:4317/mcpThen ask it something like "create a 32×32 project and draw a cat that blinks". Any MCP client that supports streamable HTTP works the same way.
Tool | What it does |
| Size, palette and animations |
| A frame as text, one row per line |
| Replace whole rows: the fastest way to draw a sprite |
| Single pixels and paint bucket |
| Frames, per-frame duration and speed |
| Animations and palette |
| Only touches the agent's own changes, never yours |
| Renders a frame so the agent can look at its own drawing |
| Behind permissions you control from the editor |
HTTP and WebSocket
Method | Route | |
|
| List and create |
|
| Read and delete |
|
| Apply drawing commands, returns patches |
|
| History per session |
|
| Exports, scaled with nearest neighbor |
|
| Agent permissions |
|
| What the agent has been doing |
|
| Live patches and project events |
How it works
flowchart LR
web["Web editor"] -- HTTP --> canvas
agent["AI agent"] -- MCP --> canvas
canvas["canvas<br/>(the only writer)"] -- "project + patch" --> store[("project .json")]
canvas -- patches --> ws["WebSocket"] --> webOne writer. Every change, from a person or an agent, goes through the
canvascommands. Each returns the new project plus a patch{x, y, before, after}, and undo/redo is built on those patches.Pure domain.
src/features/(projects,canvas,animations,export,agent) knows nothing about files or the network. Transport and storage live insrc/infra/.Validated input. Zod checks every command, with messages written for an agent to self-correct.
Small by design. Canvases from 8 to 32 px per side, a fixed palette of 4–6 one-letter colors, scaling always with nearest neighbor.
Local and simple. One
.jsonfile per project, behind aProjectStoreinterface. No database.
Configuration
Copy .env.example to .env to change the defaults:
Variable | Default | |
|
| API port |
|
| Where projects are saved |
|
| Settings saved from the app |
|
| Agent can create projects |
|
| Agent can delete projects and animations |
Development
npm test # Vitest
npm run typecheck # tsc --noEmitThe web editor imports this repo's types directly (src/contract.ts), so if you work on the editor, clone both repos side by side as pixel-api and pixel-web.
License
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Pixel art for your game, from your coding agent. Generate sprites, items and tiles in your game's style (64 to 1024 px), make variants, reskins and N/E/S/W directions, then edit everything in a full pixel art editor that syncs into your project. Works with Claude, Claude Code, Cursor and ChatGPT; sign in with OAuth, no API key.
Generate, edit, style-match, turn, and animate game-ready pixel art at exact sizes.
Free pixel and tileset editor, no account: hand-edit sprites, animations and Wang tilesets in chat
Generate pixel art sprites, animations, 8-direction rotations and palettes for games.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to create and manipulate pixel art by providing tools for drawing, layer management, and animation frame control. It supports exporting projects to PNG, GIF, and sprite sheet formats via the Model Context Protocol.2219Apache 2.0
- AlicenseBqualityDmaintenanceEnables LLMs to create and edit pixel art reliably with support for layers, frames, symmetry, and various drawing tools.70MIT No Attribution
- AlicenseAqualityBmaintenanceEnables AI to create pixel art in Aseprite through pixel-level drawing primitives, read canvas screenshots, and iterate until satisfied.317MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to draw live in Aseprite, creating and editing sprites, using drawing tools, managing layers and frames, and viewing results as images.23157 npm11MIT