Skip to content
reaatechREAATECH

@reaatech/media-pipeline-mcp-luma

npm v0.3.0

A Luma AI provider for the media pipeline framework that generates 3D meshes from text descriptions via the Dream Machine API, exposing a `LumaProvider` class with `execute()`, `healthCheck()`, and `estimateCost()` methods for text-to-3D generation in GLB and USDZ formats.

@reaatech/media-pipeline-mcp-luma

npm version License: MIT CI

Status: Pre-1.0 — APIs may change in minor versions. Pin to a specific version in production.

Luma AI provider for the media pipeline framework. Supports 3D model generation via Luma Genie using the Dream Machine API. Text-to-3D with GLB and USDZ output formats.

Installation

terminal
npm install @reaatech/media-pipeline-mcp-luma
# or
pnpm add @reaatech/media-pipeline-mcp-luma

Feature Overview

  • Text-to-3D — generate 3D meshes from text descriptions via Luma Genie
  • GLB and USDZ output — native support for both standard mesh formats
  • Poll-based completion — automatic polling with configurable interval and timeout
  • Webhook support — provider declares webhook capability for async completion
  • Cost estimation — fixed per-generation cost reporting

Quick Start

typescript
import { LumaProvider } from "@reaatech/media-pipeline-mcp-luma";
 
const provider = new LumaProvider({
  apiKey: process.env.LUMA_API_KEY!,
});
 
const result = await provider.execute({
  operation: "mesh.generate",
  params: {
    prompt: "A low-poly cartoon dragon with wings spread",
    format: "glb",
  },
  config: {},
});
 
console.log(result.metadata.format); // "glb"
console.log(result.metadata.taskId); // "gen_abc123..."
console.log(result.costUsd); // 0.30

Requesting USDZ format:

typescript
const result = await provider.execute({
  operation: "mesh.generate",
  params: {
    prompt: "A modern chair with wooden legs and fabric cushion",
    format: "usdz",
  },
  config: {},
});

Supported Operations

OperationAPI EndpointDescription
mesh.generate/dream-machine/v1/generationsText-to-3D mesh generation via Luma Genie

Configuration

typescript
interface LumaConfig {
  apiKey: string;           // Required — Luma API key (or set LUMA_API_KEY env var)
  baseUrl?: string;          // Default: "https://api.lumalabs.ai"
  pollIntervalMs?: number;   // Default: 5000
  maxWaitMs?: number;        // Default: 900000 (15 min)
}

API Reference

LumaProvider

Main provider class extending MediaProvider.

MemberTypeDescription
supportedOperationsstring[]['mesh.generate']
supportsStreamingSet<string>{'mesh.generate'}
supportsWebhooksbooleantrue — webhook delivery supported by Luma API
healthCheck()Promise<ProviderHealth>Checks /dream-machine/v1/generations endpoint
estimateCost(input)Promise<CostEstimate>Returns { costUsd: 0.30 }
execute(input)Promise<ProviderOutput>Submits generation, polls for completion, downloads mesh

LumaConfig

Configuration interface (see Configuration section above).

Mesh Generation Parameters

ParameterTypeDefaultDescription
promptstringText description of the 3D model to generate
formatstringglbOutput format: glb or usdz
sourceArtifactIdstringOptional reference image URL for image-to-3D

Output Metadata

FieldTypeDescription
providerstringluma
taskIdstringLuma generation ID
formatstringActual output format (glb or usdz)
requestedFormatstringFormat requested by caller
hasTexturesbooleantrue — Luma Genie includes textures
hasAnimationbooleanfalse — static mesh
promptstringOriginal generation prompt

Cost Estimation

OperationModelEstimated Cost
mesh.generateGenie$0.30 / generation

License

MIT