freshcrate
Home > MCP Servers > mcp-video

mcp-video

Video editing MCP server for AI agents. 83 tools, 858 tests collected, 3 interfaces. Works with Claude Code, Cursor, and any MCP client. Local, fast, free.

Description

Video editing MCP server for AI agents. 83 tools, 858 tests collected, 3 interfaces. Works with Claude Code, Cursor, and any MCP client. Local, fast, free.

README

mcp-video

mcp-video

Video editing and creation for AI agents.
Edit existing video with FFmpeg. Create new video from code with Remotion.

PyPI CI Tools License Python

InstallQuick StartToolsFull ReferenceAgent DiscoveryContributingChangelog


What is mcp-video?

An open-source video editing server built on the Model Context Protocol (MCP). It gives AI agents, developers, and video creators the ability to programmatically edit and create video files.

Two modes:

  1. Edit existing video with FFmpeg — trim, merge, overlay text, add audio, apply filters, stabilize, detect scenes, transcribe, and more.
  2. Create new video from code with Remotion — scaffold React-based video compositions, preview live, render to MP4, then post-process.

Three interfaces:

Interface Best For Example
MCP Server AI agents (Claude Code, Cursor) "Trim this video and add a title"
Python Client Scripts, automation, pipelines editor.trim("v.mp4", start="0:30", duration="15")
CLI Shell scripts, quick ops, humans mcp-video trim video.mp4 -s 0:30 -d 15

Installation

Prerequisites: FFmpeg must be installed. For Remotion features, you also need Node.js 18+.

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

Install:

pip install mcp-video
# or run without installing:
uvx mcp-video

Verify your setup:

mcp-video doctor
mcp-video doctor --json

Quick Start

As an MCP Server (for AI agents)

Claude Code:

claude mcp add mcp-video -- uvx mcp-video

Claude Desktop:

{
  "mcpServers": {
    "mcp-video": {
      "command": "uvx",
      "args": ["mcp-video"]
    }
  }
}

Cursor:

{
  "mcpServers": {
    "mcp-video": {
      "command": "uvx",
      "args": ["mcp-video"]
    }
  }
}

Then just ask your agent: "Trim this video from 0:30 to 1:00, add a title card, and resize for TikTok."

As a Python Library

from mcp_video import Client

editor = Client()

info = editor.info("interview.mp4")
clip = editor.trim("interview.mp4", start="00:02:15", duration="00:00:30")
video = editor.merge(clips=["intro.mp4", clip.output_path, "outro.mp4"])
video = editor.add_text(video.output_path, text="EPISODE 42", position="top-center", size=48)
result = editor.resize(video.output_path, aspect_ratio="9:16")

As a CLI Tool

mcp-video info video.mp4
mcp-video trim video.mp4 -s 00:02:15 -d 30
mcp-video convert video.mp4 -f webm -q high
mcp-video template tiktok video.mp4 --caption "Check this out!"

MCP Tools

83 tools across 9 categories. All return structured JSON. See the full tool reference for complete details.

Category Count Highlights
Core Video 40 trim, merge, text, audio, resize, convert, filters, stabilize, chroma key, subtitles, watermark, batch
AI-Powered 8 transcribe (Whisper), scene detect, stem separation (Demucs), upscale, color grade
Remotion 8 create project, scaffold, render, studio preview, pipeline
Audio Synthesis 6 generate waveforms, presets, sequences, effects — pure NumPy
Visual Effects 5 vignette, chromatic aberration, scanlines, noise, glow
Transitions 3 glitch, pixelate, morph
Layout & Motion 7 grid, pip, animated text, counters, progress bars, auto-chapters
Quality 3 brightness/contrast/audio checks, design analysis, auto-fix
Image Analysis 3 color extraction, palette generation, product analysis

Remotion Integration

Create videos programmatically with Remotion — a React framework for video.

1. Create project     -> remotion_create_project
2. Scaffold           -> remotion_scaffold_template
3. Preview live       -> remotion_studio
4. Render             -> remotion_render
5. Post-process       -> remotion_to_mcpvideo

See Remotion docs and the Python client reference.


Python Client

from mcp_video import Client
editor = Client()

See the full Python client reference for all methods and return types.


CLI Reference

mcp-video [command] [options]

See the full CLI reference for all commands and options.


Timeline DSL

For complex multi-track edits, describe everything in a single JSON object:

editor.edit({
    "width": 1080,
    "height": 1920,
    "tracks": [
        {
            "type": "video",
            "clips": [
                {"source": "intro.mp4", "start": 0, "duration": 5},
                {"source": "main.mp4", "start": 5, "trim_start": 10, "duration": 30},
                {"source": "outro.mp4", "start": 35, "duration": 10},
            ],
            "transitions": [
                {"after_clip": 0, "type": "fade", "duration": 1.0},
            ],
        },
        {
            "type": "audio",
            "clips": [
                {"source": "music.mp3", "start": 0, "volume": 0.7, "fade_in": 2},
            ],
        },
    ],
    "export": {"format": "mp4", "quality": "high"},
})

Templates

Pre-built templates for common social media formats:

from mcp_video.templates import tiktok_template, youtube_shorts_template

timeline = tiktok_template(video_path="clip.mp4", caption="Check this out!", music_path="bgm.mp3")
result = editor.edit(timeline)

Supports: TikTok, YouTube Shorts, Instagram Reels/Posts, YouTube Videos.


Error Handling

Structured, actionable errors with auto-fix suggestions:

{
  "success": false,
  "error": {
    "type": "encoding_error",
    "code": "unsupported_codec",
    "message": "Codec error: vp9 — Auto-convert input from vp9 to H.264/AAC before editing",
    "suggested_action": {
      "auto_fix": true,
      "description": "Auto-convert input from vp9 to H.264/AAC before editing"
    }
  }
}

Architecture

mcp_video/
  client.py              # Python Client API
  server.py              # MCP server (83 tools + 4 resources)
  engine.py              # Core FFmpeg engine
  models.py              # Pydantic models
  errors.py              # Error hierarchy + FFmpeg stderr parser
  ffmpeg_helpers.py      # Shared FFmpeg utilities
  audio_engine.py        # Procedural audio synthesis
  effects_engine.py      # Visual effects + motion graphics
  transitions_engine.py  # Clip transitions
  ai_engine.py           # AI features (Whisper, Demucs, Real-ESRGAN)
  remotion_engine.py     # Remotion CLI wrapper
  image_engine.py        # Image color analysis
  quality_guardrails.py  # Automated quality checks

Supported Formats

Video Audio (extraction) Subtitles
MP4, WebM, MOV, GIF MP3, AAC, WAV, OGG, FLAC SRT, WebVTT

Agent Discovery


Development

git clone https://github.com/pastorsimon1798/mcp-video.git
cd mcp-video
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Community & Support

Testing

Tests are excluded from the PyPI package. To run locally:

pip install -e ".[dev]"
pytest tests/ -v -m "not slow and not remotion"

See docs/TESTING.md for full test categories and CI details.

License

Apache 2.0 — see LICENSE.

Built on FFmpeg, Remotion, and the Model Context Protocol.

See docs/LEGAL_REVIEW.md for dependency licensing notes.

Release History

