Lumora for coding agents

Lumora turns screenshots and screen recordings into cinematic product demo videos. Agents can do everything a person can in the editor through MCP or the REST API.

Connect

Client How
Claude Code (remote MCP) claude mcp add --transport http lumora https://lumora.video/mcp --header "Authorization: Bearer lum_..."
Claude Code (plugin) /plugin install lumora@lumora after adding the Lumora plugin marketplace
Codex codex plugin add lumora@lumora, or [mcp_servers.lumora] url = "https://lumora.video/mcp" with bearer_token_env_var = "LUMORA_API_KEY" in ~/.codex/config.toml
Claude Desktop Open lumora.mcpb and enter your Lumora URL and API key
Any MCP client (streamable HTTP) https://lumora.video/mcp with Authorization: Bearer <API key>

Create an API key in Lumora under Account settings → API keys for agents.

Tools

Tool What it does
list_styles Looks, camera styles, effects, palettes, caption styles, devices, voices and export formats
upload_media Upload a screenshot, recording or music track (local path, URL or base64)
create_video Create a video from a spec or a one-line brief (AI direction writes callouts, script and CTA)
update_video Change any part of the spec
get_video, list_videos Read specs back
preview_frame Render one frame as an image to check framing before rendering
render_video Render MP4, GIF or WebM and return a share link
render_status Poll a render
save_brand_kit Save the team's logo, colours, music and call to action; use it with brandKit in create_video (Team plan)

Video spec (example)

{
  "name": "Pulse 2.4 release",
  "media": { "url": "/uploads/<id from upload_media>.png" },
  "title": "Churn alerts",
  "brief": "Pulse now alerts you when churn spikes",
  "look": "Launch day",
  "format": "landscape",
  "script": "Pulse 2.4 watches churn for you. When it spikes, you hear about it first.",
  "voice": true,
  "captions": "pop",
  "device": "macbook",
  "cta": { "text": "Try Pulse", "url": "https://example.com" }
}

Upload media first with upload_media (a URL or base64 on the hosted server) and pass the returned /uploads/... URL, or pass "website": "https://yourproduct.com" instead and Lumora screenshots the page and takes its colours, font, name and icon. "launchFilm": true turns the demo into a launch film (name inside the letters, card deal, logo lockup, call to action); shots places full-frame shots yourself, sfxStyle (minimal, soft, punchy) sets how the sound effects hit, and the result's filmCheck lists what to fix before rendering. render_video takes music: false and package: true (a zip of clips, audio stems, captions and a timeline for further editing). Formats are landscape, vertical and square. Call list_styles for the current option names. A typical release flow: build the feature, screenshot the changed screen, create_video with a brief from the changelog entry, preview_frame at the middle, render_video, then post the share link in the release notes.

REST API

The same operations are plain HTTP under https://lumora.video/api: GET /api/catalog, POST /api/videos, PATCH /api/videos/:id, GET /api/videos/:id/frame?t=, POST /api/videos/:id/render, GET /api/jobs/:id, POST /api/upload/url, POST /api/capture.