mcpserver.lol
registry/spriteship
Connection check verified live · 28h ago

spriteship

Build a game's 2D art layer with your agent: characters, animations, tilesets, levels, 5 engines.

Tools 44
GitHub stars
Installs / wk
Licence
Transport streamable-http
Last checked 28h ago

Tools & capabilities

44 tools

Read from the running server on 28h ago.

animate_asset pairsdryRunassetId*closeLoopmotionHintvideoModel +3
PAID (image-to-video, cost scales with duration × pair count). Animate ANY asset type — the animation lands on the source asset and its still image is preserved. For grid assets (t…
approve_directional_poses jobId*poseScalesframeIndices*
FREE approval checkpoint. Use only when get_job returns status:"waiting_approval", wizardPhase:"waiting-directional-pose-approval", and directionalPoseReview. Present the eight pre…
cancel_job jobId*
FREE. Abort a running job. Failed/incomplete provider work is refunded automatically. If the job is waiting for directional-pose approval, its successful reusable 360 and pose char…
create_animation_from_pose fpsnewIdposeId*characterId*displayName
FREE, no AI. Promote a pose into a real 1-frame animation (a still/idle) that is scaled to match the character's other animations and exports to every engine. Pass poseId "__idle__…
create_asset nameslugstylebgTypedryRunprompt* +16
PAID (one image call). Creates a NEW asset from a prompt in any of the six types. The default dry run now returns both the exact semantic plan (`plan.preview`, item count/list, cam…
create_character styledryRunprompt*gameTypegridColsgridRows +6
PAID (~150 credits). Generate a NEW character from a text prompt. This is the entry point for building art from nothing — call create_project first if the user has no project. IMAG…
create_project name*stylegameType*description
FREE and SYNCHRONOUS (no jobId — do not poll). Creates the container everything else needs: characters and assets are created INSIDE a project, and the project's gameType is what d…
duplicate_animation newIdanimation*characterId*
FREE, synchronous, no AI. Make an exact copy of the CURRENT saved animation under a new slug, preserving its selected frame order, loop/hold settings, compositing, mounts, and rend…
export_map read-only mapId*engine
Engine-ready map JSON built from the SAVED level data, with custom-field values baked in. For the zip bundle (per-tile PNGs, loader scripts, tileset files) use get_export_command i…
fix_asset_seams dryRunassetId*iterationId*idempotencyKey
PAID (~100 credits, one image-to-image call). Make a texture tile seamlessly. Textures are created as raw grid cells, so CHECK get_asset first: metadata.seamless.seamMetric.pass is…
frame_animation fpsnameassetId*iterationId*frameIndices*
FREE, and NO AI AT ALL — no video model, no credits, nothing to approve. The tiles of a tileset/staged asset ARE the frames: give the tile indices in playback order (repeats allowe…
generate_character_animation dryRunanimations*videoModelanimPromptscharacterId*customAnims +7
PAID, and the cost MULTIPLIES BY THE NUMBER OF ANIMATIONS (each is its own image-to-video call, ~400 credits at defaults). This is real motion — a walk cycle, an attack, an idle bo…
generate_character_turn dryRunseedPoseIdcharacterId*idempotencyKeydiscardPendingResult
PAID (~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. The default dry…
generate_pose name*dryRunimageModelcharacterId*idempotencyKeyposeDescription* +1
PAID (~150 credits). Generate a new pose for a character from a text description. DEFAULTS TO A COST PREVIEW — see the dryRun argument. Returns { poseId } once executed; poses have…
generate_project_vision name*styledryRungameType*referencesdescription +1
PAID but very cheap (one Gemini call) and SYNCHRONOUS — the result comes back in this response, there is no jobId to poll. Turns a rough game idea into { aiVision, aiPromptGuidance…
get_asset read-only assetId*
One asset with its revision iterations and typed animation projection. Accepts the asset id OR its slug. Texture assets carry metadata.seamless.seamMetric (a FREE wrap-edge verdict…
get_character read-only characterId*
The full PhaserCharacter JSON: animations, frameSize, gameType, per-group atlas + spritesheet URLs, poses and mount points. The top-level animationQualityGate is the delivery verdi…
get_character_manifest read-only characterId*
The self-describing export contract (tizo-export.json manifest + its JSON Schema) without downloading the zip. Use this to learn the Phaser integration shape and field meanings bef…
get_credits read-only limitapiKeyIdincludeLedger
Current credit balance, and optionally the recent ledger. Every ledger entry carries apiKeyId/apiKeyName so you can see exactly what THIS key spent. Check the balance before propos…
get_custom_fields read-only kind*entityId*
Typed custom-field definitions for a character or asset, plus the derived builtins ($animation for characters, $autoplay/$loop for animated assets). Per-placement VALUES ride on ge…
get_export_command read-only sizeengine*target*entityId*
Build the authenticated download URL + a ready-to-run curl line for a zip export (character engine bundle, asset bundle, or map bundle). Run the curl in your own shell — zips are m…
get_frames read-only sizeformatpairIdtarget*indicesentityId* +1
Presigned per-frame thumbnails for a character animation or an asset motion pair — never inline base64. Use format:"sheet" to get ONE index-labeled contact sheet, which lets you ju…
get_job read-only jobId*
Poll a background job. Every write tool that returns a jobId is polled here. On status:"error" the response is enriched with creditsRefunded, retryCost, retryMode, and retryRecover…
get_map read-only mapId*
A map row plus its saved level data (layers, placements, per-placement custom-field values). Returns mapData:null when the map has never been saved.
get_project read-only projectId*
One 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…
list_assets read-only nameslugtypelimitprojectId
Assets (Object / tileset / staged / background / terrain / texture) with slug, hasAnimation, updatedAt, tags and favourite. Object was formerly called Static Asset; its API type re…
list_character_poses read-only characterId*
All poses on a character: { id, name, prompt, status pending|done|error, url, direction, pendingSince, errorCode, creditsRefunded }. This is the poll target after generate_pose — p…
list_characters read-only namelimitprojectId
Characters with the re-sync signals: contentVersion (opaque change token — compare for equality, never parse or order), hasActiveJob, apiReady, pose/animation counts, tags, favouri…
list_maps read-only limitprojectId
Level-editor maps with updatedAt and hasMapData. hasMapData:false means the map was never saved and cannot be exported.
list_projects read-only limit
All of the user's projects: { id, name, gameType, style, itemCount, createdAt, updatedAt }. gameType (platformer / topdown / topdown_overhead / isometric / point_and_click) is the…
mirror_animation animation*characterId*
FREE, no AI. Flip every cached frame of ONE animation horizontally and rebuild it — the cheap way to get walk_left from walk_right. NOT idempotent: calling it twice flips the anima…
phase_split phases*animation*characterId*
FREE, no AI. Carve ONE multi-state clip into separate game-phase animations by frame windows — the classic case is a jump becoming crouch/rise/fall/land, with fall looping while ai…
plan_sync read-only entities*
Compare the versions in assets/spriteship/spriteship.lock.json with current SpriteShip state in one call. Returns unchanged/changed/unavailable per character, asset, or map; exact…
rebuild_character animationcharacterId*
FREE, no AI. Re-render one animation from its durable cached frames by passing animation. This is the repair/refresh tool: use it when a sheet looks stale or wrong after a series o…
regen_asset_pair dryRunpairId*assetId*videoModelmotionPromptidempotencyKey +1
PAID (~400 credits at defaults). Re-run video generation for a SINGLE motion pair of an animated asset, leaving its other pairs alone. The new take lands as an additional iteration…
rematte_animation animation*characterId*
FREE, no AI. Try a cleaner background removal on ONE animation's source video — the repair for a quality read showing deliveredIssues containing "matte" (green fringe, flickering h…
reprocess_asset anchorassetId*cellInsetcellOffsetsiterationId*fitItemIndices
FREE and SYNCHRONOUS (no jobId — do not poll), no AI. Rebuild a staged, tileset, or terrain collection's presentation layout: anchor chooses the shared fixed point and cellOffsets…
retry_job jobId*dryRunidempotencyKey
FREE 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. Re-runs the FAILED step of a job whos…
revise_asset dryRunpromptassetId*planTokenimageModeltemplateId +4
PAID. Generate a new revision of an asset from feedback text. The previous revision is kept — revisions are additive, never destructive. Terrain assets also accept templateId to pu…
select_frames frames*pairIdtarget*entityId*animationcompositing
FREE, no AI. Curate which frames an animation keeps, by index into the full capture, in order. Pass an empty array to reset to all frames. Non-destructive: the full capture is reta…
set_asset_collision_body assetId*tileIndexiterationId*collisionBody*
FREE and SYNCHRONOUS (no jobId — do not poll). Author the PHYSICS shape a game should build its collider from for an asset revision: a rect, a circle, or a closed polygon, in NORMA…
set_asset_runtime_intent configassetId*tileIndexruntimeUse*iterationId*
FREE and SYNCHRONOUS (no jobId — do not poll). Declare how an asset revision should be rendered at runtime: plain_image, particle_emitter, deformable_strip, repeat_fill, nine_slice…
suggest_motion_hint pairsdryRunassetId*idempotencyKey
PAID but very cheap (one Gemini call) and SYNCHRONOUS — returns { hint, cost } inline, no jobId. Reads a STAGED asset's prompt plus the stage pairs you intend to animate and writes…
whoami read-only
Verify the API key and report which powers it has. Returns { userId, username, keyId, keyName, scopes }. Call this first when a tool fails with a scope error — the scopes array tel…