🚀 Ludo AI MCP 服务器
通过模型上下文协议 (MCP) 使用人工智能生成游戏资源。
✨ 主要特性
| 类别 |
功能 |
| 图像 |
精灵图、图标、截图、背景、UI 资源、纹理、去除背景 |
| 3D 模型 |
将 2D 图像转换为带有 PBR 纹理的 GLB 模型 |
| 动画 |
从静态精灵图生成动画精灵表单(4 - 64 帧),从视频或预设进行动作迁移 |
| 视频 |
从图像生成短视频(3 - 10 秒) |
| 音频 |
音效、背景音乐、角色语音、文本转语音 |
🚀 快速开始
1. 获取 API 密钥
在 ludo.ai 上注册,并从 app.ludo.ai 获取你的 API 密钥。
2. 配置 MCP 客户端
Claude 桌面端
在 macOS 系统中,将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json 文件;在 Windows 系统中,添加到 %APPDATA%\Claude\claude_desktop_config.json 文件:
{
"mcpServers": {
"ludo": {
"url": "https://mcp.ludo.ai/mcp",
"headers": {
"Authorization": "ApiKey YOUR_API_KEY"
}
}
}
}
Cursor
在 Cursor 偏好设置的 MCP 设置中添加以下内容:
{
"mcpServers": {
"ludo": {
"url": "https://mcp.ludo.ai/mcp",
"headers": {
"Authorization": "ApiKey YOUR_API_KEY"
}
}
}
}
💻 使用示例
基础用法
以下是一个使用 createImage 生成图像的示例:
import requests
url = "https://mcp.ludo.ai/mcp"
headers = {
"Authorization": "ApiKey YOUR_API_KEY"
}
data = {
"prompt": "A pixel art knight character with sword and shield, side view, 16-bit style",
"image_type": "sprite",
"art_style": "Pixel Art (16-Bit)"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
高级用法
以下是一个使用 animateSprite 生成动画精灵表单的示例:
import requests
url = "https://mcp.ludo.ai/mcp"
headers = {
"Authorization": "ApiKey YOUR_API_KEY"
}
data = {
"initial_image": "url_of_initial_image",
"motion_prompt": "walking cycle",
"frames": 16
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
📦 可用工具
图像生成 (createImage)
生成精灵图、图标、背景、UI 资源和纹理。
| 参数 |
是否必需 |
描述 |
prompt |
是 |
图像的详细描述 |
image_type |
是 |
sprite、icon、screenshot、art、asset、sprite-vfx、ui_asset、fixed_background、texture、3d、generic |
art_style |
否 |
Pixel Art (16-Bit)、Pixel Art (8-Bit)、Low Poly、Cartoonish、Stylized 3D、Flat Design、Anime/Manga、Voxel Art 等 |
perspective |
否 |
Side-Scroll、Top-Down、Isometric、First-Person、Third-Person、2.5D |
aspect_ratio |
否 |
default、ar_1_1、ar_4_3、ar_16_9、ar_9_16 |
n |
否 |
变体数量(1 - 8,默认值:1) |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:每张图像 0.5 积分
图像编辑 (editImage)
使用文本指令修改现有图像(智能编辑)。
| 参数 |
是否必需 |
描述 |
image |
是 |
要编辑的图像的 URL 或 Base64 编码图像 |
prompt |
是 |
更改描述(例如,“去除背景”、“使其更暗”、“在天空中添加云朵”) |
reference_image |
否 |
用于风格/内容指导的参考图像的 URL 或 Base64 编码图像 |
n |
否 |
变体数量(1 - 4,默认值:1) |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:每张图像 0.5 积分
风格生成 (generateWithStyle)
在保持参考图像视觉风格的同时生成新内容。
| 参数 |
是否必需 |
描述 |
style_image |
是 |
用于风格匹配的参考图像的 URL 或 Base64 编码图像 |
prompt |
是 |
要生成内容的描述(例如,“一个战士角色”、“一个宝箱”) |
image_type |
是 |
sprite、icon、screenshot、art、asset、sprite-vfx、ui_asset、fixed_background、texture、3d、generic |
n |
否 |
变体数量(1 - 4,默认值:1) |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:每张图像 0.5 积分
姿势生成 (generatePose)
为现有精灵图生成新姿势。在使用 animateSprite 之前使用此功能,以获得最佳动画效果 - 起始姿势应与预期动画匹配。
| 参数 |
是否必需 |
描述 |
image |
是 |
精灵图的 URL 或 Base64 编码图像 |
pose |
是 |
目标姿势:Idle (Front)、Idle (Back)、Walk / Run (Left)、Attack Ready、Jumping、Crouching、Flying、Defending / Blocking 或任何自定义描述 |
description |
否 |
指导姿势生成的额外指令 |
n |
否 |
变体数量(1 - 4,默认值:1) |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
返回值:url、pose、motion_prompt
示例工作流程:
- 使用
generatePose 生成 “Walk / Run (Left)” 姿势
- 直接将返回的
motion_prompt 用于 animateSprite 以获得最佳动画效果
费用:每张图像 0.5 积分
去除背景 (removeImageBackground)
从图像中去除背景,返回透明的 PNG 图像。
| 参数 |
是否必需 |
描述 |
image |
是 |
图像的 URL 或 Base64 编码图像 |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
返回值:url(透明 PNG 图像)
费用:每张图像 0.5 积分
3D 模型生成 (create3DModel)
将 2D 图像转换为带有纹理的 3D GLB 模型。
| 参数 |
是否必需 |
描述 |
image |
是 |
图像的 URL 或 Base64 编码图像 |
texture_type |
否 |
pbr(默认值)、simple、none |
texture_size |
否 |
1024、2048(默认值)、4096 |
target_num_faces |
否 |
三角形数量 1,000 - 100,000(默认值:50,000) |
high_detail_shape |
否 |
启用复杂形状(较慢) |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
返回值:model_url(GLB 文件)+ 4 张不同角度的快照图像
费用:每个模型 3 积分
处理时间:60 - 120 秒
精灵动画 (animateSprite)
从静态图像创建动画精灵表单。
| 参数 |
是否必需 |
描述 |
initial_image |
是 |
起始帧的 URL 或 Base64 编码图像 |
motion_prompt |
是 |
动画描述(例如,“行走循环”、“闲置呼吸”、“攻击斩击”) |
image_type |
否 |
sprite、sprite-vfx、ui_asset |
frames |
否 |
4、9、16、25、36(默认值)、49、64 |
frame_size |
否 |
64、128、256(默认值)、0(最大分辨率) |
loop |
否 |
无缝循环(默认值:true) |
model |
否 |
standard(默认值)或 new(更高质量) |
duration |
否 |
标准:1.2 - 3 秒,新:4 秒 |
final_image |
否 |
用于插值的结束帧 |
gif |
否 |
生成动画 GIF(默认值:false) |
individual_frames |
否 |
提取单个帧图像(默认值:false) |
spritesheet_with_background |
否 |
还返回去除背景之前带有完整背景的精灵表单(默认值:false) |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
返回值:spritesheet_url、video_url、gif_url、individual_frame_urls、spritesheet_with_background_url、individual_frame_with_background_urls、num_frames、num_cols、num_rows
费用:每个动画 5 积分
处理时间:30 - 90 秒
动画预设 (listAnimationPresets)
列出可用于动作迁移的动画预设。返回预设动画、视角和方向 — 不暴露视频 URL。
返回值:
animations — 包含 id、name、category、description、duration、preview_url 的预设数组
perspectives — 包含 id、name、description 的数组(所有动画支持所有视角)
directions — ["N", "NE", "E", "SE", "S", "SW", "W", "NW"](所有动画支持所有方向)
费用:免费
动作迁移 (transferMotion)
将视频或动画预设中的动作迁移到静态精灵图上,生成动画精灵表单。
| 参数 |
是否必需 |
描述 |
image |
是 |
精灵图的 URL 或 Base64 编码图像 |
video |
否 |
用作动作源的视频 URL。你可以使用 animateSprite 端点的视频或提供自己的视频。长达 4 秒的视频将产生更好的效果。必须提供 video 或 preset_id + perspective + direction。 |
preset_id |
否 |
用于代替视频 URL 的动画预设 ID。使用 animation-presets 端点列出可用预设。使用预设时,perspective 和 direction 是必需的。 |
direction |
否 |
动画预设的方向。使用预设时,direction 是必需的。值:N、NE、E、SE、S、SW、W、NW |
perspective |
否 |
与动画预设一起使用的视角 ID。使用预设时,perspective 是必需的。 |
frames |
否 |
输出精灵表单中的帧数 |
frame_size |
否 |
每个帧的像素大小 |
loop |
否 |
修剪动画以实现无缝循环 |
crop |
否 |
裁剪帧以适应内容 |
margin_ratio |
否 |
精灵图周围的填充(0.0 - 1.0) |
margin_ratio_mode |
否 |
manual(默认值)、none |
gif |
否 |
生成动画 GIF(默认值:false) |
individual_frames |
否 |
提取单个帧图像(默认值:false) |
spritesheet_with_background |
否 |
还返回去除背景之前带有完整背景的精灵表单(默认值:false) |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
返回值:spritesheet_url、video_url、gif_url、individual_frame_urls、spritesheet_with_background_url、individual_frame_with_background_urls、num_frames、num_cols、num_rows
费用:每次迁移 5 积分
视频生成 (createVideo)
从图像生成短视频。
| 参数 |
是否必需 |
描述 |
image |
是 |
起始帧的 URL 或 Base64 编码图像 |
prompt |
是 |
动作描述(例如,“相机拉近”、“角色向前走”) |
duration |
否 |
3、5(默认值)、8、10 秒 |
model |
否 |
standard(默认值)或 new |
final_image |
否 |
用于插值的结束帧 |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:3 秒 = 5 积分,5 秒 = 8 积分,8 秒 = 12 积分,10 秒 = 15 积分
音效生成 (createSoundEffect)
根据文本描述生成游戏音效。
| 参数 |
是否必需 |
描述 |
description |
是 |
音效描述(例如,“激光枪射击”、“砾石上的脚步声”、“拾取硬币”) |
duration |
否 |
0 - 10 秒(0 = 自动) |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:每个音效 3 积分
音乐生成 (createMusic)
生成背景音乐和主题。
| 参数 |
是否必需 |
描述 |
description |
是 |
音乐描述(例如,“史诗般的管弦乐战斗主题”、“平静的钢琴旋律”、“8 位芯片音乐”) |
lyrics |
否 |
声乐轨道的可选歌词 |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:每首曲目 3 积分
语音生成 (createVoice)
生成独特的角色语音。
| 参数 |
是否必需 |
描述 |
voice_description |
是 |
角色描述(例如,“粗暴的老战士”、“开朗的年轻女孩”) |
text |
是 |
要朗读的文本(最多 200 个字符) |
type |
否 |
human(默认值)或 non-human |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:每个语音 3 积分
文本转语音 (createSpeech)
从音频样本克隆语音。
| 参数 |
是否必需 |
描述 |
text |
是 |
要朗读的文本(最多 1000 个字符) |
sample |
是 |
用于语音克隆的音频样本的 URL 或 Base64 编码音频 |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:每次生成 3 积分
文本转语音预设 (createSpeechPreset)
使用预设语音进行文本转语音。
| 参数 |
是否必需 |
描述 |
text |
是 |
要朗读的文本(最多 1000 个字符) |
voice_preset_id |
是 |
Serious woman、Wise woman、Calm woman、Patient man、Determined man、Deep voice man、Teen boy、Sweet girl 等 |
emotion |
否 |
Default、Happy、Sad、Angry、Fearful、Surprised、Neutral |
language |
否 |
auto、English、Spanish、French、German、Japanese、Korean 等 |
request_id |
否 |
客户端提供的 ID,用于稍后检索结果 |
费用:每次生成 3 积分
检索图像结果 (getImageResults)
检索你最近通过 API 生成的图像。
| 参数 |
是否必需 |
描述 |
request_id |
否 |
过滤到特定请求 |
返回值:包含 url、request_id、created_at 的图像对象数组
费用:免费
检索精灵图结果 (getSpriteResults)
检索你最近通过 API 生成的精灵表单。
| 参数 |
是否必需 |
描述 |
request_id |
否 |
过滤到特定请求 |
返回值:包含 request_id、created_at 的精灵表单对象数组
费用:免费
检索视频结果 (getVideoResults)
检索你最近通过 API 生成的视频。
| 参数 |
是否必需 |
描述 |
request_id |
否 |
过滤到特定请求 |
返回值:包含 url、request_id、created_at 的视频对象数组
费用:免费
检索音频结果 (getAudioResults)
检索你最近通过 API 生成的音频。
| 参数 |
是否必需 |
描述 |
request_id |
否 |
过滤到特定请求 |
返回值:包含 request_id、created_at 的音频对象数组
费用:免费
检索 3D 模型结果 (get3DModelResults)
检索你最近通过 API 生成的 3D 模型。
| 参数 |
是否必需 |
描述 |
request_id |
否 |
过滤到特定请求 |
返回值:包含 request_id、created_at 的 3D 资产对象数组
费用:免费
📚 详细文档
异步使用
你可以使用 request_id 构建即发即忘的工作流程。在任何生成请求中标记一个 request_id,然后轮询相应的结果端点,在输出准备好时获取结果 — 无需保持连接打开。
- 在生成请求中传递
request_id
- 轮询相应的结果端点以检索输出
# 发起一个精灵动画请求
animateSprite with request_id="my-anim-001", initial_image="url", motion_prompt="walking"
# 准备好时检索结果
getSpriteResults with request_id="my-anim-001"
所有生成端点都接受可选的 request_id 参数。结果可保留 7 天,每个结果端点最多返回 100 个最近通过 API 生成的资产。
示例提示
创建游戏资源
Create a pixel art knight character with sword and shield, side view, 16-bit style
Generate an isometric treasure chest icon for a mobile RPG
Create a low-poly stylized tree for a casual mobile game
动画
Animate this character with a smooth walking cycle, 16 frames
Create an idle breathing animation for this character sprite
Animate this fire sprite as a looping VFX effect
音频
Create a satisfying coin pickup sound effect for a platformer
Generate an epic orchestral boss battle theme, intense and dramatic
Create a voice for a wise old wizard saying "The journey begins now"
📄 API 文档
包含所有参数和响应格式的完整 API 文档:api.ludo.ai/api-documentation
📚 支持
📄 许可证
专有许可 - 请参阅 ludo.ai/terms 获取服务条款。