Autonomous video editing through an MCP interface. You describe what you want in natural language, and the server plans and executes multi-step edits: viral clip extraction, auto-captioning, vertical reframing, chroma keying, silence removal, background replacement without green screen, speaker tracking, and MP4 export. Everything routes through a single `autonomous_edit` tool that takes a text prompt and returns finished video. Also exposes typed CRUD for brand kits, caption templates, projects, and asset management so you can build editing workflows that remember your style. Renders run on parallel GPU infrastructure and can process hundreds of clips at once. Built on the Livecore API with streaming and async variants for long jobs. Install via npx and point it at your API key from studio.livecore.ai.
An autonomous agentic video editor. Send a sentence. Get a finished video. No timelines, no keyframes, no plugin chains. Get hundreds of reels and edits rendered within seconds using massive parallel GPU rendering infrastructure.
Beta. The agent can make mistakes. Preview every output before publishing or sharing. For high-stakes or irreversible edits, pass
requirePlanApproval: trueso the agent stops after planning and waits for your approval before anything runs.
The portable interface is the levea-mcp-server MCP server — one server, every MCP client (Claude Desktop, Claude Code, Cursor, Cline, OpenClaw, Hermes), one tool surface, one backend contract, so nothing drifts per platform.
1. Get an API key — sign up at studio.livecore.ai and generate an OpenClaw API key.
2. Add the MCP server — the same npx line works for every MCP client:
{
"mcpServers": {
"levea": {
"command": "npx",
"args": ["-y", "levea-mcp-server"],
"env": {
"LEVEA_API_URL": "https://api.livecore.ai",
"LEVEA_API_KEY": "your-key-from-studio.livecore.ai"
}
}
}
}
3. Use it — say to your AI: "Use the levea tool to generate 5 viral clips from this video, add captions, reframe vertical." The agent picks the tool, fills the prompt; the editor plans → executes → exports.
| Client | How |
|---|---|
| Claude Desktop / Cursor / Cline | Add the levea block above to mcpServers — see the levea-mcp-server docs |
| Claude Code | claude mcp add levea -e LEVEA_API_URL=https://api.livecore.ai -e LEVEA_API_KEY=... -- npx -y levea-mcp-server |
| OpenClaw | This ClawHub listing (chat-native) or openclaw mcp add levea --command "npx -y levea-mcp-server" --env LEVEA_API_URL=https://api.livecore.ai --env LEVEA_API_KEY=... |
| Hermes | Register levea-mcp-server as an MCP server in your Hermes config |
This listing on ClawHub:
openclaw plugins install clawhub:openclaw-ai-video-editor
Every client calls the same backend — the MCP server, this ClawHub listing, and every other surface share one tool contract.
| Host | Use |
|---|---|
| https://api.livecore.ai | Functional API. Set as LEVEA_API_URL. The client appends /api/v1/misc/openclaw/v1/execute automatically — never put a full path here. |
| https://studio.livecore.ai | API-key portal (UI). Get your key here. Do not use as LEVEA_API_URL. |
Env vars are
LEVEA_API_URL/LEVEA_API_KEY.
One editing entry point. Everything else is typed state-management and polling — so integrators can build full editing experiences through one API key instead of mixing JWT and MCP.
| Group | Tools |
|---|---|
| Edit (one entry point, 3 variants) | autonomous_edit (primary, JSON) · autonomous_edit_streaming (SSE — per-step progress) · queue_edit (async fire-and-forget) |
| Job / task polling | check_job_status · check_task_status · get_active_task |
| Caption templates | list_caption_templates · apply_caption_template · save_caption_template · save_current_caption_template · delete_caption_template (41 builtin + your saved) |
| Brand kits | list_brand_kits · get_brand_kit · create_brand_kit · update_brand_kit · delete_brand_kit (palette · fonts · logo · voice · gradeBias · enforcement) |
| Projects | list_projects · get_project · create_project · delete_project |
| Assets | asset_upload_url (signed PUT) · list_assets · delete_asset · transcribe_asset |
| Diagnostics | editor_health |
No edit shims (add_captions, generate_viral_clips, …) and no editor_execute escape hatch. The backend's planner is the specialist — fragmenting the editing surface encourages calling LLMs to second-guess the planner and lose multi-step intent. State-management tools (brand / project / asset / caption-template CRUD) aren't editing, so they don't fragment intent — they just give integrators typed access.
→ For agent-integration details (schemas, async semantics, error handling, plan approval), see AGENTS.md.
Say it in plain language; the agent plans and finishes the edit.
| You ask | It does |
|---|---|
| "Turn this into 5 viral clips with captions and vertical reframe" | Picks the best moments, cuts, captions, reframes, exports |
| "Cut a 60-second highlight from this 2-hour podcast" | Identifies narrative peaks, trims, packages with captions |
| "Make this TikTok-ready" | Vertical 9:16 reframe + captions + silence removal + emphasis kit |
| "Export for TikTok, Reels, Shorts, YouTube, and Instagram" | One pass, all aspect ratios in one bundle |
| "Replace the green screen with a beach, keep the speaker centered" | Chroma key + background composite + motion tracking in one call |
| "Remove the background — no green screen" | AI background removal via alpha matte (any footage) |
| "Swap my background for a city skyline — no green screen" | AI matte removes the subject cleanly, then composites the new background behind |
| "Remove all silences and filler words, add background music" | Cleans the audio track, adds ducked music under speech |
| "Auto-zoom on whoever's talking" | Active-speaker detection + dynamic zoom-follow framing |
| "Caption this and highlight every time they say 'launch'" | Auto-captions + keyword emphasis (scaling / glow / pulse) |
| "Find every clip where Alex appears" | Cross-asset face identity search |
| "Add narration in a cloned voice over the intro" | Voice cloning + TTS overlay + auto-ducking |
| "Caption this Hormozi-style with karaoke word highlighting" | Word-synced karaoke captions — active word fills + underlines in time with speech |
| "Generate B-roll over the product mention" | AI B-roll generation + placement at the right timestamp |
| "Color grade this like a Netflix doc" | Color grading with cinematic preset |
| "Slow-mo the climax, freeze on the reveal" | Speed change (slow-mo / fast-forward) + freeze-frame |
| "Reframe to vertical but don't crop the lower-third captions" | Caption-safe 9:16 reframe (detects on-screen text regions and reframes around them) |
| "Pull the key stats from this and animate them as charts" | Transcript-driven charts + stat-callout motion graphics |
| "Sync these 3 camera angles and cut between them on the active speaker" | Multi-cam sync + automatic angle switching |
| "Blur the license plates and bleep the swearing" | Privacy redaction + profanity cleanup |
The full toolset behind the prompt. Everything below is reachable from natural language — mix and match in a single sentence.
30+ production-grade animated graphics:
autonomous_edit accepts anything from a five-word command to a five-hundred-word creative brief.
1. Direct commands — a single edit, single result. The What it does examples above are all direct commands.
2. Open-ended goals — hand the agent a goal instead of a command; it inspects the asset, then proposes a plan:
"Watch this and tell me how to make it more engaging for TikTok"
"Look at the first 30 seconds and suggest 3 ways to hook the viewer"
"Review this footage and propose edits to tighten the pacing"
Pair these with requirePlanApproval: true for propose-only mode — the agent stops after planning and waits for your approval (see Plan approval).
3. Full creative briefs — multi-step orchestrations executed end-to-end. The agent decomposes the brief into a DAG of canonical actions, plans the order, executes through safety gates, verifies each step, and exports every requested format. Use SSE to watch each step land in real time.
Transform this video into a viral social media documentary. Start by trimming the first 3 seconds and last 5 seconds to remove dead air. Apply a cinematic color grade with warm tones and high contrast. Generate auto-captions with bold yellow text and black outline, positioned bottom center. Add a dynamic zoom-in on the main subject during the first 10 seconds. Insert 3 contextual b-roll clips where the speaker mentions visual concepts. Apply face tracking to keep the subject centered when converting to vertical 9:16 for TikTok and Reels. Add an upbeat background track that matches the energy, with auto-ducking when the speaker talks. Remove all silence gaps longer than 0.5 seconds. Apply a subtle vignette. Add my logo watermark top-right at 80% opacity. Generate a custom thumbnail from the most expressive frame with bold "MUST WATCH" text. Create an animated subscribe button that appears at 5 seconds and pulses. Add whoosh SFX for transitions. Apply noise reduction. Split at 30 seconds to insert a 2-second transition. Add animated counter overlays for key statistics. Blur background faces for privacy. Export in 1080p for YouTube plus optimized TikTok, Reels, and Shorts versions with platform-specific aspect ratios.
No timeline UI, no per-step API calls, no glue code on your side.
Base URL: {LEVEA_API_URL} (production: https://api.livecore.ai). Auth on every request:
Authorization: Bearer {LEVEA_API_KEY}
All paths are under /api/v1/misc/openclaw.
| Endpoint | Purpose |
|---|---|
POST /v1/execute | Run autonomous_edit (the main entry point) |
POST /v1/queue-edit | Fire-and-forget async edit |
GET /v1/jobs/{jobId} · GET /v1/task-status/{taskId} | Poll async render / generation jobs |
GET /v1/projects/{id}/active-task | The project's in-flight task, if any |
GET /v1/tools · GET /v1/health | List tool names · health check |
/v1/brands · /v1/projects · /v1/assets/* | Brand-kit / project / asset CRUD — list · get · create · update · delete |
/v1/caption-templates (+ /apply, /save-current) | Caption-template CRUD + apply |
Each management group above is also exposed as a typed MCP tool (see Tools the AI sees).
LEVEA_API_URLis the bare hosthttps://api.livecore.ai— not a full path, notstudio.livecore.ai, and not the in-product/api/v1/misc/editor/route.
Every edit goes through one tool — autonomous_edit. Pass a natural-language description; the agent plans, executes, verifies, and exports. No tool list to memorize, no structured params to learn.
curl -sS -X POST "$LEVEA_API_URL/api/v1/misc/openclaw/v1/execute" \
-H "Authorization: Bearer $LEVEA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tool": "autonomous_edit",
"params": {
"prompt": "Make this a TikTok-ready viral clip: vertical reframe, bold captions, remove silences, motion-track the speaker, and export."
},
"project_id": "my-project"
}'
prompt is the only required field. Everything else is optional:
| Param | Purpose |
|---|---|
prompt | The natural-language edit instruction (required) |
project_id | Reuse an existing project's scene + history |
scene | Inline scene state, as an alternative to project_id (round-trip the scene from a previous response) |
video_url | Start from a single video URL with no prior scene |
assets | Multiple input assets (the first video seeds the scene) |
attachedImages | Reference / style screenshot image URLs |
flaggedIssues | Specific problems from a prior output to fix on this pass |
captionTemplatePreset / captionTemplateMode | Force a named caption style + how it's applied |
brandId / projectBrandId | Apply a brand kit (palette · fonts · logo · voice) |
requirePlanApproval | Stop after planning and wait for approval — see Plan approval |
workingMemory / editedPlan | Resume state + revised plan for the approval loop |
{
"type": "success | partial_success",
"tool": "autonomous_edit",
"success": true,
"partial": false,
"status": "completed | failed | awaiting_approval",
"scene": { },
"reply": "Human-readable summary of what changed",
"message": "Short status message",
"videoUrl": "https://.../output.mp4",
"jobId": "12345",
"viral_clips": [ ],
"zip_url": "https://.../clips.zip",
"activeTasks": [ ],
"pendingAsyncJobs": [ ],
"verificationPassed": true,
"verificationIssues": [],
"quality": {
"score": 0.94,
"stepsTotal": 7,
"stepsFailed": 0,
"hasExportedMedia": true,
"mediaReachable": true
},
"processingTime": 12.3,
"workingMemory": { }
}
jobId is the numeric task_id (a string of digits), not a task_-prefixed value. quality is a calibrated post-run score block; partial is the top-level partial-success flag (mirrors type: "partial_success").
Set Accept: text/event-stream or ?stream=true. Notable event types:
| Event | Meaning |
|---|---|
heartbeat | 15s keepalive |
status · phase | Phase / status transitions |
thought · reasoning_chunk | Per-step reasoning visibility |
tool_call · tool_result | Action started / finished |
background_job_completed | Async job done |
success / partial_success | Terminal payload |
error | Terminal failure |
Generation actions return immediately with a jobId. Poll until terminal:
JOB_ID=$(jq -r '.jobId // .activeTasks[0].intent.job_id' /tmp/result.json)
while true; do
STATUS=$(curl -sS "$LEVEA_API_URL/api/v1/misc/openclaw/v1/jobs/$JOB_ID" \
-H "Authorization: Bearer $LEVEA_API_KEY" | jq -r '.status')
echo "Status: $STATUS"
case "$STATUS" in completed|succeeded|failed|error|cancelled) break;; esac
sleep 5
done
curl -sS "$LEVEA_API_URL/api/v1/misc/openclaw/v1/jobs/$JOB_ID" \
-H "Authorization: Bearer $LEVEA_API_KEY" | jq '.result'
After any mutating tool call that changed the scene (including partial successes), if no export is already queued the route auto-fires one synchronously — so the response carries a real videoUrl. Read-only and conversational autonomous_edit calls do not trigger auto-export.
Pass requirePlanApproval: true to make the agent stop after planning. It returns status: "awaiting_approval" + populated workingMemory. Resume by sending the same workingMemory with an approval prompt (yes, approve, go, do it, confirm).
| Audience | What they get |
|---|---|
| Creators & influencers | Long videos → TikToks / Reels / Shorts · auto-captions · viral-clip generation · AI thumbnails |
| Podcasters | Video-podcast highlights · audiograms · multi-cam editing · silence + filler-word removal |
| Marketers & agencies | Ad creation at scale · social-first repurposing · brand-overlay automation · multi-platform exports |
| Educators & course creators | Tutorial editing · auto-chapters · title / chapter cards · auto-captions · word-level emphasis |
| YouTubers | Long-form → Shorts pipeline · thumbnail generation · intro/outro automation · chapter markers |
| Sales & SaaS | Product demos · walkthrough highlights · cloned-voice narration |
| Event teams | Webinar / conference highlights · multi-cam stitching · speaker spotlight reels |
| Faith & community | Sermon clips for social · message highlights · multi-platform packaging |
| Legacy (Premiere, DaVinci, CapCut, Descript) | OpenClaw AI Video Editor | |
|---|---|---|
| Interface | Drag, drop, keyframe by hand | One sentence; the agent does the rest |
| Auto-analysis on upload | Manual scene detection + subtitles | Faces, speakers, shots, on-screen text regions, mattes detected automatically |
| "Make this viral" | You build the workflow | Single preset — vertical + captions + silences + tracking |
| Cross-asset search | Filename search | "Find every clip where Alex appears" across the whole library |
| Background replace | Key out, find background, composite | One call |
| Broadcast-grade audio | Manual loudness metering + EQ | Auto LUFS loudness-normalized + true-peak limited, music auto-ducked under speech |
| Editorial reasoning | You decide the climax | Agent surfaces narrative peaks and reaction moments |
| Verification | You eyeball it | Verifier runs after execution; auto-repairs on failure |
| Multi-platform export | One render per ratio | TikTok + Reels + Shorts + YouTube + Instagram in one pass |
| Extensibility | Plugins call external binaries | Typed tools called by name |
This isn't an editor with AI features bolted on — it's an autonomous agent that finishes the edit for you.
requirePlanApproval: true to inspect and approve the plan first.| Formats | |
|---|---|
| Video in | MP4, MOV, WebM (HTTP/HTTPS URLs, YouTube URLs, gallery IDs) |
| Image in | JPG, PNG, WebP |
| Audio in | MP3, WAV, M4A, AAC (or extracted from video) |
| Output | MP4 (export), ZIP (viral clips / multi-platform bundles) |
| Max video length | Up to 3 hours per asset (plan-dependent); sync edits and async generation both supported |
| Recommended resolution | 1080p or 4K; canvas configurable per project |
| Channel | Identifier / link |
|---|---|
| npm (MCP server) | levea-mcp-server |
| MCP Registry | io.github.brajendrak00068/levea-mcp-server (registry) |
| ClawHub plugin | openclaw-ai-video-editor |
| ClawHub skill (agentic) | ai-agentic-video-editor |
| ClawHub skill (Levea brand) | levea-ai-video-editor |
| Sign up + API keys | studio.livecore.ai |
| API base | https://api.livecore.ai |
Versions aren't pinned here —
npx -y levea-mcp-serverand the ClawHub listing always pull the latest, and the linked npm / ClawHub pages show the current version. You never need a specific number.
Support — setup help, integration questions, or issue reports: brajendrak00068@gmail.com
License — MIT
LEVEA_API_URL*Levea API base URL, e.g. https://api.livecore.ai
LEVEA_API_KEY*secretLevea API key. Generate one at https://studio.livecore.ai/
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent