关于 Rendobar
Rendobar 是面向 AI Agent 的媒体处理 MCP 服务,结合托管的 FFmpeg 转换与图像生成、编辑功能。本地 stdio 服务可上传磁盘文件,并返回托管结果。
主要功能
- 01对视频、音频和图像运行 FFmpeg 命令
- 02按 JSON 时间线合成视频
- 03按大小或质量目标压缩媒体
- 04烧录字幕并制作动态字幕
- 05生成、编辑和放大图像
- 06检查媒体并管理处理任务
适用场景
- 01无需安装 FFmpeg 即可静音或剪辑片段
- 02压缩视频以满足邮件大小限制
- 03通过文本提示词生成标题卡
- 04跟踪任务并将结果交付到已连接存储
MCP 相关
服务通过本地 stdio 运行,向客户端提供上传文件、提交媒体任务、查看结果、管理任务和访问已连接存储的工具。它可将本地文件交由 Rendobar 托管基础设施处理。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.rendobar.com/mcpclaude mcp add --transport http com-rendobar https://api.rendobar.com/mcp{"mcpServers":{"com-rendobar":{"type":"http","url":"https://api.rendobar.com/mcp"}}}在 Cursor 中打开{"servers":{"com-rendobar":{"type":"http","url":"https://api.rendobar.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-rendobar":{"type":"http","url":"https://api.rendobar.com/mcp"}}}{"mcpServers":{"com-rendobar":{"serverUrl":"https://api.rendobar.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@rendobar/mcp
为 AI Agent 提供无服务器媒体处理。
Rendobar 官方 Model Context Protocol 服务。
@rendobar/mcp 是 Rendobar 官方的 Model Context Protocol 服务。Rendobar 是一个无服务器媒体处理 API。该服务通过 stdio 在本地运行,并直接读取磁盘上的文件,因此 AI Agent 可以从你的设备中取出文件,在 Rendobar 的基础设施上处理,然后返回一个托管 URL。
Rendobar 涵盖媒体工作的两个方面。
转换现有内容。 对视频、音频或图像运行任意 FFmpeg 命令,就像在本地编写命令一样。检查文件,获取标准化摘要和完整的 ffprobe 报告。通过声明式 JSON 时间线合成视频。压缩至目标大小或质量,编码器会搜索候选编码,并返回符合要求的最小文件。可从 SRT、VTT 或 ASS 字幕中烧录字幕;若未提供字幕,也可以进行转录。
生成所需内容。 使用托管的开放权重扩散模型,根据文本提示词创建图像。根据文字指令编辑最多四张参考图,无需蒙版或坐标。使用单步扩散修复模型进行放大,通过重建细节而不仅仅是锐化来提升图像。这个由模型驱动的同一层也支持动画字幕背后的转录和关键词高亮,因此它的能力不止于图像。
作业列表会随时间扩充,因此本 README 介绍的是类别,而非具体类型。list_job_types 每次调用都会从注册表实时读取当前列表。
此包已发布至 npm,名称为 @rendobar/mcp,并已发布至官方 MCP Registry,名称为 com.rendobar/mcp。
不使用它
你: 将
intro.mp4的前 3 秒静音。
Agent 会让你安装 FFmpeg。接着你开始查找如何根据时间戳控制滤镜,找到 volume=enable='lt(t,3)',又花了几分钟处理 shell 中的引号转义。没人记得这种语法,这正是问题所在。
使用它
你: 将
intro.mp4的前 3 秒静音。
upload_file { "path": "~/clips/intro.mp4" }
// → { "downloadUrl": "https://cdn.rendobar.com/u/abc123/intro.mp4", "sizeBytes": 4821004 }
submit_job { "type": "ffmpeg",
"inputs": { "intro.mp4": "https://cdn.rendobar.com/u/abc123/intro.mp4" },
"params": { "command": "-i intro.mp4 -af \"volume=enable='lt(t,3)':volume=0\" -c:v copy out.mp4" } }
// → { "jobId": "job_9f2a", "status": "waiting" }
get_job { "jobId": "job_9f2a", "wait": true }
// → complete · $0.01 · https://cdn.rendobar.com/o/job_9f2a/out.mp4
Agent 会编写滤镜。Rendobar 会运行它。你的设备无需安装任何东西,而且 -c:v copy 意味着视频流不会重新编码。
另外两个需求
满足文件大小限制。
你: 把
demo.mov压到 25 MB 以下,这样我就能通过电子邮件发送。
upload_file { "path": "~/recordings/demo.mov" }
// → { "downloadUrl": "https://cdn.rendobar.com/u/7c1e/demo.mov", "sizeBytes": 251658240 }
submit_job { "type": "compress.target",
"inputs": { "source": "https://cdn.rendobar.com/u/7c1e/demo.mov" },
"params": { "for": "web", "target": { "maxSize": "25MB" } } }
// → { "jobId": "job_4b8d", "status": "waiting" }
get_job { "jobId": "job_4b8d", "wait": true }
// → complete · https://cdn.rendobar.com/o/job_4b8d/out.mp4 · 23.8 MB
你只需给出大小上限,无需指定比特率。编码器会搜索候选编码,并返回仍能达到质量标准的最小文件,因此你不必猜测 CRF 值来满足邮件服务器的限制。
生成图像。
你: 为一段关于深海潜水的视频制作一张 1920x1080 的标题卡。
submit_job { "type": "image.generate",
"inputs": {},
"params": { "model": "standard",
"prompt": "Title card for a deep sea diving documentary. Shafts of light through deep blue water, small diver silhouette, empty space across the upper third for a title.",
"width": 1920, "height": 1080 } }
// → { "jobId": "job_2fa7", "status": "waiting" }
get_job { "jobId": "job_2fa7", "wait": true }
// → complete · https://cdn.rendobar.com/o/job_2fa7/out.png
inputs 为空,因为没有要转换的内容。指定一个档位(economy、standard、premium),由平台选择模型;也可以指定确切的模型 ID,以使用该模型自己的控件。请求的尺寸会调整为所选模型实际支持的尺寸。
其余功能
还有六个工具,以及调用它们的提示词。
你: Rendobar 实际上能做什么?
list_job_types {}
// → { "jobTypes": [ { "type": "compose", "tag": "Compose",
// "summary": "Render a video from a declarative JSON timeline",
// "acceptsMedia": ["video", "image", "audio"] }, ... ],
// "guidance": "..." }
每次调用时都会从作业注册表实时读取,因此本 README 无需列举作业类型。新增类型无需发布版本,就会出现在这里。
你: 还剩多少额度?
get_account {}
// → { "balance": "$4.86", "balanceUsd": 4.86, "plan": "free", "isPro": false,
// "limits": { "concurrentJobs": 1, "maxFileSize": "500 MB", "jobTimeoutMin": 60 } }
提交耗费较大的任务前,值得先查一下。
你: 我今天早上运行了什么?
list_jobs { "status": "complete", "limit": 5 }
// → { "jobs": [ { "id": "job_9f2a", "type": "ffmpeg", "status": "complete",
// "createdAt": "2026-08-04T09:12:00Z", "cost": "$0.01",
// "output": { "url": "https://cdn.rendobar.com/o/job_9f2a/out.mp4" } } ] }
紧凑的条目足以帮你找到丢失的结果。需要完整输出时,调用 get_job。
你: 停掉那个任务,我选错文件了。
cancel_job { "jobId": "job_9f2a" }
// → { "id": "job_9f2a", "status": "cancelled" }
适用于 waiting、dispatched 和 running 状态的任务。运行中的任务也会停止上游执行,因此你不会为已取消的工作付费。
你: 完成后可以保存到哪里?
list_storage {}
// → { "storage": [ { "id": "prod-media", "provider": "s3", "bucket": "acme-prod-media",
// "access": "deliver", "defaultDestination": true, "pending": false } ],
// "note": "..." }
这是 Storage 页面上已连接的存储桶,不包含 Agent 用不上的终端节点或区域。可在 destinations 中使用其 ID,也可在任意输入中使用 storage://<id>/<path>。
你: 存档存储桶里已经有什么?
list_storage_files { "storageId": "raw-archive" }
// → { "folders": [ { "prefix": "2026/", "uri": "storage://raw-archive/2026/" } ],
// "files": [ { "key": "notes.txt", "size": 800, "lastModified": "2026-09-01T00:00:00.000Z",
// "uri": "storage://raw-archive/notes.txt" } ],
// "cursor": null }
每个条目都带有自己的 storage:// URI,可直接传给 submit_job。传入文件夹的前缀即可深入一层。
安装
Rendobar 提供两个 MCP 服务。根据 Agent 是否需要访问你的文件系统来选择。
@rendobar/mcp(此软件包) | 托管服务(api.rendobar.com/mcp) | |
|---|---|---|
| 传输方式 | stdio,由你的客户端启动 | Streamable HTTP |
| 读取本地文件 | 可以。这正是它存在的原因 | 不可以。服务没有磁盘 |
| 身份验证 | API 密钥 | 在浏览器中进行 OAuth,或使用 Bearer 密钥 |
| 最适用于 | Claude Desktop、Cursor、Cline、Zed | claude.ai、ChatGPT、托管网关 |
托管服务,无需 API 密钥,只需一条命令:
claude mcp add --transport http rendobar https://api.rendobar.com/mcp
本地安装,用于访问文件系统。前往 app.rendobar.com → Settings → API Keys 获取密钥,然后:
claude mcp add rendobar -s user --env RENDOBAR_API_KEY=rb_... -- npx -y @rendobar/mcp
如果已经通过 Rendobar CLI 运行过 rb login,就移除 --env。服务会找到凭据文件。
Claude Desktop、Cursor、Cline、Windsurf
四者使用相同的配置块。Claude Desktop:~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows)。Cursor:所有操作系统均使用 ~/.cursor/mcp.json。Windsurf:所有操作系统均使用 ~/.codeium/windsurf/mcp_config.json。Cline:打开 MCP 面板 → Configure。
在 Linux 上,可使用 Cursor、Windsurf、Cline、Zed、VS Code 或 Continue。Claude Desktop 没有 Linux 版本,因此是此列表中唯一无法在 Linux 上使用的客户端。服务本身可以在 Linux 上正常运行。
{
"mcpServers": {
"rendobar": {
"command": "npx",
"args": ["-y", "@rendobar/mcp"],
"env": { "RENDOBAR_API_KEY": "rb_..." }
}
}
}
之后重启客户端。
Zed、VS Code、Continue
Zed 使用 context_servers 而不是 mcpServers,配置文件为 ~/.config/zed/settings.json:
{
"context_servers": {
"rendobar": {
"source": "custom",
"command": "npx",
"args": ["-y", "@rendobar/mcp"],
"env": { "RENDOBAR_API_KEY": "rb_..." }
}
}
}
VS Code 1.101+ 在 .vscode/mcp.json 中配置,并会提示输入密钥,而不是将其保存下来:
{
"servers": {
"rendobar": {
"command": "npx",
"args": ["-y", "@rendobar/mcp"],
"env": { "RENDOBAR_API_KEY": "${input:rendobarKey}" }
}
},
"inputs": [{ "id": "rendobarKey", "type": "promptString", "password": true, "description": "Rendobar API Key" }]
}
Continue 配置文件为 .continue/mcpServers/rendobar.yaml:
type: stdio
command: npx
args: ["-y", "@rendobar/mcp"]
env:
RENDOBAR_API_KEY: rb_...
可在 macOS、Linux 和 Windows 上运行。每次发布都会在 CI 中对这三个平台进行测试。没有原生依赖,因此架构不受影响:x64 和 arm64 均可运行。需要 Node 20.10 或更高版本;服务会在启动时检查版本,若版本过旧则会显示清晰的提示并退出。
工具
| 工具 | 用途 |
|---|---|
upload_file | 上传本地文件。返回一个可用于 submit_job 的 URL。 |
list_job_types | 实时读取所有有效的作业类型。请先调用此工具。 |
submit_job | 提交任意类型的作业。 |
get_job | 获取状态和结果。传入 wait: true 可进行约 50 秒的长轮询。 |
list_jobs | 查看最近的作业。 |
cancel_job | 取消等待中、已分派或正在运行的作业。 |
get_account | 查看余额、套餐限制和有效作业数量。 |
list_storage | 列出 Storage 页面上已连接的存储桶,供 storage:// 输入和 destinations 使用。 |
list_storage_files | 列出已连接存储桶中的文件夹和文件,以及各自的 storage:// URI。 |
作业类型
ffmpeg 是首选。它接收你在本地编写的命令,在托管基础设施上运行,并返回一个 URL:转码、剪辑、复用、滤镜处理、拼接等,具体取决于标志所允许的操作。将 params.compute 设为 gpu 可强制使用 NVENC 编码(Pro 套餐);也可以保留为 auto,由 Rendobar 将 CUDA 命令分配给 GPU,其他命令分配给 CPU。
此外,还有专门用于时间线合成、按目标大小压缩、字幕烧录、动态字幕、媒体检查、图像生成、图像编辑和图像放大的作业类型。
完整参考文档:rendobar.com/docs/jobs。也可以调用 list_job_types,它会实时读取注册表,始终保持最新。本 README 特意不逐一列出这些类型,因此不会过时。
作业串联
submit_job 的输入可以指向上一个作业的输出,因此多步编辑无需经过本地磁盘中转。对于 ffmpeg 输入,请传入 { job: "job_..." }。对于其他类型,请从 get_job 读取输出 URL 并传入。
自有存储
已连接到 Storage 页面的存储桶中的文件,可通过 storage://<id>/<path> 作为输入。向 submit_job 添加 destinations: ["storage://<id>"],作业完成后输出便会写回存储桶,并在 get_job 的 deliveries 中按存储桶报告。list_storage 会提供 ID,list_storage_files 会提供路径。2026 年 9 月 13 日之前创建的 API 密钥无法读取存储,因此请创建新密钥。通过 rb login 保存的凭据,在 rb 要求访问存储时,需要重新运行一次 rb login。
身份验证
按以下顺序检查三个来源,使用第一个匹配项:
--api-key=<key>标志RENDOBAR_API_KEY环境变量- Unix 系统上的
~/.config/rendobar/credentials.json,Windows 系统上的%APPDATA%\rendobar\credentials.json,由rb login写入(Rendobar CLI 1.1+)
作为 .mcpb 扩展安装时,密钥需填写在扩展自己的设置栏中,上述三种方式均不适用。
服务启动时无需密钥,因此客户端和目录可以列出其工具;启动时也不会进行网络调用。它公布的内容不依赖注册表,因此作业类型列表永远不会被硬编码到构建中。list_job_types 会实时读取列表;由于 GET /jobs/types 是公开接口,无需密钥即可获取。设置密钥之前,其他所有工具都会返回明确的错误。
如果不需要 Rendobar 读取你机器上的文件,可使用托管服务 https://api.rendobar.com/mcp,通过浏览器登录,无需管理密钥。本地服务用于访问磁盘,而密钥是使用它的代价。
遥测
此服务通过 PostHog 的 MCP Analytics SDK 报告匿名使用情况:工具名称、是否成功、耗时,以及 Agent 声明的意图。
它绝不会发送你的参数或响应。文件 URL、作业配置和输出内容会在任何数据离开进程前被剥除。事件不包含账户身份信息,也不会建立个人档案。在 CI 中会自动关闭。
DO_NOT_TRACK=1 # or RENDOBAR_TELEMETRY=0
故障排查
常见问题
macOS 上的 Cursor 找不到 npx。 从 Dock 启动时,Cursor 获取的是 GUI 的 PATH,而非 Shell 的 PATH。请使用绝对路径:"command": "/Users/you/.nvm/versions/node/v20.x/bin/npx"。
Windows 找不到 npx。 如果客户端无法解析 npx,请使用 "command": "npx.cmd"。
工具显示出来了,但调用失败,并提示 "No Rendobar API key configured"。 未设置密钥时,这是预期行为。服务会公布工具,以便客户端列出这些工具,但调用需要凭据。请设置 RENDOBAR_API_KEY、传入 --api-key,或运行 rb login。启动日志会在 stderr 中输出 no_api_key 警告。
服务无法启动。 它会向 stderr 写入 JSON 行。请查看客户端的输出面板,检查是否有 level: "error" 的条目。
隐私政策
完整政策:rendobar.com/privacy。此服务的具体做法如下:
收集的信息。 从标志、环境或凭据文件中读取的 API 密钥。你传给工具的作业输入,以及你指定给 upload_file 的文件,都会发送到 Rendobar API,以执行你请求的作业。匿名遥测包含工具名称、是否成功、耗时,以及 Agent 声明的意图。
不收集的信息。 工具参数和响应。文件 URL、作业配置和输出内容会在任何遥测数据离开进程前被剥除。遥测数据不包含账户身份信息,也不会建立个人档案。除了你明确传给 upload_file 的文件路径外,不会读取你磁盘上的任何内容。
存储。 上传的输入和作业输出会存储在 Rendobar 的存储空间中,并按你的套餐保留期限删除。遥测数据会发送到 PostHog。除 CLI 写入的凭据文件外,服务不会在你的计算机上保留任何内容。
第三方。 Rendobar(作业执行和存储)以及 PostHog(匿名遥测)。设置 DO_NOT_TRACK=1 或 RENDOBAR_TELEMETRY=0,即可完全退出遥测。
联系方式。 [email protected],或在此仓库中提交 issue。
安全
漏洞报告:请参阅 SECURITY.md。
贡献
请参阅 CONTRIBUTING.md。有关 AI 辅助开发,请参阅 AGENTS.md 和 CLAUDE.md。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。