LumaMCP
MCPLuma is an MCP server for AI-powered video generation using Luma Dream Machine via the AceDataCloud API. It works with Claude, VS Code, Cursor, and other MCP-compatible clients.
Core capabilities:
Text-to-Video (
luma_generate_video): Create videos from text prompts with options for aspect ratio, looping, clarity enhancement, and webhook callbacksImage-to-Video (
luma_generate_video_from_image): Animate one or two images as start/end frames with smooth motion generated between themExtend by ID (
luma_extend_video): Continue an existing video using its ID and a new promptExtend by URL (
luma_extend_video_from_url): Same as above but using the video's URLCheck task status (
luma_get_task): Query status and results (video URLs, thumbnails, metadata) for a single taskBatch status check (
luma_get_tasks_batch): Query up to 50 tasks at onceList aspect ratios (
luma_list_aspect_ratios): View all 7 supported ratios (16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21) with use case descriptionsList actions (
luma_list_actions): Browse all available API actions and their corresponding tools
LumaMCP
A Model Context Protocol (MCP) server for AI video generation using Luma Dream Machine through the AceDataCloud API.
Generate AI videos directly from Claude, VS Code, or any MCP-compatible client.
Features
Text to Video - Create AI-generated videos from text prompts
Image to Video - Animate images with start/end frame control
Video Extension - Extend existing videos with additional content
Multiple Aspect Ratios - Support for 16:9, 9:16, 1:1, and more
Loop Videos - Create seamlessly looping animations
Clarity Enhancement - Optional video quality enhancement
Task Tracking - Monitor generation progress and retrieve results
Related MCP server: SoraMCP
Tool Reference
Tool | Description |
| Generate AI video from a text prompt using Luma Dream Machine. |
| Generate AI video using reference images as start and/or end frames. |
| Extend an existing video with additional content. |
| Extend an existing video using its URL. |
| Query the status and result of a video generation task. |
| Query multiple video generation tasks at once. |
| List all available aspect ratios for Luma video generation. |
| List all available Luma API actions and corresponding tools. |
Quick Start
1. Get Your API Token
Sign up at AceDataCloud Platform
Go to the API documentation page
Click "Acquire" to get your API token
Copy the token for use below
2. Use the Hosted Server (Recommended)
AceDataCloud hosts a managed MCP server — no local installation required.
Endpoint: https://luma.mcp.acedata.cloud/mcp
All requests require a Bearer token. Use the API token from Step 1.
Claude.ai
Connect directly on Claude.ai with OAuth — no API token needed:
Go to Claude.ai Settings → Integrations → Add More
Enter the server URL:
https://luma.mcp.acedata.cloud/mcpComplete the OAuth login flow
Start using the tools in your conversation
Claude Desktop
Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Cursor / Windsurf
Add to your MCP config (.cursor/mcp.json or .windsurf/mcp.json):
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}VS Code (Copilot)
Add to your VS Code MCP config (.vscode/mcp.json):
{
"servers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Or install the Ace Data Cloud MCP extension for VS Code, which registers the hosted MCP servers with one-click setup.
JetBrains IDEs
Go to Settings → Tools → AI Assistant → Model Context Protocol (MCP)
Click Add → HTTP
Paste:
{
"mcpServers": {
"luma": {
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Claude Code
Claude Code supports MCP servers natively:
claude mcp add luma --transport http https://luma.mcp.acedata.cloud/mcp \
-h "Authorization: Bearer YOUR_API_TOKEN"Or add to your project's .mcp.json:
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Cline
Add to Cline's MCP settings (.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
Add to your MCP configuration:
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Roo Code
Add to Roo Code MCP settings:
{
"mcpServers": {
"luma": {
"type": "streamable-http",
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Continue.dev
Add to .continue/config.yaml:
mcpServers:
- name: luma
type: streamable-http
url: https://luma.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"Zed
Add to Zed's settings (~/.config/zed/settings.json):
{
"language_models": {
"mcp_servers": {
"luma": {
"url": "https://luma.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}cURL Test
# 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. Or Run Locally (Alternative)
If you prefer to run the server on your own machine:
# 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 (Local)
{
"mcpServers": {
"luma": {
"command": "uvx",
"args": ["mcp-luma"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}Docker (Self-Hosting)
docker pull ghcr.io/acedatacloud/mcp-luma:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-luma:latestClients connect with their own Bearer token — the server extracts the token from each request's Authorization header.
Available Tools
Video Generation
Tool | Description |
| Generate video from a text prompt |
| Generate video using reference images |
| Extend an existing video by ID |
| Extend an existing video by URL |
Tasks
Tool | Description |
| Query a single task status |
| Query multiple tasks at once |
Information
Tool | Description |
| List available aspect ratios |
| List available API actions |
Usage Examples
Generate Video from Prompt
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"]Animate an Image
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]Extend a Video
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]Available Aspect Ratios
Aspect Ratio | Description | Use Case |
| Landscape (default) | YouTube, TV, presentations |
| Portrait | TikTok, Instagram Reels |
| Square | Instagram posts |
| Traditional | Classic video format |
| Portrait traditional | Portrait content |
| Ultrawide | Cinematic content |
| Tall ultrawide | Special vertical displays |
Configuration
Environment Variables
Variable | Description | Default |
| API token from AceDataCloud | Required |
| API base URL |
|
| OAuth client ID (hosted mode) | — |
| Platform base URL |
|
| Default aspect ratio |
|
| Request timeout in seconds |
|
| Logging level |
|
Command Line Options
mcp-luma --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)Development
Setup Development Environment
# 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 Tests
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integrationCode Quality
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core toolsBuild & Publish
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*Project Structure
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 Reference
This server wraps the AceDataCloud Luma API:
Luma Videos API - Video generation
Luma Tasks API - Task queries
Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing)Open a Pull Request
Documentation
License
MIT License - see LICENSE for details.
Links
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. Dates show when Glama detected each change.
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
Each tool has a clearly distinct purpose with no overlap. The tools cover different aspects of video generation workflow: generation (from text or image), extension (by ID or URL), status checking (single or batch), and reference information (actions and aspect ratios). The descriptions explicitly differentiate when to use each tool, preventing confusion.
All tools follow a perfect 'luma_verb_noun' pattern consistently. The naming convention is uniform throughout: luma_extend_video, luma_generate_video, luma_get_task, luma_list_actions, etc. This predictable pattern makes it easy for agents to understand and navigate the toolset.
With 8 tools, this server is well-scoped for video generation workflows. The count is appropriate for covering core operations (generate, extend, check status) plus reference tools, without being overwhelming. Each tool earns its place in supporting a complete video generation lifecycle.
The toolset covers the essential video generation lifecycle well: creation (from text or image), extension, and status monitoring. The inclusion of reference tools for actions and aspect ratios adds helpful context. A minor gap exists in not having tools for video editing or deletion operations, but the core workflow is complete and agents can work effectively with what's provided.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI image, video & music generation. Flux, Veo 3.1, Suno V5. Free tier included.
Generate, edit, and explore AI images. Flux, Imagen, LoRA identity swap, upscale, and more.
Produce complete AI videos from a brief with Maestro
Create videos with prompts, and use Rendley’s video editor to adjust anything you need.
Related MCP Servers
- AlicenseAqualityBmaintenanceByteDance 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.718MIT
- AlicenseAqualityAmaintenanceOpenAI Sora AI video generation with text-to-video, image-to-video, character reuse across scenes, and async webhook callbacks.10MIT
- 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.1MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AceDataCloud/LumaMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server