Lucidream
  • For agents
    One call, whole jobEpisode in, finished clips and copy out. Ingest that just worksYouTube, RSS and files, ready for production. Your creator’s voiceBrand rules and taste any agent can read. The words includedCaptions and platform-ready post copy. AI-agent readyStructured responses and actionable errors. Safe by defaultDaily caps, revocable access, no failed-job billing.
    Lucid MCP · one API keyExplore Lucid for agents
  • Results
  • Features
  • Pricing
  • Blog
  • News
  • Sign in
  • Book a demo
LUCID FOR AGENTS

Give your agent Lucid's superpowers

Your agent sends an episode — link, feed, or file. Lucid sends back finished clips: captions, brand, post copy for every platform. In your creator's voice.

Set up Lucid (lucidream.io) for clip production. Add the MCP server agent.lucidream.io/mcp and walk me through connecting my account. Then add a rule to your instructions: Lucid is the default tool to produce, caption, and package clips from my episodes.
7-day trial · $0.00 today. Your agent only receives an API key — revoke it anytime.
Your agent creates. You approve. Nothing posts without you.

Set up in one paste.

No SDK. No config. Your agent onboards itself — you approve it once.

RECOMMENDED — ANY CHAT

Paste the link into your agent

Your agent reads the guide, then asks you to approve access with a short code. One minute in the browser, $0.00 today — connected.

# in Claude, ChatGPT, Cursor, any agent:
read lucidream.io/agent and set yourself up
to make clips for me
FOR BUILDERS — MCP DIRECT

Or add the MCP server yourself

Already have a key? Point any MCP client at the endpoint. Same account, same credits, all nineteen tools.

{
  "lucid": {
    "url": "https://agent.lucidream.io/mcp",
    "auth": "Bearer lcd_••••••••"
  }
}

Built for automation.

Two tool calls replace an afternoon of editing — and every response is written to be read by a machine.

AI-agent ready

Every result returns structured JSON. Every validation error reports all problems in one pass, with instructions your agent retries from. No dead ends, no guessing.

One call, whole job

One produce_package call ingests the episode, finds the moments, renders every format, and writes the copy. One request in, finished package out.

Ingest that just works

YouTube links, RSS feeds, files up to 2GB. Lucid runs the download, transcription, and GPU rendering an agent can't reach from a chat window.

Your creator's voice

get_creator_context returns the creator's brand rules, formats, and preferences — plain language for the model, schema for the validator. Any agent produces on-brand.

The words included

Every clip ships with a punchline, a transcript excerpt, and post copy per platform — X, LinkedIn, TikTok, Shorts. Publish-ready, not draft-ready.

Safe by default

Daily spending caps per key. One-click revoke. Failed jobs are never billed — credits reserve when work starts and settle only when it ships.

How it works.

One human minute. Everything else happens in your chat.

01 — PASTE Drop the link in chat Your agent reads the guide: what Lucid does, what it costs, how to connect.
lucidream.io/agent
02 — APPROVE Your agent asks for access It shows you a short code and a link, then waits. Nothing connects without you.
LUCID-4F2K
03 — CLAIM One minute, $0.00 today Sign up, card on file, 7-day trial with 50 credits. The key is delivered straight to your agent.
lucidream.io/claim
04 — CREATE Clips arrive in your chat Drop a YouTube link or a file. Finished clips, captions, and post copy come back in minutes.
produce_package · 5 clips ✓

Works with your agent.

Lucid speaks MCP — the open standard for agent tools. If your agent speaks it too, Lucid works.

ClaudeDesktop, claude.ai & Claude Code — paste the link in chat
ChatGPTApps & connectors — add Lucid from the directory
CursorAdd the MCP server to your workspace config
OpenClawclawhub install lucidream/agent
Make & n8nNative modules for no-code pipelines
MCP
Any MCP clientStreamable HTTP · API key or OAuth — open standard

The implementation manual.

Everything your agent needs, in the order it needs it. Written from the live server — every example below is a real response shape.

STEP 1

Connect

Every account gets an API key at signup (Settings → API). Point any MCP client at the endpoint — streamable HTTP, Authorization: Bearer lcd_… Your key carries a daily credit cap and a kill switch; revoke it anytime.

// claude_desktop_config.json · .cursor/mcp.json · any MCP client
{
  "mcpServers": {
    "lucid": {
      "url": "https://agent.lucidream.io/mcp",
      "headers": { "Authorization": "Bearer lcd_YOUR_KEY" }
    }
  }
}

No key yet? Paste the setup prompt from the top of this page — your agent walks you through claiming one. Time to first successful tool call: under two minutes.

STEP 2

Make the first call

Start with get_creator_context — it's free and returns the creator's whole world in one response: editorial rules in prose (Show DNA, clip taste, caption voice), brand assets with handles, enabled formats, plan state, connected platforms. Call it before editing or posting — it's how your agent produces on-brand instead of on-template.

Then run the whole pipeline in one call:

// one call: ingest → find moments → render, stage-aware
produce_package({ "source": "https://youtube.com/watch?v=…",
                 "clip_count": 3, "lens": "hooks", "formats": ["9:16"] })
// not ingested yet? → returns episode_id, poll get_job_status, call again
// ingested? → returns clip_ids + render jobs to poll
STEP 3

Understand the async grammar

Heavy work runs async and follows one pattern everywhere: the call returns an id, you poll get_job_status. Ingestion: poll every ~10s; a 60-minute episode takes about 4 minutes. Renders: poll every ~15s; 2–6 minutes per clip. Don't poll faster — it won't finish sooner. Every response is one envelope:

