Skip to main content
Glama

LumaMCP

PyPI version PyPI downloads Python 3.10+ License: MIT MCP

Un servidor del Protocolo de Contexto de Modelo (MCP) para la generación de vídeo con IA utilizando Luma Dream Machine a través de la API de AceDataCloud.

Genera vídeos con IA directamente desde Claude, VS Code o cualquier cliente compatible con MCP.

Características

  • Texto a vídeo - Crea vídeos generados por IA a partir de prompts de texto

  • Imagen a vídeo - Anima imágenes con control de fotogramas inicial/final

  • Extensión de vídeo - Extiende vídeos existentes con contenido adicional

  • Múltiples relaciones de aspecto - Soporte para 16:9, 9:16, 1:1 y más

  • Vídeos en bucle - Crea animaciones en bucle sin interrupciones

  • Mejora de claridad - Mejora opcional de la calidad del vídeo

  • Seguimiento de tareas - Monitorea el progreso de la generación y recupera resultados

Related MCP server: SoraMCP

Referencia de herramientas

Herramienta

Descripción

luma_generate_video

Genera vídeo con IA a partir de un prompt de texto usando Luma Dream Machine.

luma_generate_video_from_image

Genera vídeo con IA usando imágenes de referencia como fotogramas iniciales y/o finales.

luma_extend_video

Extiende un vídeo existente con contenido adicional.

luma_extend_video_from_url

Extiende un vídeo existente usando su URL.

luma_get_task

Consulta el estado y el resultado de una tarea de generación de vídeo.

luma_get_tasks_batch

Consulta múltiples tareas de generación de vídeo a la vez.

luma_list_aspect_ratios

Lista todas las relaciones de aspecto disponibles para la generación de vídeo de Luma.

luma_list_actions

Lista todas las acciones de la API de Luma disponibles y sus herramientas correspondientes.

Inicio rápido

1. Obtén tu token de API

  1. Regístrate en la Plataforma AceDataCloud

  2. Ve a la página de documentación de la API

  3. Haz clic en "Acquire" para obtener tu token de API

  4. Copia el token para usarlo a continuación

2. Usa el servidor alojado (Recomendado)

AceDataCloud aloja un servidor MCP gestionado — no requiere instalación local.

Endpoint: https://luma.mcp.acedata.cloud/mcp

Todas las solicitudes requieren un token Bearer. Usa el token de API del paso 1.

Claude.ai

Conéctate directamente en Claude.ai con OAuth — no se necesita token de API:

  1. Ve a Settings → Integrations → Add More en Claude.ai

  2. Introduce la URL del servidor: https://luma.mcp.acedata.cloud/mcp

  3. Completa el flujo de inicio de sesión OAuth

  4. Empieza a usar las herramientas en tu conversación

Claude Desktop

Añádelo a tu configuración (~/Library/Application Support/Claude/claude_desktop_config.json en macOS):

