Leverages FFmpeg to perform video editing operations through natural language commands, supporting trimming, merging, format conversion, speed adjustment, audio track addition, audio extraction, subtitle addition, and basic filters
Video Editor MCP Server
A powerful video editing MCP server that leverages FFmpeg to perform video editing operations through natural language commands.
Components
Tools
The server implements one main tool:
execute_ffmpeg: Executes FFmpeg commands with progress trackingTakes a command string as input
Validates and executes FFmpeg operations
Reports real-time progress during processing
Handles errors and provides detailed feedback
Supports all FFmpeg operations including:
Trimming/cutting
Merging videos
Converting formats
Adjusting speed
Adding audio tracks
Extracting audio
Adding subtitles
Basic filters (brightness, contrast, etc.)
Related MCP server: MCP FFmpeg Helper
Configuration
Prerequisites
FFmpeg must be installed and accessible in your system PATH
Python 3.9 or higher
Required Python packages:
mcp httpx
Installation
Install FFmpeg if not already installed:
# On macOS with Homebrew brew install ffmpeg # On Windows with Chocolatey choco install ffmpeg # On Ubuntu/Debian sudo apt install ffmpegInstall the video editor package:
uv add video-editor
Claude Desktop Integration
Configure in your Claude Desktop config file:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Development
Building and Publishing
Sync dependencies:
uv syncBuild package:
uv buildPublish to PyPI:
uv publish
Note: Set PyPI credentials via:
Token:
--tokenorUV_PUBLISH_TOKENOr username/password:
--username/UV_PUBLISH_USERNAMEand--password/UV_PUBLISH_PASSWORD
Debugging
For the best debugging experience, use the MCP Inspector:
Example Usage
Once connected to Claude Desktop, you can make natural language requests like:
"Trim video.mp4 from 1:30 to 2:45"
"Convert input.mp4 to WebM format"
"Speed up video.mp4 by 2x"
"Merge video1.mp4 and video2.mp4"
"Extract audio from video.mp4"
"Add subtitles.srt to video.mp4"
The server will:
Parse your request
Generate the appropriate FFmpeg command
Execute it with progress tracking
Provide feedback on completion
Error Handling
The server includes robust error handling for:
Invalid input files
Malformed FFmpeg commands
Runtime execution errors
Progress tracking issues
All errors are reported back to the client with detailed messages for debugging.
Security Considerations
Only processes files in explicitly allowed directories
Validates FFmpeg commands before execution
Sanitizes all input parameters
Reports detailed error messages for security-related issues
Contributing
Contributions are welcome! Please follow these steps:
Fork the repository
Create your feature branch
Make your changes
Submit a pull request