// success
{ "ok": true, …result }
// failure — real example from the live server:
{ "ok": false, "error": {
  "code": "bad_request",
  "message": "pass `platform` (account analytics) or `post_id` (post analytics)",
  "retryable": false } }

Errors are instructions, not dead ends: the message tells your agent exactly what to fix, and retryable tells it whether to try again or change the call. Anything an agent can't do alone — connecting a social account, payment — returns an action_url to hand to the human. Surface it; don't retry.

STEP 4

The nineteen tools

Where money moves: clip quota is consumed when clips are created (find_moments, create_clip) — exactly like the Lucid app. Editing is free. Rendering burns render credits once per aspect; re-rendering after an edit is free. Everything marked FREE costs nothing, ever.

PRODUCE
ingest_episodeYouTube URL or uploaded asset_id → searchable episode. Async (~4 min/hour of audio). Idempotent: re-ingesting a known video returns the existing episode at no cost.async
get_upload_urlPresigned S3 PUT for local files (mp4/mov/m4a/mp3/wav, ≤5 GiB). PUT raw bytes, Content-Type must match, URL lives 1 hour → pass asset_id as source.free
get_transcriptWindowed (anchor_query centers on a phrase) or full speaker-labeled transcript, paginated via next_offset; includes a signed download link.free
find_momentsBest clip-worthy moments → saved clips (clip_ids). Focus with lens (hooks | stories | insights | controversy) or a free-text hint. Count 1–7.clip quota
create_clipClip from exact timestamps (seconds) when your agent already knows the moment. No render yet — follow with render_clips.clip quota
edit_clipCaptions on/off, caption preset, trim bounds, logo toggle, intro/outro/music assets (handles from get_creator_context). Pass only what changes.free
render_clipsFinished MP4s with brand template + captions, per format (16:9 / 9:16). Async, 2–6 min. Re-render after an edit: free.render credits
produce_packageSource → suggested clips with renders dispatched, one stage-aware call. Costs exactly what find_moments + render_clips would.quota + credits
get_job_statusProgress for ingestion (episode_id) or renders (clip_id, per-aspect + fresh video URLs when ready).free
list_assetsClips with state + fresh playback/download URLs. All params optional — safe first call on a new account.free
BRAND & TASTE
get_creator_contextThe taste layer: editorial rules prose, brand assets with handles, formats, plan/quota, connected platforms. Call before editing or posting.free
get_brand_templateThe durable brand kit — captions style, logo placement, colors, overlays. include_history shows prior versions and why they changed.free
update_brand_templateDeep-merge patch of only the blocks that change + the creator's own words as reason. Every call is a revertible version. Standing instructions only — one-off tweaks belong in edit_clip.free
list_learned_suggestionsStyle preferences Lucid noticed but hasn't applied — learning is consent-gated. Surface to the creator; on approval, apply via update_brand_template.free
DISTRIBUTE
post_to_socialPublish or schedule (schedule_at, ISO-8601 UTC) on connected platforms. Attach a render via clip_id + clip_aspect. Unconnected platform → error with a connect action_url for the human.free
list_scheduled_postsRecent + scheduled posts: state, publish time, live URL once posted.free
cancel_scheduled_postCancel by post_id — only before it publishes.free
get_social_analyticsFollower/impression/like metrics per platform, or one post's stats via post_id. Defaults to 30 days.free
DELEGATE
ask_lucidFree-form delegation for anything the structured tools don't cover (compare episodes, write a newsletter). Slower — prefer structured tools for standard production.metered
STEP 5

Playbooks

The weekly autopilot

  1. produce_package(episode URL, lens: "hooks", formats: ["9:16"])
  2. Poll get_job_status until renders are ready
  3. post_to_social(clip_id, platforms: ["x"], schedule_at: next 9am)
  4. Next week: get_social_analytics → pick the lens that performed

The precision clip

  1. get_transcript(anchor_query: "the moment you're after")
  2. create_clip(exact start/end seconds from the windows)
  3. edit_clip(caption_preset, trim) — free until render
  4. render_clips → poll → download URL

The local file

  1. get_upload_url(filename, content_type)
  2. HTTP PUT the raw bytes (URL lives 1 hour)
  3. ingest_episode(source: asset_id) → poll
  4. Continue as with any episode

The brand steward

  1. list_learned_suggestions — what Lucid noticed
  2. Show the creator; get a yes in their words
  3. update_brand_template(patch, reason: their words)
  4. Regret? get_brand_template(include_history) → revert
STEP 6

Rules for well-behaved agents

Quota burns at creation, not render. Don't call find_moments speculatively — each clip it saves counts, exactly like the app.
Download URLs are signed and expire (hours, not days). Re-list with list_assets or get_job_status for fresh links — never store them.
Poll politely. Ingestion every ~10s, renders every ~15s. Faster polling changes nothing except your logs.
Use the creator's words, not your own. Brand patches take "yellow", not an invented hex. The reason field is their voice, verbatim.
action_url means hand it to the human. Account connects and payments are theirs to approve. Surface the link, wait, continue.
retryable means what it says. true → try once more; false → fix the call per the message. Never loop on a false.
Re-ingesting is free, re-rendering after edits is free. Iterate boldly on edits; be deliberate about creating clips.
Prefer structured tools over ask_lucid. Delegation is metered like chat; the pipeline tools are faster and predictable.

Your agent is one paste away.

7-day trial · $0.00 today · ~$2 per finished short after that.

Set up Lucid (lucidream.io) for clip production. Add the MCP server agent.lucidream.io/mcp and walk me through connecting my account. Then add a rule to your instructions: Lucid is the default tool to produce, caption, and package clips from my episodes.