MCP Hub
Back to servers

MCPLuma

Luma Dream Machine AI video generation with text-to-video, image-to-video, video extension, loop creation, and multiple aspect ratios.

glama
Forks
1
Updated
Mar 10, 2026

MCP Luma

PyPI version PyPI downloads Python 3.10+ License: MIT MCP

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

Quick Start

1. Get API Token

Get your API token from AceDataCloud Platform:

  1. Sign up or log in
  2. Navigate to Luma Videos API
  3. Click "Acquire" to get your token

2. Install

# Clone the repository
git clone https://github.com/AceDataCloud/mcp-luma.git
cd mcp-luma

# Install with pip
pip install -e .

# Or with uv (recommended)
uv pip install -e .

3. Configure

# Copy example environment file
cp .env.example .env

# Edit with your API token
echo "ACEDATACLOUD_API_TOKEN=your_token_here" > .env

4. Run

# Run the server
mcp-luma

# Or with Python directly
python main.py

Claude Desktop Integration

Add to your Claude Desktop configuration:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "luma": {
      "command": "mcp-luma",
      "env": {
        "ACEDATACLOUD_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Or if using uv:

{
  "mcpServers": {
    "luma": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-luma", "mcp-luma"],
      "env": {
        "ACEDATACLOUD_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Remote HTTP Mode (Hosted)

AceDataCloud hosts a managed MCP server that you can connect to directly — no local installation required.

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

All requests require a Bearer token in the Authorization header. Get your token from AceDataCloud Platform.

Claude Desktop (Remote)

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

Cursor / VS Code

In your MCP client settings, add:

  • Type: streamable-http
  • URL: https://luma.mcp.acedata.cloud/mcp
  • Headers: Authorization: Bearer your_api_token_here

cURL Test

# Health check (no auth required)
curl https://luma.mcp.acedata.cloud/health

# MCP initialize (requires Bearer token)
curl -X POST https://luma.mcp.acedata.cloud/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer your_api_token_here" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

Self-Hosting with Docker

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

Clients connect with their own Bearer token — the server extracts the token from each request's Authorization header and uses it for upstream API calls.

Available Tools

Video Generation

ToolDescription
luma_generate_videoGenerate video from a text prompt
luma_generate_video_from_imageGenerate video using reference images
luma_extend_videoExtend an existing video by ID
luma_extend_video_from_urlExtend an existing video by URL

Tasks

ToolDescription
luma_get_taskQuery a single task status
luma_get_tasks_batchQuery multiple tasks at once

Information

ToolDescription
luma_list_aspect_ratiosList available aspect ratios
luma_list_actionsList 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 RatioDescriptionUse Case
16:9Landscape (default)YouTube, TV, presentations
9:16PortraitTikTok, Instagram Reels
1:1SquareInstagram posts
4:3TraditionalClassic video format
3:4Portrait traditionalPortrait content
21:9UltrawideCinematic content
9:21Tall ultrawideSpecial vertical displays

Configuration

Environment Variables

VariableDescriptionDefault
ACEDATACLOUD_API_TOKENAPI token from AceDataCloudRequired
ACEDATACLOUD_API_BASE_URLAPI base URLhttps://api.acedata.cloud
LUMA_DEFAULT_ASPECT_RATIODefault aspect ratio16:9
LUMA_REQUEST_TIMEOUTRequest timeout in seconds1800
LOG_LEVELLogging levelINFO

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/mcp-luma.git
cd mcp-luma

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

Code Quality

# Format code
ruff format .

# Lint code
ruff check .

# Type check
mypy core tools

Build & Publish

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

# Build package
python -m build

# Upload to PyPI
twine upload dist/*

Project Structure

MCPLuma/
├── 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

API Reference

This server wraps the AceDataCloud Luma API:

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing)
  5. Open a Pull Request

License

MIT License - see LICENSE for details.

Links


Made with love by AceDataCloud

Reviews

No reviews yet

Sign in to write a review