FFmpeg Python MCP Server
Provides tools for video and audio processing using FFmpeg, including format conversion, cutting, merging, hardware acceleration (Intel QSV, NVIDIA NVENC), stream processing, and GIF generation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FFmpeg Python MCP Serverconvert video.mp4 to audio.mp3"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FFmpeg Python MCP 服务器
📋 项目简介
这是一个基于 Model Context Protocol (MCP) 的 FFmpeg 视频音频处理服务器。该项目为 AI 助手提供了强大的视频和音频处理能力,包括格式转换、切割合并、特效添加等功能,支持硬件加速处理。
🌟 主要特性
🎬 完整的视频音频处理功能 - 转换、切割、合并、压缩等
⚡ 硬件加速支持 - Intel QSV、NVIDIA NVENC 等
🔄 异步并发处理 - 支持多任务并行执行
🌐 流媒体支持 - M3U8 合并、直播流处理
🎨 视频特效 - 水印、GIF转换、变速等
🤖 AI友好接口 - 标准 MCP 协议,易于集成
Related MCP server: FFmpeg MCP
🚀 快速开始
前置要求
Python 3.12+
FFmpeg - 请先安装 FFmpeg:
# macOS brew install ffmpeg # Ubuntu/Debian sudo apt update && sudo apt install ffmpeg # Windows # 从 https://ffmpeg.org/download.html 下载uv 包管理器:
curl -LsSf https://astral.sh/uv/install.sh | sh
安装和运行
克隆项目
git clone https://github.com/mabh111111/ffmpeg_python_mcp.git cd ffmpeg_python_mcp安装依赖
uv sync运行 MCP 服务器
# 开发模式(推荐用于测试) uv run mcp dev main.py # 或直接运行 uv run python main.py
🔧 MCP 配置和使用
什么是 MCP?
Model Context Protocol (MCP) 是一个标准化协议,允许 AI 助手(如 Claude、ChatGPT 等)安全地访问外部工具和资源。
在 AI 客户端中配置
配置 Claude Desktop
打开 Claude Desktop 配置文件:
# macOS ~/Library/Application Support/Claude/claude_desktop_config.json # Windows %APPDATA%\Claude\claude_desktop_config.json添加 MCP 服务器配置:
{ "mcpServers": { "ffmpeg-processor": { "command": "uv", "args": ["run", "python", "/path/to/ffmpeg_python_mcp/main.py"], "cwd": "/path/to/ffmpeg_python_mcp" } } }重启 Claude Desktop
配置其他 MCP 客户端
对于支持 MCP 的其他客户端,使用以下连接信息:
命令:
uv run python main.py工作目录: 项目根目录
协议: stdio
验证连接
运行服务器后,你应该能在 AI 助手中看到以下可用工具:
视频音频提取和转换工具
切割和合并功能
硬件加速处理
视频特效和压缩
🛠️ 主要功能
📤 音频提取
# 从视频提取音频
extract_audio_from_video(video_path, output_path?, audio_format?, audio_quality?)
# 提取音频片段
extract_audio_segment(video_path, start_time, duration, output_path?, audio_format?)🔄 格式转换
# 视频格式转换
convert_video_format(input_path, output_path?, output_format?, video_codec?, audio_codec?, quality?)
# 音频格式转换
convert_audio_format(input_path, output_path?, output_format?, audio_codec?, bitrate?)✂️ 切割合并
# 视频切割
cut_video_segment(input_path, start_time, end_time?|duration?, output_path?)
# 视频合并
merge_videos(video_paths, output_path?, merge_method?)🎨 视频特效
# 转换为GIF
video_to_gif(input_path, output_path?, start_time?, duration?, width?, fps?, quality?)
# 添加水印
add_watermark(input_path, watermark_path, output_path?, position?, opacity?, margin?)
# 调整分辨率
resize_video(input_path, width, height, output_path?, keep_aspect_ratio?)🚀 硬件加速
# 检查硬件加速支持
check_hardware_acceleration()
# QSV硬件加速转换
convert_video_with_qsv(input_path, output_path?, output_format?, qsv_encoder?, quality?)🌐 流媒体处理
# M3U8合并
merge_m3u8_to_mp4(m3u8_url, output_path, headers?)⚡ 性能特性
异步并发处理
所有处理函数支持异步执行
AI 可同时调用多个工具进行并行处理
批量处理性能提升 3-5 倍
硬件加速
Intel QSV: 处理速度提升 3-10 倍
NVIDIA NVENC: GPU 硬件编码
自动检测: 智能选择最佳加速方案
📁 项目结构
ffmpeg_python_mcp/
├── main.py # MCP 服务器入口
├── src/ # 源代码模块
│ ├── tools/
│ │ └── math_tools.py # 数学工具(示例)
│ ├── resources/
│ │ └── greeting.py # 问候资源(示例)
│ └── config/
│ └── server_config.py # 配置管理
├── pyproject.toml # 项目配置
├── uv.lock # 依赖锁定
└── README.md # 项目文档🔧 开发指南
添加新工具
在相应模块中定义工具函数
使用
@server.tool装饰器注册添加完整的参数类型和文档字符串
@server.tool()
async def my_new_tool(input_path: str, option: str = "default") -> str:
"""
工具描述
Args:
input_path: 输入文件路径
option: 可选参数
Returns:
处理结果
"""
# 实现逻辑
return result运行测试
# 检查代码格式
uv run ruff check
# 运行开发模式
uv run mcp dev main.py🤝 贡献
欢迎提交 Issue 和 Pull Request!
Fork 本仓库
创建特性分支 (
git checkout -b feature/AmazingFeature)提交更改 (
git commit -m 'Add some AmazingFeature')推送到分支 (
git push origin feature/AmazingFeature)开启 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
🆘 支持
GitHub Issues: 提交问题
🔗 相关链接
⭐ 如果这个项目对你有帮助,请给个 Star!
Available Tools
19 toolsadd_watermarkB
为视频添加水印
Args:
input_path: 输入视频文件路径
watermark_path: 水印图片路径
output_path: 输出视频文件路径(可选)
position: 水印位置(top-left, top-right, bottom-left, bottom-right, center)
opacity: 水印透明度(0.0-1.0)
margin: 水印边距像素
Returns:
添加结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| watermark_path | Yes | ||
| output_path | No | ||
| position | No | bottom-right | |
| opacity | No | ||
| margin | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. It does not mention what happens if input_path is invalid, whether files are overwritten, processing time, or error handling. Very minimal behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a single-sentence purpose followed by parameter list. It is front-loaded and contains no fluff, though parameter descriptions could be more detailed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations, so the description should explain return values and side effects. It only says '添加结果信息' (add result info), which is vague. Missing error handling, default behavior details, and outcome for optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides basic descriptions for all 6 parameters (e.g., '输入视频文件路径' for input_path), adding some meaning beyond schema names, but lacks details on accepted formats, constraints, or interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '为视频添加水印' (Add watermark to video), which is a specific verb+resource combination. Among siblings, no other tool adds watermarks, so it is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, no prerequisites, limitations, or exclusions provided. The description simply lists parameters without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_video_speedA
改变视频播放速度
Args:
input_path: 输入视频文件路径
speed: 播放速度倍数(0.5=半速,1.0=原速,2.0=两倍速)
output_path: 输出视频文件路径(可选)
keep_audio_pitch: 是否保持音频音调不变
Returns:
速度调整结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| speed | Yes | ||
| output_path | No | ||
| keep_audio_pitch | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries full responsibility for behavioral disclosure. It does not explain whether the tool creates a new file or modifies the input, nor does it mention side effects like audio pitch preservation (though the parameter is listed). The response format is vague ('速度调整结果信息'), lacking detail on output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise, consisting of a clear one-line purpose followed by a bulleted parameter list. Every sentence is functional with no redundant information, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core parameters and returns a result message, but it omits practical details such as the default output path when 'output_path' is not provided, and it does not explain the relationship between speed and audio pitch behavior. Given the tool's simplicity, this is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% parameter descriptions, so the description adds critical meaning by explaining each parameter, e.g., 'speed' is a multiplier with examples (0.5, 1.0, 2.0) and 'keep_audio_pitch' is described as preserving audio pitch. This effectively compensates for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '改变视频播放速度' clearly states the tool's function as changing video playback speed. This verb+resource description is specific and distinguishes it from sibling tools that perform other operations like compression, conversion, or cutting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'cut_video_segment' or 'resize_video'. There is no mention of use cases, prerequisites, or conditions, leaving the agent without contextual selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_hardware_accelerationB
检查系统支持的硬件加速选项
Returns:
硬件加速支持情况报告
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits or side effects. It only states it returns a report without detailing what the report contains or any implications of running it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two lines plus a returns line), with no wasted words. It is efficient but could benefit from slight structuring (e.g., separating purpose and output).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description minimally covers the tool's function and return. It tells what it does and what it returns, but lacks details on the format or content of the report.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema_description_coverage is 100%. Baseline is 3 since the description does not add parameter information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'check' and clearly identifies the resource 'hardware acceleration options'. It distinguishes itself from sibling tools, which are primarily video/audio processing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool or when not to use it. No mention of alternatives or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compress_videoB
压缩视频文件
Args:
input_path: 输入视频文件路径
output_path: 输出视频文件路径(可选)
quality: 压缩质量(high, medium, low)
target_size_mb: 目标文件大小(MB,可选)
use_hardware_acceleration: 是否使用硬件加速
hwaccel_type: 硬件加速类型(qsv, nvenc, vaapi等)
Returns:
压缩结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_path | No | ||
| quality | No | medium | |
| target_size_mb | No | ||
| use_hardware_acceleration | No | ||
| hwaccel_type | No | qsv |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description only lists parameters and a vague return statement ('compression result info'). No disclosure of side effects, error behavior, or hardware acceleration implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured as a docstring with Args and Returns, but slightly verbose with Chinese translations. Purpose is front-loaded, but no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains all parameters but lacks detail on return values, error handling, or behavioral trade-offs between quality and target_size_mb. Incomplete for a tool with 6 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaningful explanations for each parameter (e.g., quality choices, optional output path), compensating well for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'compress video file' and lists parameters, but it does not distinguish from the sibling compress_video_with_qsv, leading to ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like compress_video_with_qsv or other video tools. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compress_video_with_qsvB
使用Intel QSV硬件加速压缩视频
Args:
input_path: 输入视频文件路径
output_path: 输出视频文件路径(可选)
quality: 压缩质量(high, medium, low)
qsv_encoder: QSV编码器(h264_qsv, hevc_qsv等)
target_bitrate: 目标比特率(如"2M", "1000k")
Returns:
压缩结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_path | No | ||
| quality | No | medium | |
| qsv_encoder | No | h264_qsv | |
| target_bitrate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and description lacks behavioral traits like driver dependency, fallback behavior, or performance implications beyond mentioning hardware acceleration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short docstring format, efficient with minimal prose, though parameter listing could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description omits return values, error handling, and prerequisites, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter list repeats schema info with no added constraints, examples, or formats; schema coverage is 0% and description does not compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it compresses video using Intel QSV hardware acceleration, distinguishing from generic compress_video and convert_video_with_qsv siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use QSV vs software encoding or contrast with similar tools; usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_audio_formatB
转换音频格式
Args:
input_path: 输入音频文件路径
output_path: 输出音频文件路径(可选)
output_format: 输出格式(mp3, wav, aac, flac, ogg等)
audio_codec: 音频编码器(libmp3lame, aac, flac等)
bitrate: 音频码率(128k, 192k, 320k等)
Returns:
转换结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_path | No | ||
| output_format | No | mp3 | |
| audio_codec | No | libmp3lame | |
| bitrate | No | 192k |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden but provides minimal transparency. It only states the basic conversion functionality, omitting details on overwriting behavior, supported codecs, error handling, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using a bullet-like list format for parameters. It avoids redundancy despite being in Chinese, and each line serves a purpose. However, it could be slightly more structured with clearer separation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is incomplete. It does not explain return values, side effects, or preconditions (e.g., file existence). A tool with 5 parameters requires more comprehensive behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates by explaining each parameter with examples (e.g., output_format: 'mp3, wav, aac, flac, ogg', bitrate: '128k, 192k, 320k'). This adds significant meaning beyond the schema's type and default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'convert audio format' as the purpose. It specifies the resource (audio) and action (convert format), but does not differentiate from sibling tools like 'extract_audio_from_video' or 'convert_video_format', limiting its distinctiveness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. There is no indication of when to use this tool versus alternatives such as 'compress_video' or 'extract_audio_segment'. The description fails to offer context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_video_formatB
转换视频格式
Args:
input_path: 输入视频文件路径
output_path: 输出视频文件路径(可选)
output_format: 输出格式(mp4, avi, mov, mkv, flv等)
video_codec: 视频编码器(libx264, libx265, libvpx, h264_qsv, hevc_qsv等)
audio_codec: 音频编码器(aac, mp3, ac3等)
quality: 质量设置(high, medium, low)
use_hardware_acceleration: 是否使用硬件加速
hwaccel_type: 硬件加速类型(qsv, nvenc, vaapi等)
Returns:
转换结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_path | No | ||
| output_format | No | mp4 | |
| video_codec | No | libx264 | |
| audio_codec | No | aac | |
| quality | No | medium | |
| use_hardware_acceleration | No | ||
| hwaccel_type | No | qsv |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether the input file is modified, the output location, or any side effects. The description focuses on parameters but lacks explicit behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured as a docstring with clear sections for Args and Returns. It is efficient and front-loaded, though the mixture of Chinese and English text is slightly inconsistent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (8), no output schema, and lack of annotations, the description is incomplete. It does not define the return type or discuss how hardware acceleration options affect behavior. The sibling list suggests more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaning to all 8 parameters by listing them with explanations and examples (e.g., formats and codecs). This compensates well for the missing schema descriptions, though the 'quality' parameter could be more precise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (convert video format) and the resource (video files). However, it does not differentiate from sibling tools that also manipulate video files (e.g., compress_video, resize_video), making it slightly generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, when not to use it, or how it compares to alternatives. Given the extensive sibling list, this omission is significant for the agent's decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_video_with_qsvA
使用Intel QSV硬件加速转换视频
Args:
input_path: 输入视频文件路径
output_path: 输出视频文件路径(可选)
output_format: 输出格式(mp4, mkv, avi等)
qsv_encoder: QSV编码器(h264_qsv, hevc_qsv, av1_qsv等)
quality: 质量设置(high, medium, low)
qsv_preset: QSV预设(veryfast, faster, fast, medium, slow, slower, veryslow)
Returns:
转换结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_path | No | ||
| output_format | No | mp4 | |
| qsv_encoder | No | h264_qsv | |
| quality | No | medium | |
| qsv_preset | No | medium |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks behavioral details such as whether the operation is destructive, what happens when output_path is null, rate limits, or permissions required. The description focuses on parameters but does not disclose the tool's side effects or return value structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, covering purpose and parameters in a single block with Args/Returns sections. It is front-loaded with the core purpose. No extraneous text. Slight improvement could be made by structuring parameter descriptions as a list for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with no output schema and no annotations, the description adequately explains parameter usage but lacks return value format details, error handling, hardware prerequisites, and behavioral context. Given complexity, it is partially complete but missing important contextual elements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate fully. It provides Chinese explanations for each parameter, including acceptable values for output_format, qsv_encoder, quality, and qsv_preset. This adds significant meaning beyond the bare schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states '使用Intel QSV硬件加速转换视频' (Convert video using Intel QSV hardware acceleration), which is a specific verb+resource with technology identifier. It clearly distinguishes from siblings like convert_video_format (no QSV) and compress_video_with_qsv (compression instead of conversion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions QSV hardware acceleration, implying it should be used when that acceleration is desired, but it does not explicitly state when to use this tool versus alternatives like convert_video_format or compress_video_with_qsv. No when-not-to-use or prerequisite conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cut_audio_segmentB
切割音频片段
Args:
input_path: 输入音频文件路径
start_time: 开始时间(格式:HH:MM:SS)
end_time: 结束时间(格式:HH:MM:SS,与duration二选一)
duration: 持续时间(格式:HH:MM:SS,与end_time二选一)
output_path: 输出音频文件路径(可选)
Returns:
切割结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| start_time | Yes | ||
| end_time | No | ||
| duration | No | ||
| output_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only lists parameters and a vague return description ('切割结果信息'). Does not disclose behavior such as file creation, format support, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise bullet list in Chinese, with each parameter on its own line. It is front-loaded with the purpose statement. No unnecessary sentences, though could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only a vague return description, the description is incomplete. It does not mention supported audio formats, error handling, or prerequisites. The tool is simple but more context is needed for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so description compensates well. It explains each parameter's meaning, format (HH:MM:SS), and notes mutual exclusivity of end_time and duration. This adds clear value beyond the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cuts an audio segment ('切割音频片段'). It specifies the verb and resource, but does not differentiate it from sibling tools like cut_video_segment or extract_audio_segment, lacking scope distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, it does not explain when to choose cut_audio_segment over extract_audio_segment or cut_video_segment. No when/when-not context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cut_video_segmentC
切割视频片段
Args:
input_path: 输入视频文件路径
start_time: 开始时间(格式:HH:MM:SS)
end_time: 结束时间(格式:HH:MM:SS,与duration二选一)
duration: 持续时间(格式:HH:MM:SS,与end_time二选一)
output_path: 输出视频文件路径(可选)
use_hardware_acceleration: 是否使用硬件加速(需要重新编码)
hwaccel_type: 硬件加速类型(qsv, nvenc, vaapi等)
precise_cut: 是否精确切割(重新编码,速度较慢但更精确)
Returns:
切割结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| start_time | Yes | ||
| end_time | No | ||
| duration | No | ||
| output_path | No | ||
| use_hardware_acceleration | No | ||
| hwaccel_type | No | qsv | |
| precise_cut | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry the full burden. It reveals that precise_cut requires re-encoding, and hardware acceleration options exist, but does not specify whether the operation is destructive (modifies original), what happens without output_path, or any side effects. The return value is vaguely described as '切割结果信息'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a parameter list with a brief purpose line. It is concise but lacks a high-level summary of the tool's behavior. The structure (Args/Returns) is clear, but the Returns section is too vague. Some sentences could be integrated into a more narrative form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not fully explain the tool's workflow or outputs. With no output schema, the return value description is minimal. It omits important behavioral details like default output behavior, error handling, and supported video formats. For a tool with 8 parameters and no annotations, more contextual completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description adds meaningful context beyond the schema: explains time format (HH:MM:SS), mutual exclusivity of end_time/duration, and effect of precise_cut (re-encoding, slower but precise). However, hwaccel_type is just listed with examples without guidance on selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function ('切割视频片段' - cut video segment) and the verb 'cut' combined with 'video segment' makes the purpose unambiguous. It distinguishes from sibling tools like 'cut_audio_segment' and 'merge_videos', but does not elaborate on the scope (e.g., from a larger file).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. Given many video-related sibling tools (compress, convert, merge, etc.), it fails to provide context for selection. The description does not mention prerequisites, typical use cases, or comparison to other cutting methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_audio_from_videoA
从视频文件中提取音频
Args:
video_path: 输入视频文件路径
output_path: 输出音频文件路径(可选,默认与视频同目录)
audio_format: 音频格式(mp3, wav, aac, flac等)
audio_quality: 音频质量(如192k, 320k等)
Returns:
提取结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| video_path | Yes | ||
| output_path | No | ||
| audio_format | No | mp3 | |
| audio_quality | No | 192k |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It lacks information on side effects (e.g., does it modify the original file?), required permissions, or constraints on input formats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise and front-loaded: one line purpose, then a clear list of parameters. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic usage with 4 parameters, but lacks details on return value format, error handling, and edge cases. No output schema, so description should explain what '提取结果信息' contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds meaning beyond the schema by explaining each parameter in Chinese, including examples for audio_format and audio_quality, and default behavior for output_path. Schema has 0% coverage, so this is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'extract audio from video file' (从视频文件中提取音频), with a specific verb and resource. It is distinct from sibling tools like convert_audio_format or extract_audio_segment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings, such as extract_audio_segment. The description does not mention that it extracts the full audio track, nor does it provide prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_audio_segmentC
从视频中提取指定时间段的音频
Args:
video_path: 输入视频文件路径
start_time: 开始时间(格式:HH:MM:SS)
duration: 持续时间(格式:HH:MM:SS)
output_path: 输出音频文件路径(可选)
audio_format: 音频格式
Returns:
提取结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| video_path | Yes | ||
| start_time | Yes | ||
| duration | Yes | ||
| output_path | No | ||
| audio_format | No | mp3 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'extract audio from video' and mentions returning 'extraction result info'. It does not state whether the video file is modified, what happens on invalid inputs (e.g., start_time beyond video duration), or any side effects. For a read-like operation, it should be clearer about non-destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and includes a purpose line followed by a parameter list, which is reasonably structured. However, the parameter descriptions are terse (one word each), and the returns section is vague. It is not overly verbose, but could be more informative without adding much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (3 required) and no output schema, the description should provide more context on expected return values, error handling, and usage examples. The return info is too vague ('提取结果信息'), and no constraints on parameter values (e.g., positive duration) are mentioned. For a tool of moderate complexity, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides a parameter list with brief Chinese descriptions (e.g., '输入视频文件路径' for video_path), adding basic meaning beyond schema titles. However, it lacks detail on format constraints (e.g., time format is implied but not explicitly stated in the description, though schema mentions 'HH:MM:SS' in title). Default values for output_path and audio_format are not mentioned in description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: extracting an audio segment from a video based on time range. It uses a specific verb (extract) and resource (audio segment from video), which is distinct from sibling tools like 'extract_audio_from_video' that likely extracts the entire audio track. However, it does not explicitly differentiate itself from that sibling, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not include prerequisites, constraints (e.g., supported video formats), or scenarios where this tool is not suitable. An agent has no context for choosing this tool over others like 'cut_audio_segment' or 'extract_audio_from_video'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_framesB
从视频中提取帧图片
Args:
input_path: 输入视频文件路径
output_dir: 输出图片目录(可选)
fps: 提取帧率(如1表示每秒1帧,0.5表示2秒1帧)
start_time: 开始时间(格式:HH:MM:SS)
duration: 持续时间(格式:HH:MM:SS)
image_format: 图片格式(jpg, png, bmp)
Returns:
提取结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_dir | No | ||
| fps | No | ||
| start_time | No | ||
| duration | No | ||
| image_format | No | jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits like side effects, required permissions, or performance implications. Return type mentioned vaguely as '提取结果信息'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Moderately concise with a clear structure (Args, Returns). Could be shortened slightly, but no unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers parameter semantics adequately but lacks usage context, behavioral details, and output schema specification. Adequate but not fully informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description provides meaning for each parameter in the Args section (e.g., fps: 提取帧率). This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '从视频中提取帧图片' clearly states the action (extract frames) and resource (video), and distinguishes from sibling tools like extract_audio_from_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as cut_video_segment or convert_video_format. The description only lists parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_infoA
获取视频文件信息
Args:
video_path: 视频文件路径
Returns:
视频文件详细信息
| Name | Required | Description | Default |
|---|---|---|---|
| video_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only says 'get video file information' without details on what information is returned, performance implications, or side effects. Minimal behavioral context is offered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and includes structured Args and Returns sections. It is front-loaded with the main purpose. No extraneous information is present, though the Returns section is vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple info retrieval tool with one parameter and no output schema, the description is adequate but lacks details on return format, supported paths, or file constraints. More context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single parameter 'video_path', but the description's Args section explains it as 'video file path', adding necessary meaning beyond the schema's bare type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'video file information', making the tool's purpose unambiguous. It distinguishes itself from sibling tools, which are all processing/editing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It merely states what it does, leaving the agent to infer usage context from the tool's name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_audiosB
合并多个音频文件
Args:
audio_paths: 音频文件路径列表,用逗号分隔
output_path: 输出音频文件路径(可选)
merge_method: 合并方式(concat:拼接,mix:混音)
Returns:
合并结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| audio_paths | Yes | ||
| output_path | No | ||
| merge_method | No | concat |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It mentions merge methods but does not state whether input files are altered, expected behavior on invalid paths, or whether output overwrites existing files. For a mutation tool, these are significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise but structured with Args and Returns sections. While short, it covers key aspects without redundancy. The Chinese is appropriate for the target audience. Slightly more detail on merge_method could improve without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the Returns section is vague ('merge result information'). For a tool with 3 params (1 required), it covers parameter purposes but lacks error behavior, file format support, or limitations. Compared to siblings, it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description adds essential meaning. It explains audio_paths is a comma-separated string list, output_path is optional, and merge_method has options 'concat' (default) and 'mix'. This clarifies the string type and default beyond schema. However, it could add format constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool merges multiple audio files, with merge methods (concat/mix) distinguishing it from siblings like merge_videos and convert_audio_format. The verb 'merge' and resource 'audio files' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use merge_audios vs alternatives (e.g., merge_videos, extract_audio_from_video). The merge_method options are listed but no criteria for choosing concat vs mix. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_m3u8_to_mp4B
合并M3U8流为MP4文件
Args:
m3u8_url: M3U8播放列表URL
output_path: 输出MP4文件路径
headers: 可选的HTTP头部信息(格式:key1:value1,key2:value2)
Returns:
合并结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| m3u8_url | Yes | ||
| output_path | Yes | ||
| headers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only lists parameters and fails to disclose important behavioral traits such as network dependency, potential duration, or error conditions. Does not warn about potential side effects (e.g., file creation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one-line summary followed by clean Args section. No redundant sentences. Every piece of text contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a moderate number of sibling tools, the description lacks details about return format, error handling, or operation duration. Given the tool's complexity (streaming conversion), the description is too minimal to fully inform an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description effectively compensates by explaining each parameter: m3u8_url as 'M3U8 playlist URL', output_path as 'Output MP4 file path', headers with format hint. This adds meaning beyond the schema's type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states '合并M3U8流为MP4文件' (merge M3U8 stream to MP4 file), giving a specific verb and resource. It distinguishes from sibling tools like merge_audios or merge_videos by targeting M3U8 streams.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., convert_video_format for local files). No mention of prerequisites like network access or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_videosB
合并多个视频文件
Args:
video_paths: 视频文件路径列表,用逗号分隔
output_path: 输出视频文件路径(可选)
merge_method: 合并方式(concat:简单拼接,filter:滤镜合并)
Returns:
合并结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| video_paths | Yes | ||
| output_path | No | ||
| merge_method | No | concat |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states 'merge' without disclosing if original files are modified, file size limits, error handling, or other behaviors. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with clear sections (Args, Returns). Every sentence contributes meaningful information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details on the return format ('merge result information') and does not mention edge cases, error handling, or prerequisites. Given no output schema, this is insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains that video_paths is a comma-separated list, output_path is optional, and merge_method has two options (concat vs filter). This adds valuable meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state the tool merges multiple video files. However, it does not differentiate from sibling tools like merge_audios or merge_m3u8_to_mp4, though among video tools, it is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools perform different actions (compress, convert, cut), so explicit context would be helpful, but the description provides none.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_videoC
调整视频分辨率
Args:
input_path: 输入视频文件路径
width: 目标宽度
height: 目标高度
output_path: 输出视频文件路径(可选)
keep_aspect_ratio: 是否保持宽高比
Returns:
调整结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| width | Yes | ||
| height | Yes | ||
| output_path | No | ||
| keep_aspect_ratio | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior. It only states the action without mentioning side effects (e.g., file overwriting), required permissions, or performance implications. The return value description is minimal ('调整结果信息' – adjustment result info) and lacks specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but not optimally structured. It begins with a purpose line followed by an Args/Returns section, which is acceptable. However, it could be more concise by integrating the parameter explanations into the purpose statement, and the Returns section adds little value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain default behavior for optional parameters, error handling, or the output file's location when output_path is null. The agent lacks sufficient context to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists parameters with brief Chinese labels that mirror the schema titles (e.g., '输入视频文件路径' for input_path). No additional context is provided about valid ranges for width/height, the effect of keep_aspect_ratio, or how output_path is used when omitted. Schema coverage is 0%, so the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '调整视频分辨率' (adjust video resolution), which directly conveys the tool's function. Among siblings, resizing is distinct from compressing, converting, or extracting, so purpose is clear, though no explicit differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like compress_video or convert_video_format. There is no mention of prerequisites, limitations, or appropriate contexts for resizing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_to_gifB
视频转GIF动图
Args:
input_path: 输入视频文件路径
output_path: 输出GIF文件路径(可选)
start_time: 开始时间(格式:HH:MM:SS,可选)
duration: 持续时间(格式:HH:MM:SS,可选)
width: GIF宽度像素(高度自动按比例缩放)
fps: 帧率(建议5-15)
quality: 质量设置(high, medium, low)
Returns:
转换结果信息
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_path | No | ||
| start_time | No | ||
| duration | No | ||
| width | No | ||
| fps | No | ||
| quality | No | medium |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It lists parameters and defaults but lacks disclaimers about destructive actions (e.g., overwriting output), permission needs, or failure modes. The return is vague as 'result info'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured in a docstring format with Args and Returns sections. It is concise yet informative, providing a clear parameter list. It is front-loaded with the purpose and avoids unnecessary prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no output schema), the description covers all parameters but lacks examples, error handling, or detailed return value specification. It is adequate for basic usage but leaves gaps for nuanced scenarios like invalid inputs or output behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for any parameter (0% coverage), but the description adds meaningful explanations for all 7 parameters, including time format, default width, recommended fps, and quality options. This significantly augments the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts video to GIF animation, which is a specific verb and resource. While it distinguishes from siblings like convert_video_format that may also handle GIF output, it lacks explicit differentiation, but the purpose is evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like convert_video_format or extract_frames. There are no prerequisites, context, or exclusions mentioned, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
19 tool updates
v0.1.0- First observed
add_watermark - First observed
change_video_speed - First observed
check_hardware_acceleration - First observed
compress_video - First observed
compress_video_with_qsv - First observed
convert_audio_format - First observed
convert_video_format - First observed
convert_video_with_qsv - First observed
cut_audio_segment - First observed
cut_video_segment - First observed
extract_audio_from_video - First observed
extract_audio_segment - First observed
extract_frames - First observed
get_video_info - First observed
merge_audios - First observed
merge_m3u8_to_mp4 - First observed
merge_videos - First observed
resize_video - First observed
video_to_gif
TDQS
Most tools have distinct purposes, but pairs like compress_video/compress_video_with_qsv and convert_video_format/convert_video_with_qsv have similar functions differentiated only by hardware acceleration, which could cause agent confusion. Descriptions help clarify, but some ambiguity remains.
All tool names follow a consistent verb_noun pattern in snake_case. Variations like compress_video_with_qsv and video_to_gif are still predictable and within the convention, making the naming highly uniform.
With 19 tools, the server covers a broad range of video and audio operations without being bloated. Each tool addresses a specific need, and the count is well-suited for a multimedia processing server.
The tool set covers core media operations (convert, compress, cut, merge, extract, etc.) and includes specialized hardware acceleration support. Minor gaps exist, such as lack of volume adjustment or subtitle handling, but overall it's fairly comprehensive for typical use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- RendobarOAuthcom.rendobar
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
Video, audio, and image processing for AI agents: convert, transcribe, upscale - 150+ operations.
FFmpeg as a service for AI agents: typed video editing tools, async jobs, downloadable outputs.
A real timeline video editor for AI agents: journaled edits, FFmpeg/MLT rendering, exports
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides powerful video and audio editing capabilities through FFmpeg, enabling AI assistants to perform professional-grade operations including format conversion, trimming, overlays, transitions, and advanced audio processing.2783MIT
- AlicenseAqualityCmaintenanceEnables video and audio processing through FFmpeg, supporting format conversion, compression, trimming, audio extraction, frame extraction, video merging, and subtitle burning through natural language commands.826MIT
- AlicenseAqualityDmaintenanceProvides video and audio manipulation tools powered by FFmpeg, enabling AI assistants to perform media operations such as cutting, converting, and removing silence.61052MIT
- FlicenseAqualityDmaintenanceEnables local media processing (video/audio) using FFmpeg and FFprobe, allowing frame extraction, audio conversion, and metadata retrieval through natural language.5-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mabh111111/ffmpeg_python_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server