Narrated 4K 60 fps films from a brief, realistic or animation, made from your assistant via MCP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Kleo is a remote Model Context Protocol server that renders YouTube videos and Shorts. A user connects one URL to Claude, ChatGPT, Grok, Claude Code, Cursor, VS Code, OpenCode or Gemini CLI, presses one button to get in (no email, no password, no invite code) and asks for a video in plain language. The render runs on a GPU machine rented for that job only (Vast.ai) with the Keou motion-design engine; the result comes back as signed download links (MP4, .srt subtitles, thumbnail) that last 7 days.
The server runs entirely on Cloudflare (Workers + KV + D1 + R2 + Workers AI + Cron), free plan. Production address: https://mcp.kleooai.com/mcp (Streamable HTTP, OAuth 2.1; the Worker itself answers at https://kleo-mcp.plural-juice.workers.dev/mcp). The public site (../kleo-site) reads that address from its config.json.
| Part of the film | Model |
|---|---|
| Moving footage (every shot of a film) | ByteDance Seedance 2.5, image-to-video from the shot's own frame |
| Frames and character sheets (from the user's own photos when they give some) | Google Nano Banana Pro |
| Picture check | a vision model compares every picture with the user's request before anything is filmed |
| Music (on request) | Suno |
| Narration | Kokoro voices, English or Italian |
| Finish | 4K 60 fps; optional AI upscale (Real-ESRGAN + RIFE) on the rendering GPU |
| Where | How |
|---|---|
| Claude (web/desktop) | Settings β Connectors β Add custom connector β https://mcp.kleooai.com/mcp |
| Claude Code | claude mcp add --transport http kleo https://mcp.kleooai.com/mcp |
| ChatGPT | Settings β Connectors β Developer mode β Create β https://mcp.kleooai.com/mcp, OAuth |
| Cursor / VS Code / OpenCode / Gemini CLI | an http server named kleo with the same URL |
| MCP Registry | com.kleooai/kleo (see server.json) |
One button signs you in (no email, no password); 7 credits arrive with the account. Guides with screenshots: https://kleooai.com/connect/
| Tool | What it does |
|---|---|
kleo_adapt_prompt | Called first. Reads the request against Kleo's intake (subject, length, format, look; audience, tone, what must appear), answers with the questions the request leaves open, and once everything is known hands the assistant the producer's method for writing the treatment. |
kleo_list_templates | The ten templates (format, length range, voices, credit cost) and the credits left on the account. |
kleo_storyboard_guide | The storyboard format Kleo renders (styles, scene kinds, beats, icons, voices, rules) with examples, so the assistant can write an original storyboard. Optional: without one, Kleo plans the video from the prompt. |
kleo_create_video | Queues a render from a template, a prompt and (optionally) a storyboard. Returns job_id, eta_min and the credits charged at once; nothing is charged on error. |
kleo_wait_for_video | Waits (as long as the calling client allows: 45 s for ChatGPT/Grok, up to 5 min for OpenCode) and returns the links as soon as the video is ready, so the assistant keeps its spinner and delivers on its own. |
kleo_get_job | State, current track, percent and minutes left; without job_id, the recent videos of the account. |
kleo_get_result | Signed download links for a finished job. |
kleo_generate_thumbnail | Not enabled yet in the beta (every render already includes a thumbnail): records the request and returns a notice. |
kleo_cancel_job | Cancels a queued or running job and refunds the unused credits. |
kleo_account | Credits left, the read-only link to the account page (/credits) and the "Kleo key" that carries the account to another browser. The link is safe to paste anywhere; the key is the account. |
Credits (src/templates.ts): 1 credit = 2 seconds of film, rounded up, 10 credits minimum; the film is made for accounts that bought a credit pack (β¬5 = 10 credits, β¬15 = 35, β¬40 = 100, one-off, no subscription). The animatic (the same storyboard with the camera moving over drawn frames, no generated clip, 15β60 s) costs 5 credits and is open to every account: the 7 credits that come with a new account pay for one. tariffSentence() is the sentence every page quotes. Accounts are anonymous: no email and no password, just an HMAC-signed handle (src/accounts.ts) kept in a cookie, which doubles as the pasteable "Kleo key". The D1 table invites survives only as an optional gift: a code typed into the collapsed field of the sign-in page adds credits on top of the free ones, and an unknown code never blocks anyone. Output: 2160Γ3840 for 9:16, 1920Γ1080 for 16:9, 60 fps, H.264 + AAC. A Short takes about 10β20 minutes including the machine boot; a long video takes proportionally longer, and the timeout a render is given follows the length it was quoted (jobTimeoutMin), never a flat number below it.
Render backends (RENDER_BACKEND): vast (production: real GPUs, costs money), mock (simulated one-minute render with placeholder files, free; the server tells every client that renders are simulated), pool (only external runners), manual (a container you start by hand; used by test/worker-e2e.mjs).
worker/Dockerfile.keou builds ghcr.io/tonnooooo/kleo-worker:keou (about 11 GB: Keou engine, Chromium, Node, ffmpeg, Kokoro voices, faster-whisper). GitHub Actions (.github/workflows/worker-image.yml) builds and pushes it on every push to main that touches worker/, or by hand from the Actions tab. The package must stay public on ghcr.io so Vast.ai machines can pull it. Details: worker/README-keou.md.
Connect Claude Code to the local server: claude mcp add --transport http kleo-local http://localhost:8787/mcp, then /mcp β Kleo β Authenticate and press the button; there is nothing to type.
Everything is provisioned: npm run deploy publishes wrangler.jsonc (every variable is explained there in a one-line comment). First-time setup, secrets and the step-by-step guide for the owner (Italian): DEPLOY.md. Secrets: INTERNAL_SECRET, VAST_API_KEY (set); POOL_SECRET (pool fallback); RESEND_API_KEY + NOTIFY_FROM (email notifications; not set, so notify_email is currently a no-op); TURNSTILE_SECRET (not set, so the bot check on the sign-in page is skipped). INTERNAL_SECRET must never be rotated: it signs the account handles as well as the download links, so a new value detaches every user from their credits.
To switch the GPUs off for a free demo, set RENDER_BACKEND to mock in wrangler.jsonc and deploy. To stop the spending right now, with no deploy: POST /internal/admin/pause with Authorization: Bearer <INTERNAL_SECRET> (/internal/admin/resume to start again). See DEPLOY.md section 5.
Credits are debited when a job is queued and refunded on failure or cancellation; at most MAX_JOBS_PER_USER open jobs per account and MAX_CONCURRENT_GPUS instances in total; every job has a hard JOB_TIMEOUT_MIN after which the instance is destroyed, and a machine that stays silent for START_TIMEOUT_MIN after rental is destroyed and the job requeued; the worker carries its own watchdog and destroys its instance with Vast's restricted CONTAINER_API_KEY; after a "no credit / no offer" answer Vast is left alone for VAST_RETRY_MIN; download links are HMAC-signed and expire with the files; a prompt filter blocks forbidden content before any GPU money is spent.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kleo)<a href="https://allmcps.com/mcp/kleo"><img src="https://allmcps.com/api/badge/kleo?style=directory" alt="Kleo on AllMCPs" /></a>