Game Development
spriteship.com
Manages game development projects and characters, including credits, project details, and character synchronization signals.
ENDPOINT 1
https://spriteship.com/mcp
MCP server metadata
- Name
- spriteship
- Version
- 1.1.0
SpriteShip generates 2D game art (characters with animated spritesheets, tilesets, terrain, brushable Materials, backgrounds, levels) and exports it to Phaser, Godot, Unity, GameMaker, Tiled, Sparrow XML character atlases, and Unreal/Paper2D (beta). Unreal is visual import, not automatic gameplay; native Unreal verification is pending. RIGHTS: use only content the user owns or has permission to use and distribute. If rights to reference images, artwork, fonts, music or code are unclear, ask before using them and offer an original alternative. Do not source third-party game assets or imitate protected branding as a shortcut. Preserve required licenses and notices. Format compatibility grants no third-party content or trademark rights and implies no endorsement. Use neutral Sparrow XML labels; fnf remains the stable technical identifier. SKILL UPDATES: the current customer skill is 0.3.5. Once when starting SpriteShip work in a session, use get_integration_status if available, with the version actually read from local SpriteShip instructions (omit when unknown). If update_available, tell the user once what changed and link the returned updateGuidePath on this configured SpriteShip server. If unknown, briefly offer the current skill and /docs/agent-skill#updates; do not claim their installed copy is outdated. A newer local copy must not be downgraded. Checks are advisory: continue compatible work if offline or unavailable, do not retry repeatedly, change files, or infer consent to update. Reconnect/refresh the client's tool catalog after server updates; this server does not push updates into existing sessions. SPENDING: tools marked PAID cost the user real money. They default to dryRun:true, which returns a cost quote and generates nothing. Never pass dryRun:false until you have shown the user estimatedCredits from a dryRun call and they have approved that specific amount in this conversation. A request to "generate something" starts that approval flow — it is not itself approval. WORKING WITH RESULTS: binary URLs are presigned and expire in about an hour — download them immediately, and never store or commit one. Characters and UI packs change-track via the opaque contentVersion token (compare for equality only); projects, assets and maps use updatedAt. For UI packs use the downloaded archive token and saved engine/selection in plan_sync; keep the existing local folder. UI requests use UI Pack tools directly, not character creation. Read the project style guide first; adopting its changes into an existing pack is explicit and never regenerates saved art. Packs provide artwork/components, not game logic or UI placement in Game Preview. Most write tools return a jobId to poll with get_job; generate_pose has no job and is polled with list_character_poses instead. Generations take minutes, not seconds. For a character animation job, status:"done" is pipeline completion only: follow its animationQualityGate to get_character and do not export, sync, or claim readiness until every affected animation is ready or you have reported the unresolved review to the user. Prefer the free tools where they do the job: frame curation, duplicating an animation, and promoting a pose to a still are no-AI operations that never touch the ledger.
Known tools 68
list_projectsAll of the user's projects: { id, name, gameType, style, itemCount, createdAt, updatedAt }.
Inferred read-onlyget_projectOne project with its description, registered mount slots, and assetSuggestions — premade AI prompt ideas per entity type (character + the 6 asset types), tailored to the project's vision.
Inferred read-onlylist_charactersCharacters with the re-sync signals: contentVersion (opaque change token — compare for equality, never parse or order), hasActiveJob, apiReady, pose/animation counts, tags, favourite.
Inferred read-onlyget_characterThe full PhaserCharacter JSON: animations, frameSize, gameType, per-group atlas + spritesheet URLs, poses and mount points.
Inferred read-onlylist_character_posesAll poses on a character: { id, name, prompt, status pending|done|error, url, direction, pendingSince, errorCode, creditsRefunded }.
Inferred read-onlylist_assetsAssets (Object / Object Collection / staged / background / Environment Kit / Terrain Materials) with slug, hasAnimation, updatedAt, tags and favourite.
Inferred read-onlyget_custom_fieldsTyped custom-field definitions for a character or asset, plus the derived builtins ($animation for characters, $autoplay/$loop for animated assets).
Inferred read-onlyget_framesPresigned per-frame thumbnails for a character animation or an asset motion pair — never inline base64.
Inferred read-onlyexport_mapEngine-ready map JSON built from the SAVED level data, preserving placement name/gameplayId and baking custom-field values.
Inferred read-onlyget_export_commandBuild the authenticated download URL + a ready-to-run curl line for a zip export (character engine bundle, asset bundle, or map bundle).
Inferred read-onlyframe_animationFREE, and NO AI AT ALL — no video model, no credits, nothing to approve.
Inferred read-onlygenerate_character_animationPAID, and the cost MULTIPLIES BY THE NUMBER OF ANIMATIONS (each is its own image-to-video call, ~400 credits at defaults).
Inferred read-onlygenerate_character_turnPAID (~400 credits — ONE 2-second rotation video), except retrying the exact failed job is FREE while its provider task/result or validated stored source survives.
Inferred read-onlyfix_asset_seamsLEGACY ONLY; new Brushable Materials reject this operation because they use world-space sampling.
Inferred read-onlyretry_jobFREE when the original KIE task or a validated stored artifact can be recovered; otherwise PAID only for the sub-steps that still need to run.
Inferred read-onlygenerate_project_visionPAID but very cheap (one Gemini call) and SYNCHRONOUS — the result comes back in this response, there is no jobId to poll.
Inferred read-onlysuggest_motion_hintPAID but very cheap (one Gemini call) and SYNCHRONOUS — returns { hint, cost } inline, no jobId.
Inferred read-onlyget_subscription_allowancesRead the currently enabled subscriber benefits and their separate monthly limits, caps and balances.
Inferred read-onlyretry_unusable_resultQuality Retry is the subscription compensation for AI art that invents details, ignores the request, or arrives unusable, letting the user try again without asking support for a credit refund.
Potential side effectsimport_asset_imageImport ONE still PNG or WebP as an Object or Character using one separate import allowance (Studio unlimited), zero credits.
Inferred read-onlyget_ui_packRead components, immutable revisions, capabilities, fonts and batch progress.
Inferred read-onlyget_ui_pack_batch_recoveryRead original PNG dimensions, expiring image URL, source hash, and exact delivered/missing slots for an illustrated batch needing review.
Inferred read-onlyrecover_ui_pack_componentsCrop missing slots from a retained original PNG after visual review.
Inferred read-onlyget_ui_pack_batchRead one paid batch and retained source URL; provider completion does not prove usable component delivery.
Inferred read-onlyget_project_style_guideRead the current guide; old projects without an adopted guide receive an initial suggestion.
Inferred read-onlysave_project_style_guideAdopt a new immutable guide revision with optimistic concurrency.
Inferred read-onlysuggest_project_styleSuggest palette, treatment and existing font IDs from the available catalog.
Inferred read-onlysave_ui_pack_styleSave a pack-specific style for future quotes using the current pack updatedAt.
Inferred read-onlyvalidate_ui_component_layoutRevalidate an exact current revision and apply only proven deterministic runtime layout repairs, including bar fill openings, panel text/slice regions, and explicitly named SVG button-state separation.
Inferred read-onlygenerate_ui_packGet a cost preview for an exact component list and batch breakdown, then generate using the returned signed quote.
Inferred read-onlyrevise_ui_pack_pngGet a cost preview for a 100-credit selected PNG revision, then pass its signed quote to execute.
Potential side effectssave_ui_component_defaultsSave supported fill, text and layout values for an exact current revision.
Inferred read-onlyreplace_ui_component_pngSave a locally edited PNG, revalidate behavior metadata and preserve the prior revision.
Inferred read-onlycreate_ui_compositionCreate a free static composition of existing icon/frame revisions; indicators and functional widgets remain independent.
Potential side effectsget_ui_pack_export_commandReturn an authenticated curl command for a whole/selected UI Pack ZIP or component source.
Potential side effectsCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.spriteship]
url = "https://spriteship.com/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"spriteship": {
"type": "http",
"url": "https://spriteship.com/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: spriteship
Remote MCP URL: https://spriteship.com/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"spriteship": {
"url": "https://spriteship.com/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"spriteship": {
"type": "http",
"url": "https://spriteship.com/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "spriteship",
"transport": "streamable-http",
"url": "https://spriteship.com/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.