AI Sprite Maker runs a remote Model Context Protocol server. Add it to your coding agent and you can ask for art in the same place you write the game: “make a 64 px slime enemy with idle and hurt animations and wire it into Slime.tscn”. The agent calls our tools, waits for the job, downloads the sheet into your repo and writes the import code.
Connection details
Server URL https://aispritemaker.com/mcp · transport: Streamable HTTP · auth header Authorization: Bearer asm_live_… · included with every plan, Free too · uses the same credits as the website.
Before you start
- Any plan works, including Free. MCP calls use your normal credit balance and cost the same as the web app (10 credits per direction for a library animation, 2 for a still sprite).
- Create an API key at Dashboard → API keys. Name it after the tool, e.g.
claude-code-laptop, so you can revoke it on its own later. - Put the key in an environment variable rather than pasting it into config files that might get committed:
# ~/.zshrc or ~/.bashrc
export ASM_API_KEY="asm_live_…"
Claude Code
One command. Run it in your project folder, or add --scope user to make it available in every project.
claude mcp add --transport http aispritemaker https://aispritemaker.com/mcp \
--header "Authorization: Bearer $ASM_API_KEY"
Check it connected with claude mcp list, or type /mcp inside a session. To share the server with your team without sharing a key, use --scope project, which writes a .mcp.json to the repo. Claude Code expands environment variables in that file, so each developer supplies their own key:
{
"mcpServers": {
"aispritemaker": {
"type": "http",
"url": "https://aispritemaker.com/mcp",
"headers": { "Authorization": "Bearer ${ASM_API_KEY}" }
}
}
}
Claude Code plugin and skill
For Claude Code there’s also a plugin that bundles the MCP server with a skill: instructions that teach the agent how to use AI Sprite Maker well. It checks motions and credits first, asks before expensive jobs, keeps one character consistent across animations, and knows how to wire the PNG + JSON into Godot, Unity, Phaser or a canvas game.
- Download aispritemaker-claude-plugin.zip and unzip it. You get an
aispritemakerfolder. - Export your key as
ASM_API_KEY(the plugin’s MCP config reads it from the environment). - Install it from the folder that contains
aispritemaker:
claude plugin marketplace add ./aispritemaker
claude plugin install aispritemaker@aispritemaker
Inside a session, /plugin marketplace add ./aispritemaker and /plugin install aispritemaker@aispritemaker do the same. Restart Claude Code, then just ask: “Make a 64 px fox knight with walk and attack animations in 4 directions and add it to Player.tscn.”
Skill only. If you’ve already added the MCP server with claude mcp add, you can install just the skill: copy aispritemaker/skills/aispritemaker to ~/.claude/skills/aispritemaker (all projects) or .claude/skills/aispritemaker (one project). The same folder works as a Codex skill in ~/.codex/skills/aispritemaker. It includes a small zero-dependency Node helper (scripts/asm.mjs) the agent can call when MCP isn’t available.
Cursor
Add the server to ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one project:
{
"mcpServers": {
"aispritemaker": {
"url": "https://aispritemaker.com/mcp",
"headers": { "Authorization": "Bearer ${env:ASM_API_KEY}" }
}
}
}
Open Cursor Settings → MCP and check that aispritemaker shows a green dot and lists its tools. If Cursor was started from the dock and can’t see your shell’s environment variables, launch it from a terminal with cursor . or paste the key directly into a file you keep out of git.
OpenAI Codex
Codex reads MCP servers from ~/.codex/config.toml (or .codex/config.toml in a trusted project). It sends the token from the environment variable you name:
[mcp_servers.aispritemaker]
url = "https://aispritemaker.com/mcp"
bearer_token_env_var = "ASM_API_KEY"
Restart Codex and run /mcp to confirm the tools are listed.
VS Code (GitHub Copilot agent mode)
Create .vscode/mcp.json in your workspace. The inputs block makes VS Code prompt for the key once and store it securely instead of saving it in the file:
{
"inputs": [
{
"type": "promptString",
"id": "asm-key",
"description": "AI Sprite Maker API key",
"password": true
}
],
"servers": {
"aispritemaker": {
"type": "http",
"url": "https://aispritemaker.com/mcp",
"headers": { "Authorization": "Bearer ${input:asm-key}" }
}
}
}
Then click Start above the server entry, or run MCP: List Servers from the Command Palette. The tools show up in Copilot Chat’s agent mode tool picker.
Windsurf, Zed and other clients
Any client that supports remote MCP servers over HTTP with custom headers works. Use the URL https://aispritemaker.com/mcp and the header Authorization: Bearer <your key>. For example, Windsurf’s ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"aispritemaker": {
"serverUrl": "https://aispritemaker.com/mcp",
"headers": { "Authorization": "Bearer asm_live_…" }
}
}
}
Clients that only speak stdio can use the mcp-remote bridge:
npx -y mcp-remote https://aispritemaker.com/mcp --header "Authorization: Bearer $ASM_API_KEY"
Sign-in without an API key
OAuth sign-in for chat apps that add servers as “connectors” (where you log in through a browser instead of pasting a key) is in development. Until then, use an API key as shown above.
Tools
The tools mirror the REST API. Each one that creates work returns a job; the agent then calls get_job every 5 to 10 seconds until it finishes. Outputs come back as signed URLs plus metadata (frame size, columns, rows, fps, direction order), never as base64 blobs, so they don’t fill up the agent’s context.
| Tool | What it does | Credits |
|---|---|---|
sprite_guide | Read-first reference for the agent: job types, costs, sizes, styles, polling and how to use outputs in a game | free |
list_motions | The motion library: ids, categories, frame counts, fps, supported views | free |
get_balance | Credit balance (daily, plan, packs), plan limits and recent jobs | free |
create_sprite | Still sprite (character, monster, item, prop) with a transparent background, 1 or 4 variations | 2 per variation |
animate_character | Put a character into a library motion; returns a looping sheet, JSON and GIF | 10 flat, including drawing the character |
create_directions | 4- or 8-direction turnaround of a character | 8 / 14 |
create_tileset | A 4 × 4 seamless tileset (16 tiles) as one sheet + JSON | 6 |
edit_sprite | Recolour, add an item or change an outfit on an existing sprite | 2 |
get_job | Status and progress of a job; when finished, its files as signed URLs | free |
list_assets | Your recent outputs, so the agent can reuse a character across animations | free |
All create tools accept style, view, size and palette, plus character_asset_id or reference_upload_id to reuse a character. animate_character renders one direction per call; ask the agent to call it once per direction you need, or use the REST API directions field to get all rows in one sheet. Custom motions and video-to-sprite are REST-only for now. The tool descriptions the server sends are the source of truth; your client shows them when it connects.
Prompts that work well
You talk to your agent normally. Some phrasing we’ve found useful:
- “Check my AI Sprite Maker balance, then make a 48 px top-down farmer with walk and idle in 4 directions, gba style. Save the sheets to
assets/sprites/farmer/.” - “List the attack motions. Animate the knight from my last job with
attack-slash, side view.” - “Generate 4 variations of a 32 px health potion icon, 8-bit style, and show me the URLs before you download anything.”
- “Make the slime’s hurt animation, then create
res://enemies/slime_frames.tresas a SpriteFrames resource withidleandhurtanimations at the fps from the job metadata.”
Asking the agent to check the balance or show results before downloading avoids surprises, since every create call spends credits.
Troubleshooting
| Symptom | Fix |
|---|---|
| Client shows the server as failed or with 0 tools | Check the URL ends in /mcp with no trailing slash, and that the header starts with Bearer and a space |
invalid_api_key | The key was revoked or mistyped. Create a new one; keys are only shown once |
concurrency_limit | Your agent started more jobs than your plan runs at once (Free 1, Starter 2, Pro 4, Studio 10). Ask it to wait for one to finish |
insufficient_credits | Top up with a pack or wait for daily credits. The agent’s error message includes how many it needed |
| The agent invents tool names | Ask it to “list the aispritemaker tools” first. Some clients cache tool lists until restart |
More error codes are listed in the API reference.
Security notes
- An MCP key can spend your credits. Use a separate key per machine and per client, and revoke keys you no longer use at Dashboard → API keys.
- Keep keys out of committed files. Use environment variables (
${ASM_API_KEY},${env:ASM_API_KEY},bearer_token_env_var) or your client’s secure input prompt. - Agents can be talked into things by text they read. If your agent browses the web or reads untrusted files, have it confirm before calling tools that spend credits.