mcpField
K
Kleo

Kleo

远程服务
kleooai.com媒体与设计01 天前更新

关于 Kleo

Kleo 是远程 MCP 服务,可根据自然语言简述生成 YouTube 视频和 Shorts,面向通过 AI 客户端制作视频的用户。它支持故事板或自动规划,并返回带有效期的 MP4、字幕和缩略图下载链接。

主要功能

  1. 01将简述整理为视频制作需求
  2. 02查看模板、格式及积分余额
  3. 03提供故事板规范或自动规划视频
  4. 04提交渲染任务并查询进度
  5. 05获取成片、字幕和缩略图链接
  6. 06取消任务并退还未使用积分

适用场景

  1. 01根据文字简述制作 YouTube Shorts
  2. 02为视频编写故事板并发起渲染
  3. 03查询排队任务状态和预计剩余时间
  4. 04下载已完成视频及字幕

MCP 相关

Kleo 通过带 OAuth 2.1 的远程 Streamable HTTP MCP 端点提供视频制作工具。客户端可创建、等待、查询或取消渲染任务,并获取成片下载链接。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.kleooai.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Kleo MCP 服务

Kleo 是一个远程 Model Context Protocol 服务,可渲染 YouTube 视频和 Shorts。用户将一个 URL 连接到 Claude、ChatGPT、Grok、Claude Code、Cursor、VS Code、OpenCode 或 Gemini CLI,按下一个按钮即可进入(无需邮箱、密码或邀请码),然后用通俗语言描述想要的视频。渲染任务会在仅为此任务租用的 GPU 机器(Vast.ai)上运行,并使用 Keou 动态设计引擎;完成后会返回带签名的下载链接(MP4、.srt 字幕、缩略图),有效期为 7 天。

服务完全运行在 Cloudflare 上(Workers + KV + D1 + R2 + Workers AI + Cron),使用免费套餐。生产环境地址:https://mcp.kleooai.com/mcp(Streamable HTTP、OAuth 2.1;Worker 本身的响应地址为 https://kleo-mcp.plural-juice.workers.dev/mcp)。公开网站(../kleo-site)从其 config.json 中读取该地址。

模型

影片部分模型
动态画面(影片中的每个镜头)ByteDance Seedance 2.5,根据镜头自身的画面进行图生视频
画面和角色设定图(用户提供照片时使用其照片)Google Nano Banana Pro
画面检查视觉模型会在拍摄前将每张画面与用户的要求进行比较
音乐(按需提供)Suno
旁白Kokoro 语音,支持英语或意大利语
成片4K 60 fps;可选在渲染 GPU 上进行 AI 升频(Real-ESRGAN + RIFE)

连接

平台方法
Claude(网页/桌面)Settings → Connectors → Add custom connector → https://mcp.kleooai.com/mcp
Claude Codeclaude mcp add --transport http kleo https://mcp.kleooai.com/mcp
ChatGPTSettings → Connectors → Developer mode → Create → https://mcp.kleooai.com/mcp,OAuth
Cursor / VS Code / OpenCode / Gemini CLI使用同一 URL,添加名为 kleo 的 http 服务
MCP Registrycom.kleooai/kleo(参见 server.json)

按下一个按钮即可登录(无需邮箱或密码);账户会获得 7 个积分。附截图的指南:https://kleooai.com/connect/

工具

