Rendi MCP服务器
一种模型上下文协议(MCP)服务器,通过 编辑API该服务器使AI助手能够在云中运行FFmpeg命令,而无需本地安装或基础设施。
特性
此MCP服务器为基于云的视频和音频处理提供了四种强大的工具:
🎬 运行FFmpeg命令
通过自动文件处理和处理在云中执行单个FFmpeg命令。非常适合简单的视频转换、大小调整、格式更改和基本编辑任务。
⛓️ 运行链式FFmpeg命令
提交多个连续的FFmpeg命令,其中早期命令的输出可以用作后期命令的输入。这非常适合复杂的工作流程,例如:
- 转换视频→ 提取缩略图→ 应用水印
- 修剪视频→ 调整大小→ 提取音频→ 转换为MP3
链式命令比单独运行命令更有效,因为它们共享系统资源。
📊 轮询FFmpeg命令
检查已提交命令的状态并检索结果,包括:
- 处理状态(排队、正在处理、成功、失败)
- 执行时间和性能指标
- 输出文件元数据(分辨率、持续时间、比特率、编解码器等)
- 已处理文件的直接下载URL
🗑️ 删除命令文件
处理完Rendi存储中的输出文件后,将其清理干净。这有助于管理存储空间,并使您的工作空间保持有序。
Rendi是什么?
伦迪 是一个基于云的FFmpeg API服务,允许您运行FFmpeg命令,而无需在本地安装FFmpeg。它提供:
- ☁️ 基于云的处理基础设施
- 🚀 可扩展的vCPU分配(不超过您的帐户限制)
- 📦 自动文件存储和管理
- 🔒 安全的API密钥身份验证
- ⚡ 使用可配置资源进行快速处理
先决条件
- Rendi API密钥(在 rend.dev)
- MCP兼容客户端(Claude Desktop、Cline等)
安装
通过史密瑟里
安装此服务器的最简单方法是 史密瑟里:
npx @smithery/cli install rendi-mcp-server安装过程中将提示您输入Rendi API密钥。
手动安装
- 克隆此存储库:
git clone https://github.com/ctaylor86/rendi-mcp-server.git
cd rendi-mcp-server- 安装依赖项:
npm install- 构建项目:
npm run build- 将MCP客户端配置为使用Rendi API密钥的此服务器。
配置
此服务器需要一个配置参数:
- rendApiKey (必需):用于身份验证的Rendi API密钥
Claude桌面配置示例
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"rendi": {
"command": "node",
"args": ["/path/to/rendi-mcp-server/dist/index.js"],
"env": {
"RENDI_API_KEY": "your-rendi-api-key-here"
}
}
}
}用法示例
简单视频转换
Use the run_ffmpeg_command tool to convert a video to MP4:
- Command: "-i {{in_1}} -c:v libx264 -c:a aac {{out_1}}"
- Input files: {"in_1": "https://example.com/video.avi"}
- Output files: {"out_1": "converted.mp4"}从视频中提取缩略图
Use the run_ffmpeg_command tool to extract a thumbnail:
- Command: "-i {{in_1}} -ss 00:00:05 -vframes 1 {{out_1}}"
- Input files: {"in_1": "https://example.com/video.mp4"}
- Output files: {"out_1": "thumbnail.jpg"}具有链式命令的复杂工作流
Use the run_chained_ffmpeg_commands tool for a multi-step workflow:
1. Concatenate two videos
2. Extract a thumbnail from the result
Commands:
[
"-i {{in_1}} -i {{in_2}} -filter_complex \"[0:v][1:v]concat=n=2:v=1:a=0[v]\" -map [v] {{out_1}}",
"-i {{out_1}} -ss 00:00:10 -vframes 1 {{out_2}}"
]
Input files: {
"in_1": "https://example.com/part1.mp4",
"in_2": "https://example.com/part2.mp4"
}
Output files: {
"out_1": "concatenated.mp4",
"out_2": "thumbnail.jpg"
}检查命令状态
After submitting a command, use poll_ffmpeg_command with the returned command_id to check status and get results.清理文件
When you're done with the output files, use delete_command_files with the command_id to free up storage.重要说明
文件命名规范
Rendi对文件使用特定的别名系统:
- 输入文件:必须使用以开头的键
in_(例如。,in_1,in_video,in_audio) - 输出文件:必须使用以开头的键
out_(例如。,out_1,out_result,out_thumbnail) - In命令:参考文件使用
{{alias}}格式(例如。,{{in_1}},{{out_1}})
输入文件要求
- 输入文件必须是可公开访问的URL
- 支持的来源:直接URL、谷歌云端硬盘、Dropbox、S3、Rendi存储等。
- 文件名应出现在URL的末尾
输出文件存储
- 输出文件将无限期存储在Rendi的服务器上,直到您删除它们
- 每个输出文件都包含一个直接下载URL
- 完成后,使用delete_command_files工具进行清理
处理限制
- 每条链最多10个命令
- 默认超时:每个命令300秒(可配置)
- 默认vCPU:8(可配置到您的帐户限制)
发展
以开发模式运行
npm run dev构建
npm run build启动生产服务器
npm start建筑
此服务器是使用以下方式构建的:
- TypeScript 用于类型安全开发
- 快速 用于HTTP服务器功能
- @模型上下文协议/sdk 用于MCP协议实现
- @史密斯/sdk Smithery集成
- 黄道 用于模式验证
- 码头工人 用于集装箱化部署
API 参考
有关仁迪API的详细信息,请访问:
许可证
麻省理工学院
支持
有关此MCP服务器的问题,请在GitHub上打开问题。
有关仁迪API的支持,请访问 rend.dev 或检查他们 文档.
贡献
欢迎投稿!请随时提交拉取请求。
