Ludo AI Game Assets
UnexploredGenerate game assets with AI: sprites, animations, 3D models with rigging, video, music, SFX, voices
Install
mcp_config.json
{
"mcpServers": {
"ai-ludo-game-assets": {
"url": "https://mcp.ludo.ai/mcp",
"type": "streamable-http"
}
}
}Documentation
Ludo AI MCP Server
Generate game assets using AI through the Model Context Protocol (MCP).
Features
| Category | Capabilities |
|---|---|
| Images | Sprites, icons, screenshots, backgrounds, UI assets, textures, background removal |
| 3D Models | Convert 2D images to GLB models with PBR textures, auto-rig models (skeleton + skin weights, engine-ready joint naming), text-driven skeletal animation, retarget curated animation presets onto rigged models |
| Animation | Animated spritesheets from static sprites (4-64 frames), keyframe animation through up to three fixed frames, motion transfer from video or presets, spritesheet editing (re-prompt, outpaint, loop fixing), sound effects for a spritesheet |
| Video | Generate short videos from images or reference images (5-15 seconds, with a soundtrack), prompt-driven video editing, 2x upscaling |
| Audio | Sound effects, background music, character voices, TTS |
| Jobs & History | Async job queue: submit, poll or long-poll, list and cancel jobs (queued jobs refund their credits), plus paginated generation history across the API and the web app |
| Account | Credit balance, plan and auto top-up settings, to check before an expensive generation |
| Documentation | Search or read Ludo's own feature guidance before generating: animation modes, model choice, margins, known limitations |
| Feedback | Report a limitation, bug or missing capability straight to the Ludo team |
Quick Start
1. Get an API Key
Sign up at ludo.ai and get your API key from app.ludo.ai.
2. Configure Your MCP Client
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"ludo": {
"url": "https://mcp.ludo.ai/mcp",
"headers": {
"Authorization": "ApiKey YOUR_API_KEY"
}
}
}
}
Cursor
Add to your MCP settings in Cursor preferences:
{
"mcpServers": {
"ludo": {
"url": "https://mcp.ludo.ai/mcp",
"headers": {
"Authorization": "ApiKey YOUR_API_KEY"
}
}
}
}
Available Tools
Generation tools run on a job queue and return a job id immediately; the Returns field of each tool below describes the result you get back from getApiJob once the job succeeds. See How Generation Calls Work.
Models
Sprite animation, motion transfer, spritesheet editing and video generation take an optional model. Pick from the current models; the defaults are what the Ludo web app uses.
| Model | Used for | Notes |
|---|---|---|
hydra | Sprite animation, keyframes, motion transfer and spritesheet editing (the default for all four) | Most capable all-around model; its spritesheets come with a generated sound effect (audio_url, an mp3). 3 credits/s, shortest animation 3s (9 credits minimum) |
forge | Sprite animation, keyframes, motion transfer, spritesheet editing | Cost-effective, for basic animations and simple sprites; on motion transfer it works best with presets and matching poses. Multiple tries might be needed. 1.5 credits/s on animation, 2 credits/s on transfer and editing, 4-credit minimum charge |
forge-pixel | Same actions as forge | Same pricing as forge; for low-res pixel-art sprites |
griffin | Video generation (default), video from references (default) | Fast cinematic 480p video with a soundtrack. 1.5 credits/s (2.5 credits/s from references), 5s minimum |
griffin-hd | Video editing (default), video generation, video from references | Same as Griffin in 720p. 2 credits/s (4 credits/s from references), 5s minimum. Its output is too large for upscaleVideo |
Legacy models - blitz, eagle, eagle-audio, tango (and the alias standard) - are still accepted so existing integrations keep working, but they are scheduled for removal. Do not use them for new work. The server marks them LEGACY in every tool description and lists them last.
Search Documentation (searchDocs)
Ask Ludo's own documentation a plain-language question and get back only the few sections that answer it: how to choose a sprite animation mode, when to use Generate Before / Generate After, how margins behave, which model suits a job, what something costs, and each generator's known limitations. This is the fastest way to learn how a feature is meant to be used before generating with it, so start here rather than reading whole documents.
| Parameter | Required | Description |
|---|---|---|
query | Yes | What you want to know, in plain language (up to 500 characters), e.g. "how do I keep a sprite animation's colors consistent" |
n | No | Maximum number of sections to return (1-10, default: 3) |
Returns:
results: Array of{ doc, label, section, relevance, content }, best first.contentis the section's full markdown;docandsectioncan be passed straight togetDocsto read it again.relevanceis a 0-1 match score, and only results scoring 0.6 or higher are returnedmessage: Present only whenresultsis empty, which means the documentation does not cover the question. Rephrase it, or browse withgetDocs
If the search backend is briefly unavailable the tool returns 503; fall back to getDocs rather than retrying in a loop.
Credits: Free
Feature Documentation (getDocs)
Browse or read Ludo's documentation in full. This is the same documentation the Ludo web app shows its users, so it occasionally describes buttons rather than parameters; the substance applies here just the same. To answer a specific question, use searchDocs first.
Call it with no parameters to get a table of contents, then again with doc (and ideally sections) to read only what you need. The whole corpus is roughly 280,000 characters, so fetching a full document without naming sections can return tens of thousands of characters.
| Parameter | Required | Description |
|---|---|---|
doc | No | Document to read. Omit for the table of contents. One of assistant, game-ideator, image-generator, project, account, faq, 3d-generator, video-generator, sprite-generator, audio-generator, api-mcp, game-asset-generation |
sections | No | Section titles to return from doc, matched ignoring case, spacing and punctuation. Only valid together with doc |
Returns:
docs: Array of{ id, label, sections }, where each section is{ title, content }.contentis markdown, and is omitted from the table of contentsunmatched_sections/available_sections: Present only when some, but not all, requested titles matched: the titles that matched nothing, and every valid title ofdoc
An unknown doc, or a request where no section title matches, returns 400 listing the valid values, so a wrong guess costs one extra call rather than a dead end.
The server also announces both documentation tools to MCP clients via its instructions field during the initialize handshake, so models connected through clients that surface server instructions are told to search the documentation before generating.
Credits: Free
Image Generation (createImage)
Generate sprites, icons, backgrounds, UI assets, and textures from a text prompt alone (no source image needed). To match the art style of an existing image use generateWithStyle, to modify an existing image use editImage, and to cut out a subject use removeBackground.
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Detailed description of the image |
image_type | Yes | sprite, icon, screenshot, art, asset, sprite-vfx, ui_asset, fixed_background, side_scrolling_background, texture, horizontal_tile, tile, item-icon, portrait, card-art, splash, 3d, generic |
art_style | No | 8-Bit, 16-Bit, 32-Bit, Hi-Bit, Low Poly, Stylized 3D, Voxel Art, Flat Design, Anime/Manga, Western Cartoon, Hand-Painted, Photorealistic 3D, Cel-Shaded, etc. |
perspective | No | Side-Scroll, Top-Down, Isometric, First-Person, Third-Person, 2.5D |
aspect_ratio | No | default, ar_1_1, ar_4_3, ar_16_9, ar_9_16 |
n | No | Number of variations (1-8, default: 1) |
request_id | No | Client-provided ID to retrieve results later |
Credits: 0.5 per image
Edit Image (editImage)
Modify an existing image using text instructions (smart editing).
| Parameter | Required | Description |
|---|---|---|
image | Yes | URL or base64-encoded image to edit |
prompt | Yes | Description of changes (e.g., "remove the background", "make it darker", "add clouds to the sky") |
reference_image | No | URL or base64 reference image for style/content guidance |
n | No | Number of variations (1-4, default: 1) |
request_id | No | Client-provided ID to retrieve results later |
Credits: 0.5 per image
Generate with Style (generateWithStyle)
Generate new content while maintaining the visual style of a reference image.
| Parameter | Required | Description |
|---|---|---|
style_image | Yes | URL or base64-encoded reference image for style matching |
prompt | Yes | Description of what to generate (e.g., "a warrior character", "a treasure chest") |
image_type | Yes | sprite, icon, screenshot, art, asset, sprite-vfx, ui_asset, fixed_background, texture, 3d, generic |
n | No | Number of variations (1-4, default: 1) |
request_id | No | Client-provided ID to retrieve results later |
Credits: 0.5 per image
Generate Pose (generatePose)
Generate a new pose for an existing sprite. Use this BEFORE animateSprite to get the best animation results - the starting pose should match your intended animation.
| Parameter | Required | Description |
|---|---|---|
image | Yes | URL or base64-encoded sprite image |
pose | Yes | Target pose: Idle (Front), Idle (Back), Idle (Left Facing), Idle (Right Facing), Walk (Left), Walk (Right), Run (Left), Run (Right), Crouching, Crawling, Sitting, Attack Ready, Jump Preparation, Defending / Blocking, Flying, Sleeping, or Other (with a free-text description) |
description | No | Additional instructions to guide pose generation |
n | No | Number of variations (1-4, default: 1) |
request_id | No | Client-provided ID to retrieve results later |
Returns: url, pose, motion_prompt
Example workflow:
- Generate a "Walk (Left)" pose with
generatePose - Use the returned
motion_promptdirectly inanimateSpritefor optimal animation results
Credits: 0.5 per image
Rotate Sprite (rotateSprite)
Rotate the camera view of an existing sprite to a new angle, keeping the same character and pose. Useful for generating turnaround / directional views of a sprite.
| Parameter | Required | Description |
|---|---|---|
image | Yes | URL or base64-encoded sprite image |
camera_rotation | Yes | Camera azimuth in degrees: 0 (front), 45 (front-right), 90 (right side), 135 (back-right), 180 (back), -135 (back-left), -90 (left side), -45 (front-left) |
camera_elevation | No | Camera tilt in degrees: 0 (eye-level), 30 (elevated), 60 (high-angle). Omit to keep the sprite's current elevation. |
n | No | Number of variations (1-4, default: 1) |
request_id | No | Client-provided ID to retrieve results later |
Returns: url, camera_rotation, camera_elevation
Credits: 0.5 per image
Remove Background (removeBackground)
Remove the background from a single image, returning the subject isolated on a transparent background. For broader edits (not just cutting out the subject), use editImage instead.
| Parameter | Required | Description |
|---|---|---|
image | Yes | URL or base64-encoded image |
crop | No | Trim the result to the subject's bounding box (default: false) |
creative_edit | No | Higher-quality output that may not match the input pixel-for-pixel (default: true). Set false when the subject must stay pixel-identical, e.g. an existing sprite you will animate |
request_id | No | Client-provided ID to retrieve results later |
Returns: a single result with url (transparent PNG)
Credits: 0.5 per image
3D Model Generation (create3DModel)
Convert a 2D image to a 3D GLB model with textures.
| Parameter | Required | Description |
|---|---|---|
image | Yes | URL or base64-encoded image |
texture_type | No | pbr (default), simple, none |
texture_size | No | 1024, 2048 (default) |
target_num_faces | No | Triangle count 1,000-200,000 (default: 50,000) |
request_id | No | Client-provided ID to retrieve results later |
Returns: model_url (GLB file) + 4 snapshot images from different angles
Credits: 3 per model Processing time: 60-120 seconds
Rig 3D Model (rigModel)
Generate a skeleton and skin weights for an existing 3D model so it can be animated. Non-destructive to the geometry: it returns a new rigged GLB. Rig a model before using animate3DModel.
| Parameter | Required | Description |
|---|---|---|
model | Yes | URL or base64-encoded GLB to rig |
rig_type | No | Skeleton style prior: general (default, works for any asset), humanoid (anime-style characters, densest skeleton), game (classic game-character rig), or the pinned humanoid templates with named joints (required for animate3DModelPreset): humanoid_template (22 joints) and humanoid_template_hands (52 joints, five fingers per hand). The templates only suit two-armed, two-legged characters |
joint_naming | No | Bone naming convention for the identified joints: smpl (default), mixamo (Unity's humanoid auto-mapper), humanik (unprefixed names for Maya/MotionBuilder/FBX), unreal (UE mannequin), godot (SkeletonProfileHumanoid), rigify (Blender) or vroid (VRM). Purely a relabel, the skeleton is identical |
request_id | No | Optional client-provided identifier for this request |
Returns: model_url (rigged GLB, skeleton + skin weights baked in), rigged (true)
Credits: 1 per rig Processing time: 60-120 seconds
Animate 3D Model (animate3DModel)
Generate text-driven skeletal animations for an already-rigged 3D model (rig it first with rigModel). Animation quality is hit-or-miss, so several candidates are returned for you to choose from. Each candidate is a standalone animation-only GLB (skeleton + one clip, no mesh) plus an mp4 preview; pick the best one and fuse it onto your model in a game engine or three.js.
| Parameter | Required | Description |
|---|---|---|
model | Yes | URL or base64-encoded rigged GLB to animate (rig it first with rigModel) |
prompt | Yes | Desired motion (e.g., "walking", "swinging an axe", "waving hello") |
mode | No | Animation representation: rot_trans (default, per-bone rotation + translation, most faithful) or rot_only (rotation + root translation only, for retargeting to other skeletons / engine pipelines that ignore bone translation) |
num_variants | No | Number of candidate animations to generate (1-8, default: 4) |
loop | No | Return to the initial pose: each clip plays forward then mirrors back to the rest pose for a seamless loop (default: true). Best for one-way motions (crouch, punch, wave); reads oddly for cyclic gaits like walking |
augment_prompt | No | Rewrite the prompt into a detailed motion caption behind the scenes (default: true) |
request_id | No | Optional client-provided identifier for this request |
Returns: animations, an array of candidates, each with clip_name, glb_url (animation-only GLB), preview_url (mp4), mode, seed, motion, fit_rmse
Credits: 0.2 per generation (one charge returns all variants; introductory price, 80% off the 1-credit list price) Processing time: 60-120 seconds
Animate 3D Model from Preset (animate3DModelPreset)
Apply a curated animation preset to an already-rigged 3D model (retargeting). Unlike animate3DModel, the motion comes from a professionally curated clip library instead of a text prompt, so exactly one clip is returned. The model must have a humanoid-template rig: rig it with rig_type humanoid_template or humanoid_template_hands first. Only presets that expose a clip_url in listAnimationPresets can be applied.
| Parameter | Required | Description |
|---|---|---|
model | Yes | URL or base64-encoded rigged GLB (humanoid-template rig) |
preset_id | Yes | id of a preset from listAnimationPresets; only presets with a clip_url qualify |
crop_loop | No | Trim the animation to the span that loops seamlessly. Omit for Auto: cyclic motions (walk, idle) loop, one-shots (jump, cast) keep their full arc |
in_place | No | Remove the animation's net travel so the character moves on the spot, the treadmill clip a game engine expects, with the engine driving locomotion. Omit to follow crop_loop |
request_id | No | Optional client-provided identifier for this request |
Returns: animations, the same envelope as animate3DModel, containing one clip with clip_name, preset_id, glb_url (animation-only GLB, joints named as on your model), preview_url (mp4), seed, motion, fit_rmse
Credits: 0.2 per retarget Processing time: 30-90 seconds
Sprite Animation (animateSprite)
Create animated spritesheets from static images. Use this when you can describe the motion in text; use transferMotion to copy an exact motion from a reference video or a named preset, and generatePose first when the source image is not yet in the pose the animation should start from.
| Parameter | Required | Description |
|---|---|---|
initial_image | Yes | URL or base64 of the starting frame |
motion_prompt | Yes | Animation description (e.g., "walking", "idle breathing", "attack slash", "casting a fireball with both hands"). See Writing the motion prompt |
image_type | No | sprite (default), sprite-vfx, ui_asset |
frames | No | 4, 9, 16, 25, 36 (default), 49, 64 |
frame_size | No | 0 (default, max resolution), 32, 64, 96, 128, 192, 256, 384, -1 (AI 1.5× upscale), -9 (match input frame) |
loop | No | Seamless loop (default: true) |
crop | No | Crop frames to fit content (default: true); smaller spritesheets but inconsistent frame sizes across animations |
margin_ratio_horizontal | No | Horizontal padding around the sprite as a ratio 0.0–1.0 (only used when margin_ratio_mode is manual). Useful for animations that extend sideways, e.g. sword slashes or punches |
margin_ratio_vertical | No | Vertical padding around the sprite as a ratio 0.0–1.0 (only used when margin_ratio_mode is manual). Useful for animations that extend up or down, e.g. jumps |
margin_ratio | No | Deprecated - uniform padding on both axes, equivalent to setting both per-axis params to the same value. Cannot be combined with the per-axis params (fails with 400) |
margin_ratio_mode | No | auto (default), manual, none |
augment_prompt | No | Augment the motion prompt behind the scenes (default: true) |
model | No | hydra (default; most capable all-around, generates audio), forge (onl |
Sourced from the repository README.
More in AI & Agents
- PonytailMakes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.109,599
- AgentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity39,079
- Frontend SlidesCreate beautiful slides on the web using a coding agent's frontend skills28,060
- Agent Skills Search ServerSearch and discover Agent Skills from the skills.sh registry. Powered by HAPI MCP server.25,980
- Agency Agents Zh🎭 267 个即插即用的 AI 专家角色 — 支持 Hermes Agent/Claude Code/Cursor/Copilot 等 18 种工具,覆盖工程/设计/营销/金融等 20 个部门。含 52 个中国市场原创智能体(小红书/抖音/微信/飞书/钉钉等)。搭配编排器 agency-orchestrator,一句话即可让多位专家按 DAG 自动协作。19,868
- Watermarks RemoverStrip multi-vendor AI provenance marks: Unicode text hygiene, statistical rewrite hooks, and C2PA/metadata from PNG/JPEG/SVG/PDF/DOCX/HTML/MD17,822