工具功能
kleo_adapt_prompt首先调用。根据 Kleo 的需求收集表(主题、长度、格式、风格;受众、语气、必须包含的内容)检查请求,提出请求中尚未明确的问题,并在所有信息齐备后将制作方编写影片方案的方法交给助手。
kleo_list_templates十种模板(格式、长度范围、配音、积分费用)以及账户剩余积分。
kleo_storyboard_guideKleo 渲染所用的分镜格式(风格、场景类型、节拍、图标、配音、规则)及示例,供助手编写原创分镜。可选:如果不提供,Kleo 会根据提示词规划视频。
kleo_create_video根据模板、提示词和(可选的)分镜将渲染任务加入队列。会立即返回 job_id、eta_min 和扣除的积分;出错时不会扣除积分。
kleo_wait_for_video等待视频就绪(时长不超过调用客户端允许的范围:ChatGPT/Grok 为 45 s,OpenCode 最长为 5 min),并在视频就绪后立即返回链接,让助手继续显示加载动画并自行交付视频。
kleo_get_job返回状态、当前进度、百分比和剩余分钟数;不提供 job_id 时,返回账户最近的视频。
kleo_get_result返回已完成任务的签名下载链接。
kleo_generate_thumbnailBeta 版尚未启用(每次渲染都会附带缩略图):记录请求并返回通知。
kleo_cancel_job取消排队中或正在运行的任务,并退还未使用的积分。
kleo_account返回剩余积分和账户页面的只读链接(/credits)。该链接可安全地粘贴到任何地方。用于将账户带到其他浏览器的“Kleo key”就是账户本身,因此绝不会通过 MCP 返回:用户可以在 Kleo Studio 中查看(账户 → Kleo key),也可以在连接时使用的浏览器中访问 /credits 查看。

积分(src/templates.ts):1 积分 = 2 秒影片时长,向上取整,最低 10 积分;影片面向购买积分包的账户制作(€5 = 10 积分,€15 = 35 积分,€40 = 100 积分,一次性购买,不订阅)。Animatic(同一份分镜,镜头在绘制帧上移动,不生成片段,时长 15–60 s)收费 5 积分,对所有账户开放:新账户赠送的 7 积分足以制作一部。tariffSentence() 是每个页面引用的句子。账户为匿名账户:无需电子邮件和密码,只使用保存在 cookie 中的 HMAC 签名句柄(src/accounts.ts),它也可作为便于粘贴的“Kleo key”。D1 表 invites 仅作为可选赠礼保留:在登录页面展开的字段中输入代码,即可在免费积分之外获得额外积分;未知代码绝不会阻止任何人使用服务。输出:9:16 为 2160×3840,16:9 为 1920×1080,60 fps,H.264 + AAC。一部 Short 大约需要 10–20 分钟(包括机器启动时间);长视频所需时间按比例增加,渲染任务的超时时间会根据报价时长设定(jobTimeoutMin),绝不会低于该时长并采用固定值。

任务流程

client (Claude…) ──OAuth 2.1──▶ /mcp  (src/mcp.ts; login page in src/auth.ts)
                                │  D1: users, credits, gift codes, jobs, audit · KV: OAuth tokens · R2: rendered files
                                │  cron every minute (src/orchestrator.ts):
                                │    1. a storyboard for each queued job (Workers AI, src/storyboard.ts; validated by src/keou-contract.ts)
                                │    2. one Vast.ai instance per job (src/backends/vast.ts, image VAST_IMAGE)
                                │    3. watch running jobs, apply timeouts, purge expired files
                                ▼
                     Vast.ai instance → worker/kleo_worker.py (Keou engine) → uploads → POST /internal/jobs/:id/done → self-destroys
                     Free fallback: a GitHub Actions runner (.github/workflows/render-pool.yml) claims jobs that Vast could not start
                     (POST /internal/pool/claim with POOL_SECRET) and runs the same worker image.

渲染后端(RENDER_BACKEND):vast(生产环境:使用真实 GPU,需付费)、mock(模拟一分钟渲染并使用占位文件,免费;服务器会告知每个客户端渲染为模拟结果)、pool(仅使用外部运行器)、manual(手动启动的容器;供 test/worker-e2e.mjs 使用)。

Worker 镜像

worker/Dockerfile.keou 构建 ghcr.io/tonnooooo/kleo-worker:keou(约 11 GB:Keou 引擎、Chromium、Node、ffmpeg、Kokoro 配音、faster-whisper)。GitHub Actions(.github/workflows/worker-image.yml)会在每次向 main 推送涉及 worker/ 的更改时自动构建并推送该镜像,也可以在 Actions 选项卡中手动触发。该软件包必须在 ghcr.io 上保持公开,以便 Vast.ai 机器拉取。详情:worker/README-keou.md。

本地开发

npm install
npm run db:migrate:local
npm run dev                # http://localhost:8787 with .dev.vars: simulated renders, no GPU, bundled storyboard (STORYBOARD_FIXTURE=example)

