Skip to content

Kush36Agrawal/Video_Editor_MCP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages