NestDaddy

Ludo AI Game Assets

ai.ludo/game-assets · v0.16.6

Generate game assets with AI: sprites, animations, 3D models with rigging, video, music, SFX, voices

Connect Remote server

Terminal
claude mcp add --transport http game-assets https://mcp.ludo.ai/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
~/.cursor/mcp.json
{
  "mcpServers": {
    "game-assets": {
      "url": "https://mcp.ludo.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "game-assets": {
      "type": "http",
      "url": "https://mcp.ludo.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://mcp.ludo.ai/mcp

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools 51 found in our last check

  • validateApiKeyEndpoint

    Validates an API key. Returns 200 if valid, 403 if invalid.

  • createImage

    Generate game-art images from a text prompt alone, selecting an image_type (e.g. sprite) and optionally art_style, perspective, and aspect_ratio. The job result is an array of image results, each with a url; request n (1-8) to control how many variations come back. Because it ge…

  • generateWithStyle

    Generate new images that match the visual style of a reference image: supply a style_image (URL or base64) plus a text prompt describing what to create and an optional image_type (defaults to sprite). The job result is an array of image results, each with a url; request n (1-4)…

  • editImage

    Modify an existing image according to text instructions: supply a source image (URL or base64) and a prompt describing the changes (e.g. "add clouds", "warmer color scheme"), with an optional reference_image for extra style or content guidance. To change only one area, pass a ma…

  • animateSprite

    Animate a static sprite into a spritesheet driven by a motion text prompt (image-to-spritesheet): supply an initial_image (URL or base64) plus a motion_prompt like "walking" or "attack slash", and optionally a final_image to interpolate between a start and end frame. Describe th…

  • animateSpriteKeyframes

    Animate a sprite through up to three fixed keyframes - initial_image, middle_image and final_image (each a URL or base64) - producing a spritesheet that interpolates through the provided frames in order. initial_image is required: the animation starts from it, and middle_image a…

  • generatePose

    Re-pose an existing sprite into a new target pose while preserving the character, taking a source image (URL or base64), a pose name (or "Other" with a free-text description), and an optional n (1-4) for how many variations to produce. Only works with sprite image types (not ico…

  • rotateSprite

    Re-render an existing sprite from a different camera viewpoint while keeping the same character and pose, taking a source image (URL or base64), a required camera_rotation azimuth (one of 0, 45, 90, 135, 180, -135, -90, -45 degrees), an optional camera_elevation (0, 30, or 60 de…

  • transferMotion

    Transfer motion from a reference video, a named animation preset or one of the account's generated animations (an `animation_id` from createAnimation or listMyAnimations) onto a static sprite image, producing an animated spritesheet that mimics the reference movement. Provide th…

  • getDocs

    Browse or read Ludo's own documentation in full - how to choose a sprite animation mode, when to use Generate Before / Generate After, how margins behave, which model suits a job, and each generator's known limitations. To answer a specific question, call searchDocs first: it re…

  • searchDocs

    Search Ludo's own documentation with a plain-language question and get back only the few sections that answer it - the fastest way to learn how a feature is meant to be used before you generate with it (how to pick a sprite animation mode or model, how margins behave, what somet…

  • listAnimationPresets

    List the available animation presets along with their perspectives and the eight supported compass directions (N, NE, E, SE, S, SW, W, NW). Synchronous GET with no request body: it returns an animations array (each with id, name, category, description, duration, and preview_url)…

  • editSpritesheet

    Edit a previously generated spritesheet: re-prompt its underlying animation (edit_mode "prompt"), extend the frame beyond its borders ("outpaint"), repair a bad loop ("fix_loop"), or re-render it with finer detail ("improve": the extra pass hydra-plus runs when it generates, on…

  • rotateSpritesheet

    Re-render a previously generated sprite animation from a new view: the same motion and timing, seen from a different angle (e.g. a front-facing walk cycle turned into the same walk seen from the back). Pass the `spritesheet_url` you received from `animateSprite`, `animateSpriteK…

  • adjustSpritesheet

    Adjust Sprite Sheet: re-export a previously generated sprite animation with different sheet settings - frame count, frame size, loop trimming or whitespace cropping - without generating the animation again. Free (no credits). Pass the `spritesheet_url` you received from `animate…

  • createSpriteAudio

    Generate a sound effect for a previously generated spritesheet animation. Pass, as `spritesheet_video_url`, the `video_url` you received from `animateSprite`, `animateSpriteKeyframes`, `transferMotion`, or `editSpritesheet` - it must belong to a spritesheet you generated within…

  • listDirectionalSpriteStyles

    List the styles Directional Sprites can render a 3D model in, with the perspectives (camera heights) and the eight directions they render from. Each style has an id (pass it as style_id), a label, a description, a family, whether it is pixel art, a thumbnail_url of the style at…

  • previewDirectionalSprites

    Preview Directional Sprites: a few frames of a 3D model in a style, from each direction asked for, to check a style before rendering. Takes the same model, animation, camera and style fields as createDirectionalSprites. The response (synchronous, not a job) has one preview per d…

  • createDirectionalSprites

    Directional Sprites: render a 3D model into one spritesheet per direction, in a style. Pass the GLB in `model` (URL or base64; rigged, to animate it - see create3DModel with rig, or rigModel) and at most one animation: `animation_url` (the `glb_url` of an animation from animate3…

  • createDirectionalStills

    Directional Sprites stills: render a 3D model as it is (no animation) into one large image per direction, in a style, on a transparent background. Pass the GLB in `model` (URL or base64), the `directions` (up to 8, rendered together so they line up) and the style (listDirectiona…

  • fitDirectionalAccessory

    Fit an accessory to a rigged 3D model for Directional Sprites: an item GLB (a sword, a gun, a staff, a bow, a shield, a helmet, a hat, a backpack...) held by one bone of the model - a hand, the head, the back or the hips. Nothing is saved. The item is first placed automatically…

  • attachDirectionalAccessories

    Put accessories on a rigged 3D model for Directional Sprites: up to 8 items, each at the `placement` fitDirectionalAccessory returned (or, without one, at the automatic fit plus the same size/move/turn adjustments). Returns `model_url`, one GLB of the model holding them all (kep…

  • createVideo

    Generate a short video clip from a source image and a motion text prompt (image-to-video); a source `image` is required - to make a video from text alone, first createImage and animate that, or use createVideoFromReferences with reference images. Griffin (default, 768p) generate…

  • createVideoFromReferences

    Generate a video from 1-5 reference images and a text prompt (references-to-video). Unlike createVideo, which animates a single source image, this composes a new scene that borrows characters, objects, and style from the reference images. Each image can be a URL or base64. Griff…

  • editVideo

    Edit a previously generated video with a text prompt and optional reference images (video-to-video); runs on griffin-hd (768p, with soundtrack) and the output keeps the source video's duration unless you pass one. Pass the video `url` you received from `createVideo`, `createVide…

  • upscaleVideo

    Upscale a previously generated video to twice its resolution (2x). Pass the video `url` you received from `createVideo`, `createVideoFromReferences`, or `editVideo` - it must be a video you generated within the last 7 days; arbitrary external videos are not accepted. Both dimens…

  • removeBackground

    Remove the background from a single image, returning the subject isolated on a transparent background. Supply the source image (URL or base64); optionally set crop to trim the result to the content, and creative_edit (default true) for higher-quality output that may not match th…

  • upscaleImage

    Upscale an image: the same picture at a higher resolution, up to 4x, with the result capped at 2048px on its longest side. The source image (URL or base64) must be below 2048px on its longest side; a larger one is rejected with HTTP 400. The job result is a single image result w…

  • createNormalMap

    Make the normal map of an image, for 2.5D lighting: a lossless WebP of the same size and alpha as the image (transparent pixels are flat), in the OpenGL convention (red = right, green = up, blue = towards the viewer; Unity and Godot read it as is, Unreal expects green flipped).…

  • convertToPixelArt

    Convert an image to pixel art: any art, broken AI pixel art or pixel art comes back as pixel art at about the input's own size. Free (no credits) and synchronous: the call answers with the result directly, with no job to poll. `pixel_size` is the size of one pixel-art pixel, in…

  • create3DModel

    Convert a source image into a textured 3D model (image-to-3D). The job result is a downloadable GLB model_url plus an array of snapshot image URLs rendered from different angles (handy for previews). model picks the generator: prop (default) is low-cost and suits everyday props…

  • create3DModelImage

    Make a character image ready to turn into a 3D model, the first step of Directional Sprites on the web. Pass a prompt describing the character, your own image (URL or base64), or both. With an image, it is redrawn as a 3D render, and the prompt becomes the changes to make (e.g.…

  • rigModel

    Rig a 3D model: generate a skeleton and skin weights for an existing GLB so it can be animated. Accepts a URL or base64-encoded GLB in `model` (here `model` is the 3D asset file, not an AI model name - rigging has no model choice). The job result is a downloadable `model_url` fo…

  • animate3DModel

    Generate text-driven skeletal animations for an already-rigged 3D model. Pass the rigged GLB in `model` (URL or base64; the 3D asset file, not an AI model name) and a motion `prompt` (e.g. "walking", "swinging its axe"). The model must already have a skeleton - rig it first with…

  • animate3DModelPreset

    Apply a curated animation preset, or one of the account's generated animations, to an already-rigged 3D model (retargeting). Pass the rigged GLB in `model` (URL or base64; the 3D asset file, not an AI model name) and exactly one of a `preset_id` from the animation presets list (…

  • createAnimation

    Generate a reusable animation from a text prompt (text-to-motion): the skeletal motion of a humanoid character, such as "overhead sword slash" or "zombie walk", made for no model in particular. It is saved to the account and can then be played by any rigged humanoid 3D model or…

  • listMyAnimations

    List the account's own animations: the ones generated with createAnimation or in the web app's My Animations, newest first. (Ludo's ready-made ones are listAnimationPresets.) Synchronous GET with no request body: it returns an `animations` array, each with the `id` to pass as `a…

  • createSoundEffect

    Produce a short sound effect (SFX) from a text description, such as "laser gun firing" or "footsteps on gravel". The job result is a single audio result containing the URL of an MP3 or WAV file (the URL's extension, .mp3 or .wav, says which). The description field is required, d…

  • createAmbiance

    Produce a looping background ambiance soundscape from a text description, such as "windy forest at dusk" or "busy tavern interior". The job result is a single audio result containing the URL of an MP3 or WAV file (the URL's extension, .mp3 or .wav, says which). The description f…

  • createMusic

    Produce a piece of music from a text description, such as "epic orchestral battle theme" or "calm piano melody", with optional lyrics. The job result is a single audio result containing the URL of an MP3 or WAV file (the URL's extension, .mp3 or .wav, says which). The descriptio…

  • createAudioTransform

    Remix an existing audio sample (a sound effect, ambiance, or music clip) into a variation guided by a text prompt, for example turning a track into an 80s synthwave or metal version. Both the sample and the prompt are required; the sample is uploaded as a URL or base64 audio and…

  • createVoice

    Design a new voice from a character description (such as "deep-voiced warrior" or "cheerful young girl"), a character image, or both, and have it speak a short line of text, returning a sample of that newly created voice. text is required, plus voice_description or image (an ima…

  • createSpeech

    Convert text to speech by cloning the voice from an audio sample you provide (voice-cloning text-to-speech). Both text and sample are required; the text is limited to 250 characters and the sample is supplied as a URL or base64 audio that must be at most 15MB, with violations re…

  • createSpeechPreset

    Convert text to speech using a named built-in preset voice, with optional language and either an emotion or a delivery note, depending on the voice. Both text and voice_preset_id are required and the text is limited to 250 characters. The voices named by a first name (e.g. "Rach…

  • listGenerations

    List your generation history across the API and the web app - filter by type, source (api|web|all), text search, and date range. Returns {items, page, page_size, has_more}; keep paging while has_more is true. API-originated results expire after 7 days - download anything you wan…

  • listApiJobs

    List the generation jobs you started through the API or MCP, most recent first. Web-app jobs are not included. This is a free read-only lookup (no credits, no generation). Filter with a comma-separated status list; limit defaults to 50 and is capped at 100.

  • getApiJob

    Poll the status of a generation job started by any tool. Every generation tool returns `{id, status}`; call getApiJob with that id until status is `succeeded` (then read `result`, shaped exactly like the tool's documented output) or `failed` (read `error`). Poll every few second…

  • cancelApiJob

    Cancel a queued job you started through the API or MCP; the credits held for it are refunded. Jobs that are already running cannot be canceled (409). Returns the canceled job. This is free (no credits).

  • getPricing

    What Ludo's paid service costs and includes, for an agent advising a user: every plan with its monthly and annual price, credits, seats, queue concurrency and what it includes or lacks; credit top-ups and their price brackets; what each API call costs; and the rules to know befo…

  • getAccount

    Show your account's credit balance, plan and auto top-up settings. `credits.available` is what generations can spend right now (plan_credits + extra - used); `resets_at` is when the plan's monthly credits refill (unix seconds). When `team_pool` is true the balance is your team's…

  • submitApiFeedback

    Report a problem with the Ludo API itself to the Ludo team. Use it ONLY for API bugs (an error, a failed or stuck job, a crash, a response that does not match this documentation) and API limitations (a parameter, operation or format you needed that the API does not support, and…

Headers

NameDescription
Authorization
Required, secret
API key from Ludo AI (format: 'ApiKey your-api-key'). Get your key at https://app.ludo.ai

Details

Endpointhttps://mcp.ludo.ai/mcp (Streamable HTTP)
First published5 Nov 2026
Last updated5 Nov 2026
Registry nameai.ludo/game-assets

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.