pixelsmith
Click on "Install 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., "@pixelsmithCreate a 32×32 knight sprite, give it a breathing idle, and export a GIF."
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.
Pixelsmith
A pixel-art sprite editor your AI agent can actually drive. Headless core, browser editor, MCP server — all rendering the same pixels.
Status: 0.1, prototype. The engine and the MCP server are solid and well tested — 256 tests across the three packages. The hand-drawing tools are thin next to Aseprite. Read What this is and isn't before you invest in it.
Not published to npm yet. The
npxcommands below are how it will be installed; until then, clone the repo and run the server frompackages/mcp/dist/server.js.
What it does
Connect an agent over MCP and it can create a sprite, draw into it, animate it with keyframes or procedural motion styles, and export a GIF, APNG or packed spritesheet — seeing a PNG preview after every single step. That last part is the whole design: an agent that can look at its own output iterates dramatically better than one working blind.
Drop a reference photo in the editor and the agent can read the actual pixels through an MCP resource, so "make it look like this" has something real behind it.
Related MCP server: aseprite-mcp
60-second quickstart
npx pixelsmith-mcpThat starts the MCP server on stdio with a sandboxed workspace in ./pixelsmith-workspace. Point a client at it.
Until the package is published, run it from a clone instead:
git clone https://github.com/liamlz11/pixelsmith
cd pixelsmith
npm install
npm run build
node packages/mcp/dist/server.jsThe client configs below then take "command": "node" and "args": ["/absolute/path/to/pixelsmith/packages/mcp/dist/server.js"].
Claude Code
claude mcp add pixelsmith -- npx -y pixelsmith-mcpClaude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"pixelsmith": {
"command": "npx",
"args": ["-y", "pixelsmith-mcp"],
"env": { "PIXELSMITH_WORKSPACE": "/absolute/path/to/a/folder" }
}
}
}Cursor — .cursor/mcp.json:
{
"mcpServers": {
"pixelsmith": { "command": "npx", "args": ["-y", "pixelsmith-mcp"] }
}
}Cline — in cline_mcp_settings.json:
{
"mcpServers": {
"pixelsmith": { "command": "npx", "args": ["-y", "pixelsmith-mcp"], "disabled": false }
}
}Any generic MCP client — command npx, args ["-y", "pixelsmith-mcp"], transport stdio.
Then ask for something:
Create a 32×32 knight sprite, give it a breathing idle, and export a GIF.
The editor
git clone https://github.com/liamlz11/pixelsmith
cd pixelsmith
npm install
npm run devOpens on http://localhost:5173. On Windows, double-clicking dev.bat does the same thing — it installs dependencies on first run, builds the core package, starts the server and opens a browser. It shares the MCP server's library when both are running, so you can watch an agent draw and take over with the mouse mid-sprite.
Tool reference
Tool | What it does |
| Browse the library |
| Make sprites |
| Draw |
| Structure |
| Timeline |
| Grow, pad or crop the canvas — the fix for artwork clipped in exports |
| Animation |
| Colour |
| References |
| Output |
| History |
Resources: pixelsmith://project, pixelsmith://project/{id}, pixelsmith://project/{id}/reference/{refId}, pixelsmith://items.
Prompts: recreate-reference-as-sprite.
Every create/draw/transform/export tool returns a base64 PNG alongside its text.
Motion styles
breathe · bob · sway · walk · recoil · swing · float · pulse · shake
Each generates a transform track from a handful of numbers (amplitude, frequency, phase, easing). They stack with per-modifier weight, stay re-editable in the document, and bake down to plain keyframes when you want to hand-tune. shake runs off a seeded PRNG — the same seed always produces the same jitter, because nothing here may break determinism.
Configuration
Variable | Default | Purpose |
|
| The only place on disk the server touches |
|
| Where documents are stored |
|
| Where exports are written |
|
| The only directory reference images may be read from |
| unset | Path to an example pack JSON to preload |
|
| Max canvas edge, in pixels |
|
| Max total canvas cells |
|
| Max frames per document |
|
| Max layers per document |
|
| Max document size on disk |
|
| Tool-call rate limit |
Architecture
Three packages, one idea:
packages/core headless. no DOM, no React. document model, compositor,
animation engine, encoders. this is the product.
packages/editor browser UI. imports core.
packages/mcp MCP server. imports the same core.The editor and the MCP server never reimplement anything. A determinism test renders a document through the GUI path and the export path and asserts the RGBA buffers are byte-identical — that guarantee is why an agent can trust what it sees in a preview. See docs/architecture.md.
Examples
examples/ holds runnable agent scripts and one optional sample content pack:
examples/scripts/generate-from-description.mjs— a character from a text promptexamples/scripts/walk-cycle-from-one-frame.mjs— animate a single drawingexamples/scripts/batch-recolor.mjs— one sprite, N palettesexamples/cyberlab-mentors/— eleven example characters and a wardrobe of items cut out of them. Sample content, not part of the tool. Load withPIXELSMITH_EXAMPLES=examples/cyberlab-mentors/pack.json.
What this is and isn't
It is: a genuinely headless pixel-art engine with a well-shaped MCP surface. Deterministic. Every mutation returns a picture. References give a vision model real pixels to match. Animation is transform tracks and procedural motion, not a flipbook. Old documents keep opening — there are four schema versions and migrators for all of them.
It isn't: an Aseprite replacement. There are no linked cels, no free-transform, no tilemaps, no brush engine to speak of. Undo is per-document and in-memory. The editor is one dark theme with no customisation. If you want to draw pixel art by hand, buy Aseprite — it costs about as much as lunch and it is excellent.
Use it if you want an agent to make sprites, or you want a headless sprite engine to build on. Don't use it if you want a better mouse-driven drawing app.
Contributing
See CONTRIBUTING.md. Security issues: SECURITY.md.
Licence
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityBmaintenanceMCP 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.MIT
- AlicenseBqualityDmaintenanceMCP server for Aseprite — create, edit, and export pixel art sprites, animations, and sprite sheets from any AI assistant.436MIT
- AlicenseBqualityAmaintenanceAn MCP server that lets AI agents create and edit Aseprite sprites headlessly, enabling pixel art, animation, and export via 98 tools.1001MIT
- AlicenseAqualityDmaintenanceA pixel art animation MCP server for AI agents, enabling scene generation, sprite drawing, and PNG export with zero latency.19502MIT
Related MCP Connectors
Generate authentic pixel art - sprites, animations, and tilesets - from any MCP client
MCP server for NanoBanana AI image generation and editing
MCP server for Flux AI image generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/liamlz11/pixelsmith'
If you have feedback or need assistance with the MCP directory API, please join our Discord server