VersionChangesUrgencyDate
v1.2.1## v1.2.1 This release aligns the published project version with the current package metadata and wraps the post-audit trust and maintainability work. ### Changed - Prepared the 1.2.1 package metadata and public badge. - Improved runtime error contracts and diagnostics. - Repaired repository trust rails for deploys, packages, tests, and AI extras. - Added GitHub community, governance, maintainer, support, and discovery metadata. - Added AI-agent discovery files including `llms.txt`, `robots.tHigh4/19/2026
v1.2.0## Security Hardening (56 tasks) ### What changed - Centralized validation module (`validation.py`) with parameter validators and allowed-value constants - Shared FFmpeg helpers (`ffmpeg_helpers.py`) — deduplicated escape, validate, run utilities - FFmpeg filter injection prevention on all 82 tools — all numeric params sanitized before interpolation - Color validation hardened — whitelist CSS named colors + hex + 0xRRGGBB format - Null byte rejection on all input paths across all engines - ServMedium3/31/2026
v1.1.5## What's Changed ### CLI Improvements - **New `extract-frame` command** with `--time` flag for extracting frames at specific timestamps - **`edit` command now accepts inline JSON** — no need to create a separate file - **`export-frames` renamed flag** — `--format` → `--image-format` to avoid shadowing global `--format` - **Effect commands auto-generate output** — `effect-vignette`, `effect-glow`, `effect-noise`, `effect-scanlines`, `effect-chromatic-aberration` now auto-generate output paths wMedium3/31/2026
v1.1.4## What's Changed Documentation refresh to accurately reflect the v1.1.3 codebase: - **README**: Updated test counts (690→825), tool counts (35→40), audio presets (16→18), fixed `overlay()`→`overlay_video()` method name, engine operations count - **CONTRIBUTING**: Complete rewrite — correct project structure (22 files), accurate test target (825), security testing guidance, proper `cd` path - **ROADMAP**: Updated version and test count references - **__init__.py**: Removed stale `# NEW:` commeMedium3/31/2026
v1.1.3## v1.1.3 — Adversarial Audit Hardening Full adversarial red-team audit covering ~50 issues across 4 severity tiers. All CRITICAL, HIGH, and actionable MEDIUM fixes applied. ### Critical (C1–C7) - **C1**: Fixed `edit_timeline` crash on `t.type.value` — type is `Literal[str]`, not enum - **C2**: Fixed `audio-waveform` CLI passing unknown `output_path` kwarg to engine - **C3**: Fixed `thumbnail`/`extract-frame` CLI using wrong text formatter (showed N/A) - **C4**: Fixed silence boundary logic buMedium3/31/2026
v1.1.2## Bug Fixes ### Server (MCP tools) - **Critical**: Fixed 11 tools that crashed on non-MCPVideoError exceptions (AI features, transitions, quality checks, edit timeline) — now properly handled instead of calling `.to_dict()` on plain exceptions - Added input validation: opacity (0-1), fps (>0), scale_factor (2-16), frame_count (1-100), fade_in/fade_out (>=0) - Added batch operation whitelist validation (unknown operations now rejected early) - Exposed `rounded_corners` parameter in `video_layouMedium3/31/2026
v1.1.1## v1.1.1 — Bug Fixes & Client Hardening ### Bug Fixes - **layout_pip**: Expose `rounded_corners` parameter instead of hardcoded `False` - **layout_grid**: Validate layout parameter (2x2, 3x1, 1x3, 2x3) - **layout_pip**: Validate position parameter (top-left, top-right, bottom-left, bottom-right) - **export**: Validate quality parameter (low, medium, high, ultra) - **convert**: Validate format and quality parameters ### Python Client Improvements - All method docstrings now document return shaMedium3/31/2026
v1.1.0## CLI Parity — 82 Commands 35 new CLI commands bringing the CLI from 47 to 82, matching all MCP server tools. ### New Commands - **Effects:** effect-vignette, effect-glow, effect-noise, effect-scanlines, effect-chromatic-aberration - **Transitions:** transition-glitch, transition-morph, transition-pixelate - **AI:** video-ai-transcribe, video-ai-upscale, video-ai-stem-separation, video-ai-scene-detect, video-ai-color-grade, video-ai-remove-silence - **Audio Synthesis:** audio-synthesize, audiMedium3/31/2026
v1.0.0## mcp-video v1.0.0 First stable release of the video editing MCP server for AI agents. ### Highlights - **82 MCP tools** for video editing, effects, transitions, audio processing, AI features, and more - **3 interfaces**: MCP server (AI agents), Python client, rich CLI - **690+ tests** passing with real media — no mocks - **Security audited**: adversarial red team audit with 11 vulnerability fixes (FFmpeg injection, path traversal, parameter bounds) - **AI-powered**: Whisper transcription, DeMedium3/30/2026
v0.7.0## What's New in v0.7.0 ### Image Analysis Tools Three new tools for analyzing images alongside video editing: - **`image_extract_colors`** — Extract dominant colors via K-means clustering (hex codes + percentages) - **`image_generate_palette`** — Generate color harmony palettes (complementary, analogous, triadic, split_complementary) - **`image_analyze_product`** — Extract colors + optional AI product description via Claude Vision ### Documentation - Added Image Analysis section to MCP TooMedium3/27/2026
v0.5.0# mcp-video v0.5.0 Release Notes ## 🎉 What's New **11 new FFmpeg features** across 5 development waves, plus comprehensive testing and bug fixes. --- ## New MCP Tools (11) ### Wave 1: Enhanced Editing - **Ken Burns effect** - Smooth pan/zoom animation filter for dynamic video movement - **Two-pass encoding** - Higher quality at lower bitrates for efficient compression ### Wave 2: Audio Effects - **Audio reverb** - Add echo/reverb effect to audio tracks - **Audio compressor** - Dynamic ranMedium3/23/2026
v0.3.0## What's New ### Real Media Processing Engine All tools now use actual FFmpeg operations via moviepy, replacing the previous stub implementation. ### 26 MCP Tools - **Core**: trim, merge, resize, convert, speed, fade, export, thumbnail, preview, storyboard, extract_audio, edit (timeline DSL) - **Effects**: add_text, add_audio, subtitles, watermark, crop, rotate, filter, blur, color_grade, normalize_audio - **Compositing**: overlay (PiP), split_screen - **Batch**: batch (apply operation to mulLow3/21/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

@actwith-ai/mcp-serverGive your AI agent a career. Persistent memory, reputation, expertise, and community — for any MCP-compatible AI agent.0.15.1
claude-code-configClaude Code skills, architectural principles, and alternative approaches for AI-assisted development0.0.0
better-notion-mcpMarkdown-first MCP server for Notion API - composite tools optimized for AI agentsv2.28.5
antigravity-awesome-skills🌌 Explore 255+ essential skills for AI coding assistants like Claude Code and GitHub Copilot to enhance your development workflow.main@2026-04-21
sqltools_mcp🔌 Access multiple databases seamlessly with SQLTools MCP, a versatile service supporting MySQL, PostgreSQL, SQL Server, DM8, and SQLite without multiple servers.main@2026-04-21