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トークンの取得
AceDataCloud Platform にサインアップ
APIドキュメントページ に移動
「Acquire」 をクリックしてAPIトークンを取得
トークンをコピーして以下で使用
2. ホスト型サーバーの使用(推奨)
AceDataCloudが管理されたMCPサーバーをホストしているため、ローカルインストールは不要です。
エンドポイント: https://luma.mcp.acedata.cloud/mcp
すべてのリクエストにはBearerトークンが必要です。ステップ1で取得したAPIトークンを使用してください。
Claude.ai
Claude.ai でOAuthを使用して直接接続します(APIトークンは不要です):
Claude.aiの 設定 → 統合 → 追加 に移動
サーバーURLを入力:
https://luma.mcp.acedata.cloud/mcpOAuthログインフローを完了
会話でツールの使用を開始
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トークンで接続します。サーバーは各リクエストの Authorization ヘッダーからトークンを抽出します。
利用可能なツール
動画生成
ツール | 説明 |
| テキストプロンプトから動画を生成 |
| 参照画像を使用して動画を生成 |
| 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、TV、プレゼンテーション |
| 縦長 | TikTok、Instagram Reels |
| 正方形 | Instagram投稿 |
| 伝統的 | クラシックな動画形式 |
| 伝統的な縦長 | 縦長コンテンツ |
| ウルトラワイド | シネマティックコンテンツ |
| トールウルトラワイド | 特殊な縦型ディスプレイ |
設定
環境変数
変数 | 説明 | デフォルト |
| AceDataCloudのAPIトークン | 必須 |
| 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 - タスク照会
貢献
貢献を歓迎します!以下の手順に従ってください:
リポジトリをフォーク
フィーチャーブランチを作成 (
git checkout -b feature/amazing)変更をコミット (
git commit -m 'Add amazing feature')ブランチにプッシュ (
git push origin feature/amazing)プルリクエストを開く
ライセンス
MITライセンス - 詳細は LICENSE を参照してください。
リンク
Made with love by 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