mcp-luma-dream-machine
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-luma-dream-machine create a 5-second video of a cat chasing a laser pointer in space"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Luma AI MCP Server 🎥
A Model Context Protocol server for Luma AI's Dream Machine API.
Overview
This MCP server integrates with Luma AI's Dream Machine API (v1) to provide tools for generating, managing, and manipulating AI-generated videos and images via Large Language Models. It implements the Model Context Protocol (MCP) to enable seamless interaction between AI assistants and Luma's creative tools.
Related MCP server: mcp-media-engine
Features ✨
Text-to-video generation
Advanced video generation with keyframes
Image-to-video conversion
Video extension and interpolation
Image generation with reference images
Audio addition to videos
Video upscaling
Credit management
Generation tracking and status checking
Tools 🛠️
pingCheck if the Luma API is running
No parameters required
create_generationCreates a new video generation
Input:
prompt(string, required): Text description of the video to generatemodel(string, optional): Model to use (default: "ray-2")Available models: "ray-1-6", "ray-2", "ray-flash-2"
resolution(string, optional): Video resolution (choices: "540p", "720p", "1080p", "4k")duration(string, optional): Video duration (only "5s" and "9s" are currently supported)aspect_ratio(string, optional): Video aspect ratio (e.g., "16:9", "1:1", "9:16", "4:3", "3:4", "21:9", "9:21")loop(boolean, optional): Whether to make the video loopkeyframes(object, optional): Start and end frames for advanced video generation:frame0and/orframe1with either:{"type": "image", "url": "image_url"}for image keyframes{"type": "generation", "id": "generation_id"}for video keyframes
get_generationGets the status of a generation
Input:
generation_id(string, required): ID of the generation to check
Output includes:
Generation ID
State (queued, dreaming, completed, failed)
Failure reason (if failed)
Video URL (if completed)
list_generationsLists all generations
Input:
limit(number, optional): Maximum number of generations to return (default: 10)offset(number, optional): Number of generations to skip
delete_generationDeletes a generation
Input:
generation_id(string, required): ID of the generation to delete
upscale_generationUpscales a video generation to higher resolution
Input:
generation_id(string, required): ID of the generation to upscaleresolution(string, required): Target resolution for the upscaled video (one of "540p", "720p", "1080p", or "4k")
Note:
The generation must be in a completed state to be upscaled
The target resolution must be higher than the original generation's resolution
Each generation can only be upscaled once
add_audioAdds AI-generated audio to a video generation
Input:
generation_id(required): The ID of the generation to add audio toprompt(required): The prompt for the audio generationnegative_prompt(optional): The negative prompt for the audio generationcallback_url(optional): URL to notify when the audio processing is complete
generate_imageGenerates an image from a text prompt with optional reference images
Input:
prompt(string, required): Text description of the image to generatemodel(string, optional): Model to use for image generation (default: "photon-1")Available models: "photon-1", "photon-flash-1"
aspect_ratio(string, optional): Image aspect ratio (same options as video)image_ref(array, optional): Reference images to guide generationEach ref:
{"url": "image_url", "weight": optional_float}
style_ref(array, optional): Style reference imagesEach ref:
{"url": "image_url", "weight": optional_float}
character_ref(object, optional): Character reference imagesFormat:
{"identity_name": {"images": ["url1", "url2", ...]}}
modify_image_ref(object, optional): Image to modifyFormat:
{"url": "image_url", "weight": optional_float}
get_creditsGets credit information for the current user
No parameters required
Returns available credit balance in USD cents
get_camera_motionsGets all supported camera motions
No parameters required
Returns: List of available camera motion strings
Setup for Claude Desktop 🖥️
Get your Luma API key from Luma AI (sign up or log in to get your API key)
Add this to your Claude Desktop configuration file:
On macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonOn Windows:
%APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "luma": { "command": "uv", "args": [ "run", "--project", "/path/to/your/luma-ai-mcp-server", "-m", "luma_ai_mcp_server" ], "env": { "LUMA_API_KEY": "your-luma-api-key-here" } } } }Replace:
/path/to/your/luma-ai-mcp-serverwith the actual path to your server directoryyour-luma-api-key-herewith your actual Luma API key
Restart Claude Desktop
That's it! You can now use Luma AI tools directly in Claude Desktop conversations.
Quick Troubleshooting 🛠️
If you're having issues:
Check your API key is correct
Make sure the path to the server is correct
View logs with:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
Advanced Video Generation Types 🎬
The Luma API supports various types of advanced video generation through keyframes:
Starting from an image: Provide
frame0withtype: "image"and an image URLEnding with an image: Provide
frame1withtype: "image"and an image URLExtending a video: Provide
frame0withtype: "generation"and a generation IDReverse extending a video: Provide
frame1withtype: "generation"and a generation IDInterpolating between videos: Provide both
frame0andframe1withtype: "generation"and generation IDs
API Limitations and Notes 📝
Duration: Currently, the API only supports durations of "5s" or "9s"
Resolution: Valid values are "540p", "720p", "1080p", and "4k"
Models:
Video generation:
"ray-2" (default) - Best quality, slower
"ray-flash-2" - Faster generation
"ray-1-6" - Legacy model
Image generation:
"photon-1" (default) - Best quality, slower
"photon-flash-1" - Faster generation
Generation types: Video, image, and advanced (with keyframes)
Aspect Ratios: "1:1" (square), "16:9" (landscape), "9:16" (portrait), "4:3" (standard), "3:4" (standard portrait), "21:9" (ultrawide), "9:21" (ultrawide portrait)
States: "queued", "dreaming", "completed", "failed"
Upscaling:
Video generations can only be upscaled when they're in a "complete" state
Target resolution must be higher than the original generation's resolution
Each generation can only be upscaled once
API Key: Required in environment variables
API Version: Uses Dream Machine API v1
License 📄
MIT
Available Tools
10 toolsadd_audioC
Adds audio to a video generation
Inputs: generation_id (required), prompt (required), negative_prompt, callback_url.
create_generationC
Creates a new video generation from text, image, or existing video
Inputs: prompt (required), model, resolution, duration, +4 more.
delete_generationC
Deletes a generation
Inputs: generation_id (required).
generate_imageC
Generates an image from a text prompt
Inputs: prompt (required), model, aspect_ratio, callback_url, +4 more.
get_camera_motionsB
Gets all supported camera motions
Inputs: no named parameters.
get_creditsB
Gets credit information for the current user
Inputs: no named parameters.
get_generationC
Gets the status of a generation
Inputs: generation_id (required).
list_generationsD
Lists all generations
Inputs: limit, offset.
pingB
Check if the Luma API is running
Inputs: no named parameters.
upscale_generationC
Upscales a video generation to higher resolution
Inputs: generation_id (required), resolution (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Most tools have distinct purposes, but there is some potential overlap between 'create_generation' (for video from text/image/video) and 'generate_image' (for image from text), which could cause confusion about when to use each. Otherwise, tools like 'add_audio', 'upscale_generation', and 'get_camera_motions' are clearly differentiated.
All tools follow a consistent verb_noun pattern with snake_case, such as 'create_generation', 'delete_generation', 'get_camera_motions', and 'upscale_generation'. The naming is predictable and uniform across the set.
With 10 tools, the count is well-scoped for a video/image generation API. It covers core operations like creation, retrieval, listing, deletion, and enhancement, without being overwhelming or too sparse.
The toolset provides good coverage for video and image generation workflows, including CRUD operations for generations and additional features like audio addition and upscaling. A minor gap is the lack of tools for modifying existing generations (e.g., update or edit), but agents can work around this by recreating or upscaling.
Maintenance
Related MCP Connectors
MCP server for Luma Dream Machine AI video generation
Generate AI images and videos from any compatible MCP client.
MCP server for Hailuo (MiniMax) AI video generation
MCP server for Google Veo AI video generation
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA server that provides Luma AI's video generation API as the Model Context Protocol (MCP)3MIT
- AlicenseAqualityCmaintenanceMCP server for AI-powered image, audio, and video generation, enabling media creation directly from Claude, Cursor, and other MCP clients.1144 npmMIT
- AlicenseBqualityDmaintenanceMCP server for generating and editing images using OpenAI, and creating videos using OpenAI Sora and Google Veo. Enables fetching media from URLs or disk with smart output placement.1425 npm9MIT
- AlicenseBqualityDmaintenanceA production-ready MCP server that enables Claude and other LLMs to generate images and videos using Google's Gemini AI models (Gemini 2.0 Flash and Veo 2.0).32ISC