AutoKeren MCP — AI Video Studio for Agents
Give any AI agent a complete, autonomous video production studio.
AutoKeren MCP turns Claude Code, opencode, Cursor, Codex, or any MCP client into an end-to-end video producer: write the script, generate images, voice the narration, source real YouTube footage, QA the result with Gemini, and ship a finished 1080p MP4 — all from a single MCP server.
- Endpoint:
https://mcp.autokeren.com(Streamable HTTP) - Auth: self-service API keys — studio.autokeren.com/settings
- Agent skill (one URL, everything): mcp.autokeren.com/skill.md
- Landing: mcp.autokeren.com
Quickstart
Claude Code:
claude mcp add --transport http autokeren https://mcp.autokeren.com \
--header "Authorization: Bearer ak_YOUR_KEY"
opencode (~/.config/opencode/opencode.json):
{
"mcp": {
"autokeren": {
"type": "remote",
"url": "https://mcp.autokeren.com",
"headers": { "Authorization": "Bearer ak_YOUR_KEY" }
}
}
}
Cursor / Windsurf (MCP Settings → JSON):
{
"mcpServers": {
"autokeren": {
"url": "https://mcp.autokeren.com",
"headers": { "Authorization": "Bearer ak_YOUR_KEY" }
}
}
}
Any HTTP client:
curl -X POST https://mcp.autokeren.com \
-H "Authorization: Bearer ak_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_workflow","arguments":{}}}'
Then just tell your agent: "Read https://mcp.autokeren.com/skill.md and follow it."
The 54 Tools
| Category | What it does |
|---|---|
| Pipeline (19) | get_workflow, estimate_cost, create_project, load_scenes, generate_assets, render_video, set_scene_media, attach_scene_media_batch (50 scenes/call), verify_render, get_render_errors, get_usage, list_assets (browse your asset library for revisions)... — full production + billing telemetry |
| Media Generation (7) | generate_image, generate_speech, generate_video_clip (Veo/Seedance), ElevenLabs image/video flows with async polling |
| Research & Sourcing (6) | youtube_search, yt_dlp_download, index_shots (Gemini watches & timestamps every shot), cut_video (per-scene clips via separate:true), extract_frames, fetch_to_r2 |
| AI Vision & QA (4) | check_vision (free), analyze_media, check_video — full-video audit that classifies real footage vs AI stills per time range, review_video (production score /10) |
| Packaging & Upload (3) | suggest_packaging (free A/B titles + thumbnail + SEO), get_presigned_upload (bypass 100MB limits), prepare_remotion |
| Premium Render (4) | render_remotion (one-shot async) + render_remotion_result (poll), or the incremental path: render_remotion_slide (ONE scene, full motion graphics, 0.5 CR, 9:16 Shorts supported) → QA per slide → stitch_remotion_slides (1 CR) |
Why agents love it
- Verified uploads everywhere — every media URL the server returns is HEAD-verified in R2 (
verified: true);set_scene_mediahard-rejects dead URLs (404/410). No more silent AI-image fallbacks. - Auto-refund on failure — credits never leak on failed generations; the ledger records every refund with a reason.
- Honest QA —
check_videoreportsmedia_type_report: which time ranges contain real moving footage vs still images with camera motion. Your agent can't fool itself. - 0-CR free tier — Cloudflare models (script + image) + Aura TTS produce a complete video for zero credits.
- Async premium renders — submit returns
poll_idinstantly; pollrender_remotion_resultlike a pro. - Per-slide premium renders — render one Remotion slide at a time (seconds per slide), QA each before committing, stitch at the end. Failure isolation + per-slide QA.
- Attached media is sacred —
generate_assetsnever overwrites media you attached (official photos, sourced footage); it only fills what's missing. - Asset Library (both ways) — every verified MCP output is auto-indexed into the dashboard library, and
list_assetslets agents browse + reuse existing assets for revisions. - All the formats —
create_project({aspect_ratio: "9:16"})for Shorts (portrait canvas + portrait images),render_video({resolution: "4k"})for 3840x2160 masters. - Battle-tested — hardened by live agent audits; every hard-won rule is baked into skill.md.
Pricing snapshot
| Stage | Free (0 CR) | Paid |
|---|---|---|
| Script | @cf/zai-org/glm-5.3-flash | gemini 0.05–0.1 CR |
| Image | @cf/black-forest-labs/flux-2-klein-9b | gemini-3-pro-image 8 CR, runway 5–170 CR |
| TTS | @cf/deepgram/aura-2-en | ElevenLabs 2–10 CR, Gemini TTS 1 CR |
| Video clip | — | Runway 60–740 CR per 5s (duration-scaled) |
Self-service top-up (QRIS/VA for Indonesia, card for international) via topup_credits or the studio. Live prices: list_models.
✍️ Script Generation — AI writes the script
create_script (Gemini) writes + auto-saves scenes. Models (billed per script):
gemini-4-argon— PREMIUM flagship reasoning, 1M context — 10 CRgemini-3-flash-preview— default, fast — 0.1 CR |@cf/qwen,@cf/glm-5.3-flash— FREE
Research feeding: send distilled notes 3-10K chars (facts/numbers/quotes — not raw page dumps), hard cap 50K. Or research: true (default) for auto Google-Search grounding. load_scenes still available for hand-written scripts.
🎨 Motion Graphics Templates — data-driven slides
11 data-driven templates: stat-counter (count-up prices/stats), comparison-chart (racing bars), line-chart, progress-bars, cinematic-title-intro, end-card, subscribe-reminder, gallery-grid (2-6 photos), lower-third, quote-card, glitch-text.
list_templates() → see schemas
render_template_slide({template_id: "stat-counter", data: {value: 19990, prefix: "€", label: "..."}, output_r2key: "..."})
stitch_remotion_slides({slides: [...]}) ← mix template + regular slides in ONE video
Adapted from reactvideoeditor/remotion-templates (free). ~0.5 CR per slide.
🎬 Film Mode (cinematic_film)
Consistent-character short films, end to end:
generate_character_sheet— multi-angle identity lock (one-time per character)extract_last_frame— frame chaining: scene N's last frame → scene N+1's first frame (continuous motion)cinematic_filmscript gen — three-act structure, character bible, shot/lighting language, dialogue- Full MCP playbook in
skill.md(FILM MODE section)
🎙️ Voice Routing — 45 verified voices
Per-language voice catalog; unknown names are rejected (no silent Adam fallback):
| Language | Voices |
|---|---|
| English (US) | Adam, Antoni, Brian, Dave, Callum, Harry, James, Jeremy, Liam, Michael, Sam, Sarah, Rachel, Nicole, Charlie |
| English (UK) | Daniel, Freya, George, Charlotte, Dorothy, Jessie |
| Deutsch (native) | Otto, Leon Stern, Leonie, Christian, Lea, Joha |
| Multilingual (incl. Indonesian) | Clyde, Arnold, Domi, Ethan, Fin, Mimi, Matilda, Grace, Giovanni, Serena, Thomas, Drew, Elli, Emily, Gigi, Glinda, Matthew, Patrick |
Persona → Voice auto-mapping: automotive aggressive + German → Leon Stern, nuanced + German → Otto (EN: Callum/George, ID: Arnold/Matilda). No manual voice needed — createScript stamps the persona automatically.
Links
- 🤖 Agent skill: mcp.autokeren.com/skill.md — the complete playbook in one URL
- ⚙️ Get an API key: studio.autokeren.com/settings
- 🎬 Studio (web app): studio.autokeren.com
- 🏠 WebMCP:
autokeren.com/mcp— browser agents auto-discover viadocument.modelContext
Status & reliability
- MCP protocol versions 2024-11-05 / 2025-03-26 / 2025-06-18 (echoed on
initialize) - JSON-RPC notifications per spec (202 + empty body), strict-client compatible (opencode verified)
- Optional-field discipline:
structuredContentonly when present - Runs on Cloudflare Workers + Containers (Region: Earth)
AutoKeren MCP is a hosted service. This repo is the public documentation, onboarding, and registry home — the live server is operated at mcp.autokeren.com.