SpriteShip
Agentic game-art platform

Your coding agent can
build the art too.

SpriteShip is the only platform where an agent builds your game's entire art layer end-to-end — characters, animations, tilesets, backgrounds, collision shapes and whole level maps, not just single images. Give your agent a scoped key and it drops engine-native files straight into your project, bounded by a daily spend cap you set. Works in Claude Code, Cursor, Windsurf, Cline and Codex.

Hosted MCP server

One endpoint, 40 tools. Paid tools preview their cost by default — the agent has to deliberately opt in to spend.

POST https://spriteship.com/mcp

Machine-readable index at /llms.txt.

No credit card. Reading and re-syncing are free forever.

A generated character standing on a generated isometric tileset — one agent request, a whole scene
The actual loop

Ask for art. Get art, wired in.

This is a real session shape, not a mockup: the agent resolves the entity, previews the cost, waits for you, generates, polls, writes the files, and edits the code that plays them.

Session
you › the knight needs a dodge-roll animation, then wire it into the player state machine

  agent › GET /api/v1/characters?name=knight
          → chr_8fq2… · contentVersion 4a1c… · 6 animations

  agent › POST /api/v1/characters/chr_8fq2…/generate-pose  { dryRun: true }
          → 400 credits · balance 1,500 → 1,100

  you   › go ahead

  agent › POST /api/v1/characters/chr_8fq2…/generate-pose
          Idempotency-Key: 7c1f-…
          → job_2b9e… queued
  agent › GET /api/v1/jobs/job_2b9e…            → running
  agent › GET /api/v1/jobs/job_2b9e…            → done · 400 credits charged

  agent › GET /api/v1/characters/chr_8fq2…/export?engine=phaser&format=json
          → wrote assets/spriteship/knight/spritesheet.png
            wrote assets/spriteship/knight/atlas.json
            wrote spriteship.lock.json  (contentVersion 91be…)

  agent › edited src/player/PlayerStateMachine.ts
          + case 'dodge': this.play('dodge_roll'); break;

done — dodge_roll is registered and playable. 400 credits spent.
Setup

A key, an env var, and a file.

There is no server to run and no extension to install. Every agent already speaks HTTP — the only tool-specific part is where it reads project instructions from.

01

Create a key

In the dashboard under Account → API keys. Read scopes (assets:read, account:read) cover every sync recipe. Add assets:write for frame curation, and credits:spend only if the agent should run paid generations.

02

Export it

export SPRITESHIP_API_KEY="ss_live_…" in the shell your agent runs in. The raw key is shown once and stored only as a hash — keep it out of committed files and agent settings.

03

Connect it

Point your agent at our MCP server and it gets 40 tools — list, read, export, curate frames, generate. Or skip MCP entirely and let it call the REST API directly; the same key and the same guardrails apply either way.

04

Ask for art

The agent lists your projects, pulls the entity you named, writes the sheets and atlases into your project tree, and records a lock file so it can re-sync only what changed.

Guardrails

Handing an agent a budget, safely.

An agent that can spend money needs more than an API key. Every one of these is enforced server-side — not a convention the agent is trusted to follow.

Scoped keys

Four scopes, granted separately: assets:read, account:read, assets:write, credits:spend. A read-only key physically cannot spend money.

Per-key spend caps

Every key carries a daily credit ceiling — 5,000 by default, 50,000 maximum. Accounting is gross, so refunds restore your balance but never hand the key back headroom.

Over MCP, paid tools preview by default

Every paid MCP tool defaults to a dry run: it returns the exact credit cost and your resulting balance, and executes nothing. The agent has to deliberately re-call with dryRun:false to spend. Accidental spend is not a thing it can stumble into.

Idempotency keys

Paid writes require an Idempotency-Key header. A retried request replays the original job pointer instead of starting — and paying for — a second generation.

Busy-entity guard

A write against an entity that already has a job running answers ENTITY_BUSY rather than racing it, so two agents (or one confused agent) cannot corrupt the same character.

Re-sync signals

Every read carries contentVersion or updatedAt. The agent diffs those against its lock file and re-downloads only what actually changed after you edited something in the dashboard.

Presigned binaries

Every sheet, atlas, zip and preview URL is presigned and expiring. Nothing in an API response is a permanent public link.

Kill switch

Revoking a key cancels its in-flight jobs and refunds their unfinished charges. Leaked keys found by GitHub secret scanning are revoked automatically and you get an email.

What lands in your repo

Output an agent can actually use.

A folder of PNGs makes an agent guess. Every SpriteShip export explains itself, so the agent wires it up instead of improvising.

Self-describing bundles

Every export zip carries a manifest (tizo-export.json), a JSON Schema of its own shape, a README, a runnable preview and a SKILL.md — so an agent can consume the output without you explaining the format.

Native engine files

Phaser atlases, Godot 4 .tres resources, Unity sliced sprites with stable GUIDs, GameMaker sprite strips and Tiled tilesets. Not a folder of PNGs the agent has to guess at.

Collision, not bounding boxes

Authored collision bodies and ground footprints ride through the API and into every export, so the agent builds the real collider instead of defaulting to the sprite rectangle.

Mount points

Per-frame anchor points for weapons, hands and heads travel with the animation, so the agent can parent a projectile spawn to the right pixel on the right frame.

Give your agent
a key.

1,500 free credits, no card. Read and re-sync forever for nothing — you only pay when something is generated.

Start free — 1,500 credits