将 Claude Code 连接到本地服务:claude mcp add --transport http kleo-local http://localhost:8787/mcp,然后选择 /mcp → Kleo → Authenticate 并按下按钮;无需输入任何内容。

测试

npm run test:smoke                                                  # starts its own wrangler dev on port 8799: OAuth, tools, queue, simulated render, signed download, cancel + refund
node --test test/keou-contract.test.mjs test/storyboard.test.mjs    # unit tests: storyboard validator and generator (offline, fake AI)
node --test test/accounts.test.mjs test/credits.test.mjs            # sign-in, signed handles, free credits, daily caps, credit lifecycle (offline, sqlite)
node test/worker-e2e.mjs                                            # real Keou render inside the container (podman, no GPU) against a local server in manual mode
node test/vast-e2e.mjs                                              # one real 20 s job on Vast.ai: costs a few cents, see the file header for the setup
npm run typecheck

部署

所有内容均已配置:npm run deploy 会发布 wrangler.jsonc(其中每个变量都有一行注释说明)。首次设置、密钥以及面向所有者的分步指南(意大利语):DEPLOY.md。密钥:INTERNAL_SECRET、VAST_API_KEY(已设置);POOL_SECRET(资源池备用项);RESEND_API_KEY + NOTIFY_FROM(邮件通知;尚未设置,因此 notify_email 目前不起作用);TURNSTILE_SECRET(尚未设置,因此登录页面会跳过机器人检查)。切勿轮换 INTERNAL_SECRET:它既用于签署账户句柄,也用于签署下载链接,因此更换后所有用户都会与其积分脱离关联。

如要关闭 GPU,运行免费演示,请在 wrangler.jsonc 中将 RENDER_BACKEND 设为 mock,然后部署。如要立即停止开支且无需部署:使用 Authorization: Bearer <INTERNAL_SECRET> 调用 POST /internal/admin/pause(调用 /internal/admin/resume 可重新启动)。参见 DEPLOY.md 第 5 节。

安全措施

任务进入队列时会扣除积分,失败或取消时会退还;每个账户最多有 MAX_JOBS_PER_USER 个未完成任务,总计最多运行 MAX_CONCURRENT_GPUS 个实例;每个任务都有硬性超时 JOB_TIMEOUT_MIN,超时后实例会被销毁;机器租用后若在 START_TIMEOUT_MIN 时间内一直无响应,也会被销毁并重新将任务加入队列;Worker 自带看门狗,并使用 Vast 受限的 CONTAINER_API_KEY 销毁其实例;Vast 返回“无积分/无报价”后,会等待 VAST_RETRY_MIN 再尝试;下载链接经过 HMAC 签名,并会随文件一起过期;提示词过滤器会在产生任何 GPU 费用之前拦截禁止内容。

在上述限制之上,还有 DAILY_GPU_BUDGET_USD:租用任何机器之前,编排器会将今日租用费用(包括已完成、失败和取消的任务,因为每次拆除机器时都会写入 cost_usd)与当前运行的付费机器已产生的承诺费用相加(每台机器均按其自身超时时长,以 VAST_MAX_DPH 计价;免费资源池任务不计入承诺费用)。超出上限时,会暂停租用一小时,同时让任务保留在队列中的原有位置。该数值仍是估算值:价格上限只是一个上界,实际金额以 Vast.ai 余额为准。新账户每天都有数量上限(MAX_NEW_USERS_PER_DAY),每个地址每天也有数量上限(MAX_NEW_USERS_PER_IP_DAY,基于地址哈希);每个账户每天的任务数有限(MAX_JOBS_PER_DAY,仅统计未退款的任务);每个地址每分钟的登录尝试次数也有限(SIGNUP_LIMIT 速率限制绑定项,以地址哈希为键,绝不会使用地址本身)。所有限制均在 Worker 内运行,且仅针对 /authorize:绝不会设置在 /mcp 前,因为 403 或 429 会在应用收到请求之前破坏连接器。

文档

  • DEPLOY.md — 当前状态、上线和日常运维(意大利语)
  • docs/MCP-GUIDA.md — MCP 的介绍、各客户端的连接方式以及七个工具(意大利语)
  • docs/ARCHITETTURA.md — 原始可行性分析和架构(意大利语)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。