Video_Editor_MCP
Leverage FFmpeg for video editing through natural language commands, enabling operations like trimming, merging, format conversion, and applying filters. The server provides real-time progress tracking and error handling for various video editing tasks.
Author

Kush36Agrawal
Quick Info
Actions
Tags
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 tracking- Takes 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.)
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: ```bash # On macOS with Homebrew brew install ffmpeg
# On Windows with Chocolatey choco install ffmpeg
# On Ubuntu/Debian sudo apt install ffmpeg ```
- Install the video editor package:
bash 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
{
"mcpServers": {
"video-editor": {
"command": "uv",
"args": ["run", "video-editor"]
}
}
}
Development
Building and Publishing
-
Sync dependencies:
bash uv sync -
Build package:
bash uv build -
Publish to PyPI:
bash uv publish
Note: Set PyPI credentials via:
* Token: --token or UV_PUBLISH_TOKEN
* Or username/password: --username/UV_PUBLISH_USERNAME and --password/UV_PUBLISH_PASSWORD
Debugging
For the best debugging experience, use the MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/video_editor run video-editor
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: 1. Parse your request 2. Generate the appropriate FFmpeg command 3. Execute it with progress tracking 4. 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: 1. Fork the repository 2. Create your feature branch 3. Make your changes 4. Submit a pull request
