# SpriteShip > SpriteShip turns text prompts into production-ready 2D game art — characters with > animated spritesheets, tilesets, terrain, seamless textures, backgrounds, and full > levels — and exports them to Phaser, Godot, Unity, GameMaker, and Tiled. It is built > to be driven by an AI coding agent: everything the web app can do, an agent can do > over a hosted MCP server or a REST API, under spend controls the agent cannot raise. ## Connect an agent **MCP (recommended).** Streamable HTTP endpoint: https://spriteship.com/mcp Authenticate with an API key as a Bearer token. Example client config: { "mcpServers": { "spriteship": { "type": "http", "url": "https://spriteship.com/mcp", "headers": { "Authorization": "Bearer ss_live_..." } } } } Claude Code one-liner: claude mcp add --transport http spriteship https://spriteship.com/mcp \ --header "Authorization: Bearer ss_live_..." **REST.** The same surface as plain HTTP, for agents without MCP support: curl -H "Authorization: Bearer ss_live_..." https://spriteship.com/api/v1/me Create a key at https://spriteship.com/account/api-keys. The raw key is shown once. ## Spending is gated, and the gate is not advisory Generations cost credits — real money. Four things are true of every key, and none of them can be changed by the key itself; only the account owner can, from the dashboard. An agent that has been prompt-injected cannot raise its own budget. - **Scopes are fixed at creation.** `assets:read` and `account:read` are the defaults. `assets:write` adds free, no-AI operations (frame curation, duplicating an animation, promoting a pose to a still, cancelling a job). `credits:spend` is a separate, explicit opt-in and is the only scope that can cost money. - **Every paid operation can be priced before it runs.** Over MCP, paid tools return a cost quote by default and execute nothing until the agent explicitly opts in. Over REST, add `?dryRun=true` to any paid POST. Either way you get `estimatedCredits`, the current balance, and the key's remaining daily headroom without spending anything. - **Every key has a daily spend cap**, defaulting to 5,000 credits per rolling 24 hours, plus a paid-attempt ceiling. Accounting is gross: refunds restore the balance but never restore the cap's headroom, so a key whose generations keep failing exhausts its own budget instead of looping forever. - **Paid writes require an idempotency key**, so a retry after a network failure cannot double-charge. Reads are free on every plan, and structurally so: the read surface never touches the credit ledger. ## What an agent can do - **Read the library** — projects, characters (the full Phaser-ready JSON with animations, atlases, mounts, and poses), assets of all six types, maps with their saved level data, custom-field definitions, credit balance and per-key ledger. - **Plan a safe re-sync** — compare a local lock file in one free call, receive field-level summaries for represented animation/collision/runtime/map fields, a coarse signal for other content, and review unavailable entities before any local file is removed. - **Export** — engine bundles for Phaser, Godot, Unity, GameMaker, and Tiled maps. Every zip carries a self-describing bundle (a manifest, a JSON Schema, a README, and a SKILL.md) so an agent can wire the output into a game project unaided. - **Curate for free** — pick which frames an animation keeps, duplicate its current saved state exactly, promote a pose into a 1-frame idle, cancel a job. None of these touch the ledger. - **Verify generated animation delivery** — a completed animation job requires a character quality read; machine-readable gates lead the agent through free frame inspection/repair before it can call the animation ready. - **Generate, with consent** — new character poses, animate any asset, revise an asset, re-roll a single motion clip, make a texture tile seamlessly. ## Documentation - [API Overview](https://spriteship.com/docs/api-overview): auth model, scopes, the read/write split, and how paid calls are gated - [API Reference](https://spriteship.com/docs/api-reference): every /api/v1 endpoint with parameters and response shapes - [Errors & Limits](https://spriteship.com/docs/api-errors-and-limits): the machine-readable error `code` table, rate-limit tiers, and durable ceilings - [Use with Claude Code](https://spriteship.com/docs/agent-skill): the distributable agent skill and its slash commands - [Account & API Keys](https://spriteship.com/docs/account-and-api-keys): creating an ss_live_ key, choosing scopes, setting a per-key daily spend cap - [Credits & Billing](https://spriteship.com/docs/credits-and-billing): what a generation costs and how refunds work - [Exports](https://spriteship.com/docs/exports): the self-describing export bundle every zip ships - [Getting Started](https://spriteship.com/docs/getting-started): what SpriteShip produces, end to end - [Core Concepts](https://spriteship.com/docs/core-concepts): projects, characters, animations, assets, maps - [Characters](https://spriteship.com/docs/characters): character generation, poses, and rotation - [Animations](https://spriteship.com/docs/animations): how animations are generated, curated, and normalized - [Assets](https://spriteship.com/docs/assets): the six asset types and what each produces - [Animating Assets](https://spriteship.com/docs/animating-assets): animation as a capability of every asset type - [Level Editor](https://spriteship.com/docs/level-editor): placing assets into maps - [Custom Fields](https://spriteship.com/docs/custom-fields): typed per-entity and per-placement data baked into exports - [Prompting Guide](https://spriteship.com/docs/prompting-guide): what wording actually changes the output ## Also - [Marketplace](https://spriteship.com/marketplace): free, royalty-free asset packs; every pack is a real export bundle - [Pricing](https://spriteship.com/pricing): credit packs and subscriptions - [Features](https://spriteship.com/features): the full capability list