Skip to Content
MCP ServersCommunityVideo Editor MCP Server

Video Editor MCP Server

View original on GitHub 

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

  1. FFmpeg must be installed and accessible in your system PATH
  2. Python 3.9 or higher
  3. Required Python packages:
    mcp httpx

Installation

  1. 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 ffmpeg
  2. Install 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

{ "mcpServers": { "video-editor": { "command": "uv", "args": ["run", "video-editor"] } } }

Development

Building and Publishing

  1. Sync dependencies:

    uv sync
  2. Build package:

    uv build
  3. Publish to PyPI:

    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:

  1. β€œTrim video.mp4 from 1:30 to 2:45”
  2. β€œConvert input.mp4 to WebM format”
  3. β€œSpeed up video.mp4 by 2x”
  4. β€œMerge video1.mp4 and video2.mp4”
  5. β€œExtract audio from video.mp4”
  6. β€œ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
Last updated on