{
  "mcpServers": {
    "luma": {
      "type": "streamable-http",
      "url": "https://luma.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Cursor / Windsurf

Añádelo a tu configuración de MCP (.cursor/mcp.json o .windsurf/mcp.json):

{
  "mcpServers": {
    "luma": {
      "type": "streamable-http",
      "url": "https://luma.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

VS Code (Copilot)

Añádelo a tu configuración de MCP de VS Code (.vscode/mcp.json):

{
  "servers": {
    "luma": {
      "type": "streamable-http",
      "url": "https://luma.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

O instala la extensión Ace Data Cloud MCP para VS Code, que agrupa los 15 servidores MCP con una configuración de un solo clic.

IDEs de JetBrains

  1. Ve a Settings → Tools → AI Assistant → Model Context Protocol (MCP)

  2. Haz clic en Add → HTTP

  3. Pega:

{
  "mcpServers": {
    "luma": {
      "url": "https://luma.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Claude Code

Claude Code admite servidores MCP de forma nativa:

claude mcp add luma --transport http https://luma.mcp.acedata.cloud/mcp \
  -h "Authorization: Bearer YOUR_API_TOKEN"

O añádelo al archivo .mcp.json de tu proyecto:

{
  "mcpServers": {
    "luma": {
      "type": "streamable-http",
      "url": "https://luma.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Cline

Añádelo a la configuración de MCP de Cline (.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

Añádelo a tu configuración de MCP:

{
  "mcpServers": {
    "luma": {
      "type": "streamable-http",
      "url": "https://luma.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Roo Code

Añádelo a la configuración de MCP de Roo Code:

{
  "mcpServers": {
    "luma": {
      "type": "streamable-http",
      "url": "https://luma.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Continue.dev

Añádelo a .continue/config.yaml:

mcpServers:
  - name: luma
    type: streamable-http
    url: https://luma.mcp.acedata.cloud/mcp
    headers:
      Authorization: "Bearer YOUR_API_TOKEN"

Zed

Añádelo a la configuración de Zed (~/.config/zed/settings.json):

{
  "language_models": {
    "mcp_servers": {
      "luma": {
        "url": "https://luma.mcp.acedata.cloud/mcp",
        "headers": {
          "Authorization": "Bearer YOUR_API_TOKEN"
        }
      }
    }
  }
}

Prueba con 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. O ejecútalo localmente (Alternativa)

Si prefieres ejecutar el servidor en tu propia máquina:

# 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 8000

Claude Desktop (Local)

{
  "mcpServers": {
    "luma": {
      "command": "uvx",
      "args": ["mcp-luma"],
      "env": {
        "ACEDATACLOUD_API_TOKEN": "your_token_here"
      }
    }
  }
}

Docker (Autoalojamiento)

docker pull ghcr.io/acedatacloud/mcp-luma:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-luma:latest

Los clientes se conectan con su propio token Bearer: el servidor extrae el token de la cabecera Authorization de cada solicitud.

Herramientas disponibles

Generación de vídeo

Herramienta

Descripción

luma_generate_video

Genera vídeo a partir de un prompt de texto

luma_generate_video_from_image

Genera vídeo usando imágenes de referencia

luma_extend_video

Extiende un vídeo existente por ID

luma_extend_video_from_url

Extiende un vídeo existente por URL

Tareas

Herramienta

Descripción

luma_get_task

Consulta el estado de una sola tarea

luma_get_tasks_batch

Consulta múltiples tareas a la vez

Información

Herramienta

Descripción

luma_list_aspect_ratios

Lista las relaciones de aspecto disponibles

luma_list_actions

Lista las acciones de API disponibles

Ejemplos de uso

Generar vídeo a partir de un 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"]

Animar una imagen

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]

Extender un vídeo

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]

Relaciones de aspecto disponibles

Relación de aspecto

Descripción

Caso de uso

16:9

Paisaje (predeterminado)

YouTube, TV, presentaciones

9:16

Retrato

TikTok, Instagram Reels

1:1

Cuadrado

Publicaciones de Instagram

4:3

Tradicional

Formato de vídeo clásico

3:4

Retrato tradicional

Contenido en retrato

21:9

Ultrawide

Contenido cinematográfico

9:21

Ultrawide vertical

Pantallas verticales especiales

Configuración

Variables de entorno

Variable

Descripción

Predeterminado

ACEDATACLOUD_API_TOKEN

Token de API de AceDataCloud

Requerido

ACEDATACLOUD_API_BASE_URL

URL base de la API

https://api.acedata.cloud

ACEDATACLOUD_OAUTH_CLIENT_ID

ID de cliente OAuth (modo alojado)

—

ACEDATACLOUD_PLATFORM_BASE_URL

URL base de la plataforma

https://platform.acedata.cloud

LUMA_DEFAULT_ASPECT_RATIO

Relación de aspecto predeterminada

16:9

LUMA_REQUEST_TIMEOUT

Tiempo de espera de solicitud en segundos

1800

LOG_LEVEL

Nivel de registro

INFO

Opciones de línea de comandos

mcp-luma --help

Options:
  --version          Show version
  --transport        Transport mode: stdio (default) or http
  --port             Port for HTTP transport (default: 8000)

Desarrollo

Configurar el entorno de desarrollo

# 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]"

Ejecutar pruebas

# 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

Calidad del código

# Format code
ruff format .

# Lint code
ruff check .

# Type check
mypy core tools

Construir y publicar

# Install build dependencies
pip install -e ".[release]"

# Build package
python -m build

# Upload to PyPI
twine upload dist/*

Estructura del proyecto

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.md

Referencia de la API

Este servidor envuelve la API de Luma de AceDataCloud:

Contribución

¡Las contribuciones son bienvenidas! Por favor:

  1. Haz un fork del repositorio

  2. Crea una rama de características (git checkout -b feature/amazing)

  3. Confirma tus cambios (git commit -m 'Add amazing feature')

  4. Envía a la rama (git push origin feature/amazing)

  5. Abre una Pull Request

Licencia

Licencia MIT - consulta LICENSE para más detalles.

Enlaces


Hecho con amor por AceDataCloud

Available Tools

8 tools
luma_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.
ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of what should happen in the extended portion of the video. Describe the continuation of motion and new content.
video_idYesID of the video to extend. This is the 'video_id' field from a previous generation result.
callback_urlNoWebhook callback URL for asynchronous notifications.
end_image_urlNoOptional URL of an image to use as the final frame of the extended video.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of what should happen in the extended portion of the video.
video_urlYesURL of the video to extend. Must be a valid video URL from a previous Luma generation.
callback_urlNoWebhook callback URL for asynchronous notifications.
end_image_urlNoOptional URL of an image to use as the final frame of the extended video.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoIf true, generate a looping video where end connects seamlessly to start. Default is false.
promptYesDescription 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'
timeoutNoTimeout in seconds for the API to return data. Default is 300.
enhancementNoIf true, enable clarity enhancement for the video. Default is true.
aspect_ratioNoVideo 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_urlNoWebhook callback URL for asynchronous notifications. When provided, the API will call this URL when the video is generated.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoIf true, generate a looping video. Default is false.
promptYesDescription of the video motion and content. Describe what should happen in the video, how objects should move, what transitions to include.
timeoutNoTimeout in seconds for the API to return data. Default is 300.
enhancementNoIf true, enable clarity enhancement. Default is true.
aspect_ratioNoVideo aspect ratio. Usually should match your input image ratio.16:9
callback_urlNoWebhook callback URL for asynchronous notifications. When provided, the API will call this URL when the video is generated.
end_image_urlNoURL of the image to use as the last frame of the video. The video will animate towards this image.
start_image_urlNoURL of the image to use as the first frame of the video. The video will animate from this image.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID returned from a generation request. This is the 'task_id' field from any luma_generate_* or luma_extend_* tool response.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idsYesList of task IDs to query. Maximum recommended batch size is 50 tasks.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updatesv0.1.7
    • Changedluma_extend_video1 field changed
      • addedInput schema / properties / callback_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Webhook callback URL for asynchronous notifications.",
        +  "title": "Callback Url"
        +}
    • Changedluma_extend_video_from_url1 field changed
      • addedInput schema / properties / callback_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Webhook callback URL for asynchronous notifications.",
        +  "title": "Callback Url"
        +}
  2. 8 tool updatesv0.1.3
    • Addedluma_extend_video
    • Addedluma_extend_video_from_url
    • Addedluma_generate_video
    • Addedluma_generate_video_from_image
    • Addedluma_get_task
    • Addedluma_get_tasks_batch
    • Addedluma_list_actions
    • Addedluma_list_aspect_ratios
  3. 8 tool updatesv0.1.2
    • Removedluma_extend_video
    • Removedluma_extend_video_from_url
    • Removedluma_generate_video
    • Removedluma_generate_video_from_image
    • Removedluma_get_task
    • Removedluma_get_tasks_batch
    • Removedluma_list_actions
    • Removedluma_list_aspect_ratios
  4. 8 tool updatesv0.1.0
    • First observedluma_extend_video
    • First observedluma_extend_video_from_url
    • First observedluma_generate_video
    • First observedluma_generate_video_from_image
    • First observedluma_get_task
    • First observedluma_get_tasks_batch
    • First observedluma_list_actions
    • First observedluma_list_aspect_ratios

TDQS

A4.2/5.0

Scored across 8 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers