LumaMCP
LumaMCP
一个用于通过 AceDataCloud API 使用 Luma Dream Machine 进行 AI 视频生成的 Model Context Protocol (MCP) 服务器。
直接从 Claude、VS Code 或任何兼容 MCP 的客户端生成 AI 视频。
功能特性
文生视频 - 根据文本提示词创建 AI 生成的视频
图生视频 - 通过起始/结束帧控制为图像添加动画
视频扩展 - 使用额外内容扩展现有视频
多种宽高比 - 支持 16:9、9:16、1:1 等
循环视频 - 创建无缝循环动画
清晰度增强 - 可选的视频质量增强
任务追踪 - 监控生成进度并获取结果
Related MCP server: SoraMCP
工具参考
工具 | 描述 |
| 使用 Luma Dream Machine 根据文本提示词生成 AI 视频。 |
| 使用参考图像作为起始和/或结束帧来生成 AI 视频。 |
| 使用额外内容扩展现有视频。 |
| 使用 URL 扩展现有视频。 |
| 查询视频生成任务的状态和结果。 |
| 同时查询多个视频生成任务。 |
| 列出所有可用于 Luma 视频生成的宽高比。 |
| 列出所有可用的 Luma API 操作及对应的工具。 |
快速开始
1. 获取您的 API Token
在 AceDataCloud 平台 注册
前往 API 文档页面
点击 “Acquire” 获取您的 API token
复制该 token 以供下方使用
2. 使用托管服务器(推荐)
AceDataCloud 托管了一个受管理的 MCP 服务器 —— 无需本地安装。
端点: https://luma.mcp.acedata.cloud/mcp
所有请求都需要 Bearer token。请使用第 1 步中的 API token。
Claude.ai
通过 OAuth 直接在 Claude.ai 上连接 —— 无需 API token:
前往 Claude.ai 设置 → 集成 → 添加更多
输入服务器 URL:
https://luma.mcp.acedata.cloud/mcp完成 OAuth 登录流程
在对话中开始使用这些工具
Claude Desktop
添加到您的配置文件(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Cursor / Windsurf
添加到您的 MCP 配置文件(.cursor/mcp.json 或 .windsurf/mcp.json):
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}VS Code (Copilot)
添加到您的 VS Code MCP 配置文件(.vscode/mcp.json):
{
"servers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}或者为 VS Code 安装 Ace Data Cloud MCP 扩展,该扩展集成了所有 15 个 MCP 服务器,支持一键设置。
JetBrains IDEs
前往 设置 → 工具 → AI Assistant → Model Context Protocol (MCP)
点击 添加 → HTTP
粘贴:
{
"mcpServers": {
"luma": {
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Claude Code
Claude Code 原生支持 MCP 服务器:
claude mcp add luma --transport http https://luma.mcp.acedata.cloud/mcp \
-h "Authorization: Bearer YOUR_API_TOKEN"或者添加到项目的 .mcp.json 中:
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Cline
添加到 Cline 的 MCP 设置(.cline/mcp_settings.json):
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Amazon Q Developer
添加到您的 MCP 配置:
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Roo Code
添加到 Roo Code MCP 设置:
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Continue.dev
添加到 .continue/config.yaml:
mcpServers:
- name: luma
type: streamable-http
url: https://luma.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"Zed
添加到 Zed 的设置(~/.config/zed/settings.json):
{
"language_models": {
"mcp_servers": {
"luma": {
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}cURL 测试
# Health check (no auth required)
curl https://luma.mcp.acedata.cloud/health
# MCP initialize
curl -X POST https://luma.mcp.acedata.cloud/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'3. 或本地运行(替代方案)
如果您更喜欢在自己的机器上运行服务器:
# Install from PyPI
pip install mcp-luma
# or
uvx mcp-luma
# Set your API token
export ACEDATACLOUD_API_TOKEN="your_token_here"
# Run (stdio mode for Claude Desktop / local clients)
mcp-luma
# Run (HTTP mode for remote access)
mcp-luma --transport http --port 8000Claude Desktop (本地)
{
"mcpServers": {
"luma": {
"command": "uvx",
"args": ["mcp-luma"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}Docker (自托管)
docker pull ghcr.io/acedatacloud/mcp-luma:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-luma:latest客户端使用各自的 Bearer token 进行连接 —— 服务器会从每个请求的 Authorization 标头中提取 token。
可用工具
视频生成
工具 | 描述 |
| 根据文本提示词生成视频 |
| 使用参考图像生成视频 |
| 通过 ID 扩展现有视频 |
| 通过 URL 扩展现有视频 |
任务
工具 | 描述 |
| 查询单个任务状态 |
| 同时查询多个任务 |
信息
工具 | 描述 |
| 列出可用的宽高比 |
| 列出可用的 API 操作 |
使用示例
根据提示词生成视频
User: Create a video of waves on a beach
Claude: I'll generate a beach wave video for you.
[Calls luma_generate_video with prompt="Ocean waves gently crashing on sandy beach, sunset"]为图像添加动画
User: Animate this image: https://example.com/image.jpg
Claude: I'll create a video from your image.
[Calls luma_generate_video_from_image with start_image_url and appropriate prompt]扩展视频
User: Continue this video with more action
Claude: I'll extend the video with additional content.
[Calls luma_extend_video with video_id and new prompt]可用宽高比
宽高比 | 描述 | 使用场景 |
| 横屏(默认) | YouTube、电视、演示文稿 |
| 竖屏 | TikTok、Instagram Reels |
| 正方形 | Instagram 帖子 |
| 传统 | 经典视频格式 |
| 传统竖屏 | 肖像内容 |
| 超宽屏 | 电影内容 |
| 高超宽屏 | 特殊竖屏显示器 |
配置
环境变量
变量 | 描述 | 默认值 |
| 来自 AceDataCloud 的 API token | 必需 |
| API 基础 URL |
|
| OAuth 客户端 ID(托管模式) | — |
| 平台基础 URL |
|
| 默认宽高比 |
|
| 请求超时(秒) |
|
| 日志级别 |
|
命令行选项
mcp-luma --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)开发
设置开发环境
# Clone repository
git clone https://github.com/AceDataCloud/LumaMCP.git
cd LumaMCP
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
# Install with dev dependencies
pip install -e ".[dev,test]"运行测试
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integration代码质量
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core tools构建与发布
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*项目结构
LumaMCP/
├── core/ # Core modules
│ ├── __init__.py
│ ├── client.py # HTTP client for Luma API
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ ├── server.py # MCP server initialization
│ ├── types.py # Type definitions
│ └── utils.py # Utility functions
├── tools/ # MCP tool definitions
│ ├── __init__.py
│ ├── video_tools.py # Video generation tools
│ ├── task_tools.py # Task query tools
│ └── info_tools.py # Information tools
├── prompts/ # MCP prompts
│ └── __init__.py # Prompt templates
├── tests/ # Test suite
│ ├── conftest.py
│ ├── test_client.py
│ ├── test_config.py
│ ├── test_integration.py
│ └── test_utils.py
├── deploy/ # Deployment configs
│ └── production/
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── .env.example # Environment template
├── .gitignore
├── CHANGELOG.md
├── Dockerfile # Docker image for HTTP mode
├── docker-compose.yaml # Docker Compose config
├── LICENSE
├── main.py # Entry point
├── pyproject.toml # Project configuration
└── README.mdAPI 参考
此服务器封装了 AceDataCloud Luma API:
Luma Videos API - 视频生成
Luma Tasks API - 任务查询
贡献
欢迎贡献!请:
Fork 本仓库
创建功能分支 (
git checkout -b feature/amazing)提交您的更改 (
git commit -m 'Add amazing feature')推送到分支 (
git push origin feature/amazing)开启 Pull Request
许可证
MIT 许可证 - 详情请参阅 LICENSE。
链接
由 AceDataCloud 用心制作
Available Tools
8 toolsluma_extend_videoAInspect
Extend an existing video with additional content.
This allows you to continue a previously generated video, adding more motion
and content after the original video ends.
Use this when:
- A generated video is too short and you want to add more
- You want to continue the story or motion from a previous video
- You're building a longer video piece by piece
Returns:
Task ID and the extended video information.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Description of what should happen in the extended portion of the video. Describe the continuation of motion and new content. | |
| video_id | Yes | ID of the video to extend. This is the 'video_id' field from a previous generation result. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. | |
| end_image_url | No | Optional URL of an image to use as the final frame of the extended video. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the key behavior ('adding more motion and content after the original video ends') and mentions the return of a Task ID, implying an asynchronous task. However, it does not mention potential side effects, requirements, or whether the original video is modified, which would be valuable for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear intro, a bulleted 'Use this when' list, and a brief 'Returns' section. It is slightly verbose but every sentence earns its place by clarifying purpose and usage. No filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with output schema, the description is fairly complete: it covers purpose, usage scenarios, and return values. It lacks explicit mention of asynchronous behavior or a comparison with luma_extend_video_from_url, but the 'Task ID' and 'previous generation' hints mitigate this. Given the moderate complexity, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the baseline is 3. The description adds no extra parameter details beyond what the schema already defines for prompt, video_id, callback_url, and end_image_url. It does not repeat or expand on schema descriptions, so no additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Extend an existing video with additional content.' It distinguishes from siblings by specifying 'previously generated video' and 'after the original video ends,' which aligns with the tool name and separates it from luma_extend_video_from_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use this when' guidance with three concrete scenarios: video too short, continue story/motion, build longer piece by piece. It does not mention when to use alternatives like luma_extend_video_from_url, but the context of 'previously generated video' implies this is for existing Luma generations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
luma_extend_video_from_urlAInspect
Extend an existing video using its URL.
Similar to luma_extend_video, but uses the video URL instead of video ID.
This is useful when you have the video URL but not the original video ID.
Use this when:
- You have the video URL from a previous generation
- You want to extend a video but don't have the video_id
Returns:
Task ID and the extended video information.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Description of what should happen in the extended portion of the video. | |
| video_url | Yes | URL of the video to extend. Must be a valid video URL from a previous Luma generation. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. | |
| end_image_url | No | Optional URL of an image to use as the final frame of the extended video. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It hints at async behavior by mentioning a returned Task ID and notes the URL must be from a previous generation, but it does not disclose details about polling, error handling, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, starting with a clear statement, followed by a comparative note, usage bullets, and a return note. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and a clear comparison to a sibling, the description covers the core purpose, usage conditions, and return type. It lacks deeper async workflow details, but is sufficient for tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides, such as the meaning of prompt or callback_url.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Extend an existing video using its URL' with a clear verb and resource, and distinctly separates itself from the sibling luma_extend_video by noting URL instead of video ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly compares to luma_extend_video and lists specific 'Use this when' bullets, giving the agent clear criteria for selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
luma_generate_videoAInspect
Generate AI video from a text prompt using Luma Dream Machine.
This is the simplest way to create video - just describe what you want and Luma
will generate a high-quality AI video.
Use this when:
- You want to create a video from a text description
- You don't have reference images
- You want quick video generation
For using reference images (start/end frames), use luma_generate_video_from_image instead.
Returns:
Task ID and generated video information including URLs, dimensions, and thumbnail.
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | If true, generate a looping video where end connects seamlessly to start. Default is false. | |
| prompt | Yes | Description of the video to generate. Be descriptive about the scene, motion, style, and mood. Examples: 'A cat walking through a garden with butterflies', 'Astronauts shuttle from space to volcano', 'Ocean waves crashing on a beach at sunset' | |
| timeout | No | Timeout in seconds for the API to return data. Default is 300. | |
| enhancement | No | If true, enable clarity enhancement for the video. Default is true. | |
| aspect_ratio | No | Video aspect ratio. Options: '16:9' (landscape, default), '9:16' (portrait), '1:1' (square), '4:3', '3:4', '21:9' (ultrawide), '9:21'. | 16:9 |
| callback_url | No | Webhook callback URL for asynchronous notifications. When provided, the API will call this URL when the video is generated. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions return values, but does not disclose async nature, generation time, or any side effects. The timeout parameter hints at long duration, but description implies immediate return. Could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise yet comprehensive: single line for purpose, explanatory paragraph, bullet list for usage, explicit alternative, and return format. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema available, description adequately covers return values. All 6 parameters have schema descriptions. Sibling tools are referenced. Lacks only async workflow details, but still fully functional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already described. The description adds only minor context (like prompt examples) but nothing significant beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Generate AI video from a text prompt' with specific verb and resource. Explicitly distinguishes from sibling tool luma_generate_video_from_image by stating when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use this when:' bullet list and directly tells when not to use it (have reference images), naming the alternative tool. Complete guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
luma_generate_video_from_imageAInspect
Generate AI video using reference images as start and/or end frames.
This allows you to control the video by specifying what the first frame
and/or last frame should look like. Luma will generate smooth motion between them.
Use this when:
- You have a specific image you want to animate
- You want to create a video transition between two images
- You need precise control over the video's visual content
At least one of start_image_url or end_image_url must be provided.
Returns:
Task ID and generated video information including URLs, dimensions, and thumbnail.
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | If true, generate a looping video. Default is false. | |
| prompt | Yes | Description of the video motion and content. Describe what should happen in the video, how objects should move, what transitions to include. | |
| timeout | No | Timeout in seconds for the API to return data. Default is 300. | |
| enhancement | No | If true, enable clarity enhancement. Default is true. | |
| aspect_ratio | No | Video aspect ratio. Usually should match your input image ratio. | 16:9 |
| callback_url | No | Webhook callback URL for asynchronous notifications. When provided, the API will call this URL when the video is generated. | |
| end_image_url | No | URL of the image to use as the last frame of the video. The video will animate towards this image. | |
| start_image_url | No | URL of the image to use as the first frame of the video. The video will animate from this image. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It mentions generating 'smooth motion' and returns 'Task ID and generated video information.' However, it does not clarify if the operation is asynchronous (suggested by callback_url parameter), potential rate limits, or other side effects. For a generation tool, more transparency about the async nature would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is about 100 words, well-structured with bullet points for use cases. It is concise and front-loaded with the main action. However, it could be slightly more concise by avoiding redundancy in the use case list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, generation tool, likely async), the description covers the core functionality but lacks details on the async workflow (returning a task ID and then later polling) and explanation of parameters like callback_url and timeout. The output schema likely covers return values, but the description should mention the async behavior for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the role of start_image_url and end_image_url and the constraint on providing at least one. However, it does not elaborate on parameters like timeout, callback_url, or loop beyond what the schema already defines. It adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate AI video using reference images as start and/or end frames.' It specifies the action (generate), resource (video from images), and scope (using start/end frames). This distinguishes it from sibling tools like luma_generate_video (no images) and luma_extend_video (extend existing video).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: when you have a specific image to animate, want a transition between two images, or need control over visual content. It also states the constraint 'At least one of start_image_url or end_image_url must be provided.' While it doesn't explicitly say when not to use it, the use cases are clear and help the agent choose between this and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
luma_get_taskAInspect
Query the status and result of a video generation task.
Use this to check if a generation is complete and retrieve the resulting
video URLs, thumbnails, and other metadata.
Use this when:
- You want to check if a generation has completed
- You need to retrieve video URLs from a previous generation
- You want to get the full details of a generated video
Task states:
- 'pending': Generation is still in progress
- 'completed': Generation finished successfully
- 'failed': Generation failed (check error message)
Returns:
Task status and generated video information including URLs, dimensions, and thumbnail.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID returned from a generation request. This is the 'task_id' field from any luma_generate_* or luma_extend_* tool response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description covers behavioral traits. Discloses task states and return values. Does not mention rate limits or auth, but for a simple read tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points for usage and task states. Front-loaded purpose. No wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: purpose, when to use, task states, return summary. Output schema exists, so no need for detailed return spec. Adequate for a straightforward polling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one parameter with description. Description adds value by explaining task_id source and summarzing return fields. With 100% coverage, baseline 3, and description enhances it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries status and result of a video generation task. It distinguishes from sibling generation/extend tools by focusing on retrieval. Specific verb+resource with context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use scenarios (check completion, retrieve URLs). Describes task states. Does not explicitly state when not to use, but context implies it's for after generation, not for batch retrieval (use luma_get_tasks_batch).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
luma_get_tasks_batchAInspect
Query multiple video generation tasks at once.
Efficiently check the status of multiple tasks in a single request.
More efficient than calling luma_get_task multiple times.
Use this when:
- You have multiple pending generations to check
- You want to get status of several videos at once
- You're tracking a batch of generations
Returns:
Status and video information for all queried tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_ids | Yes | List of task IDs to query. Maximum recommended batch size is 50 tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, but the description accurately describes the read-only query behavior and mentions status/video information returns. The parameter description adds a max batch size constraint, aiding transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with purpose, uses clear sections, and every sentence adds value with no unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and existing output schema, the description sufficiently covers purpose, usage, and return value. It is complete for a simple batch query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of task_ids including the max batch size. The main description adds no further parameter details beyond the schema, so it meets the baseline but does not exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Query multiple video generation tasks at once' using a specific verb and resource, and distinguishes from the sibling luma_get_task (singular) by emphasizing batch efficiency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use with bullet points and contrasts with luma_get_task by stating it is 'More efficient than calling luma_get_task multiple times', providing clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
luma_list_actionsAInspect
List all available Luma API actions and corresponding tools.
Reference guide for what each action does and which tool to use.
Helpful for understanding the full capabilities of the Luma MCP.
Returns:
Categorized list of all actions and their corresponding tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description adequately discloses it returns a categorized list. No side effects implied. Could mention idempotence but not required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose. No wasted words. Perfectly concise for a list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, an output schema exists, and sibling tools are action tools, description is complete. Could mention 'use before calling other luma_* tools' but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters defined; schema coverage is 100% vacuously. Baseline 4 applies as description adds no param info but none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all available Luma API actions and corresponding tools.' Verb 'list' and resource 'actions' is specific. Distinguishes from sibling action tools like luma_generate_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit context: 'Reference guide for what each action does and which tool to use.' Implies usage for discovery. No exclusions needed as it's a unique list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
luma_list_aspect_ratiosAInspect
List all available aspect ratios for Luma video generation.
Shows all available aspect ratio options with their use cases.
Use this to understand which aspect ratio to choose for your video.
Returns:
Table of all aspect ratios with their descriptions and use cases.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden. It indicates a read-only listing operation and specifies the return format as a table with descriptions and use cases. No side effects are expected, so this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: it states the function, explains the benefit, and describes the return. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and a straightforward operation, the description is fully complete. It covers purpose, usage context, and return expectations. The output schema exists but the description already summarizes the return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the baseline score applies. The description adds no parameter-specific information, which is appropriate since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all available aspect ratios for Luma video generation, and it distinguishes from sibling tools like luma_generate_video or luma_extend_video, which are about generation and extension, not enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to use this tool to understand which aspect ratio to choose, providing clear context. While it doesn't explicitly mention when not to use it or name alternatives, the task is simple and no direct alternative exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.7- Changed
luma_extend_video1 field changed- added
Input schema / properties / callback_urlAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Webhook callback URL for asynchronous notifications.", + "title": "Callback Url" +}
- Changed
luma_extend_video_from_url1 field changed- added
Input schema / properties / callback_urlAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Webhook callback URL for asynchronous notifications.", + "title": "Callback Url" +}
8 tool updates
v0.1.3- Added
luma_extend_video - Added
luma_extend_video_from_url - Added
luma_generate_video - Added
luma_generate_video_from_image - Added
luma_get_task - Added
luma_get_tasks_batch - Added
luma_list_actions - Added
luma_list_aspect_ratios
8 tool updates
v0.1.2- Removed
luma_extend_video - Removed
luma_extend_video_from_url - Removed
luma_generate_video - Removed
luma_generate_video_from_image - Removed
luma_get_task - Removed
luma_get_tasks_batch - Removed
luma_list_actions - Removed
luma_list_aspect_ratios
8 tool updates
v0.1.0- First observed
luma_extend_video - First observed
luma_extend_video_from_url - First observed
luma_generate_video - First observed
luma_generate_video_from_image - First observed
luma_get_task - First observed
luma_get_tasks_batch - First observed
luma_list_actions - First observed
luma_list_aspect_ratios
TDQS
Scored across 8 tools
Most tools are clearly distinct: generation, image-based generation, status checks, and aspect ratio listing are unambiguous. The only potential confusion is luma_extend_video vs luma_extend_video_from_url, which perform the same operation but differ by input identifier; descriptions help but the overlap could still cause misselection.
All tools follow a consistent luma_<verb>_<object> snake_case pattern. Verbs are predictable (list, get, generate, extend) and names clearly map to their actions, making the set easy to navigate.
Eight tools is well-scoped for a video generation MCP server. Each tool earns its place, covering discovery, generation, extension, and status retrieval without unnecessary redundancy or bloat.
The core video generation lifecycle is covered: generate text-to-video, generate from images, extend videos, and query task status individually or in batch. Minor gaps exist, such as no cancellation or listing of all past tasks, but these are not critical to the primary workflow.
Maintenance
Related MCP Connectors
AI image, video & music generation. Flux, Veo 3.1, Suno V5. Free tier included.
AI video, images, music & SFX: Seedance 2.5, Veo 3.1, Kling 3.0, Nano Banana Pro, 20+ models.
- KubflowOAuthai.kubflow
Create AI images, videos and audio with Veo, Kling, Seedance, Nano Banana, Suno and more.
Generate, edit, and explore AI images. Flux, Imagen, LoRA identity swap, upscale, and more.
Related MCP Servers
- AlicenseAqualityAmaintenanceByteDance Seedance AI video generation with text-to-video, image-to-video, multiple models (1.5 Pro/1.0 Pro/Lite), synchronized audio, and flexible resolutions up to 1080p.7355 PyPI20MIT
- AlicenseAqualityAmaintenanceOpenAI Sora AI video generation with text-to-video, image-to-video, character reuse across scenes, and async webhook callbacks.10527 PyPIMIT
- AlicenseAqualityCmaintenanceGoogle Veo AI video generation with text-to-video, image-to-video, multi-image fusion, 1080p upscaling, and multiple quality/speed models.83MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for 4K video generation using Google VEO 3.1 — text-to-video, image-to-video, video extension, and frame interpolation.2MIT