Add it to Claude Code
claude mcp add mcp-video -- uvx mcp_videoMake your agent remember this setup
mcp-video's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Programmatic video editing via AI agents
- Supports trimming, merging, and text overlays
- Includes audio processing with volume and fade controls
- Provides video metadata extraction
- Compatible with Claude Desktop, Cursor, and Python scripts
Tools 5
trimTrims a video file to a specific duration.mergeMerges multiple video clips with transitions.add_textAdds a text overlay to a video.add_audioAdds background music to a video with fade effects.infoRetrieves metadata information about a video file.Try it
Original README from Pastorsimon1798/mcp-video
<strong>The video editing MCP server for AI agents and humans.</strong> 26 tools. 3 interfaces. Rich CLI. Purpose-built for AI agents.
Quick Start • Tools • Python API • CLI • Timeline DSL • Templates • Roadmap • Contributing
What is mcp-video?
mcp-video is 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 video files.
Think of it as ffmpeg with an API that AI agents can actually use. Instead of memorizing cryptic command-line flags, an agent calls structured tools with clear parameters and gets structured results back — or a human uses the rich CLI with spinners, tables, and error panels.
The Problem It Solves
AI agents can write code, analyze documents, and browse the web — but they can't edit video. Existing video editing tools are either:
- GUI-only (Premiere, DaVinci, CapCut) — agents can't use them
- Raw FFmpeg wrappers — require memorizing hundreds of flags
- Cloud APIs (Render, Bannerbear) — expensive, slow, vendor lock-in
mcp-video bridges this gap. It's a local, fast, free video editing layer that any AI agent can use through a standard protocol.
Three Ways to Use It
| 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 |
Install
Prerequisites
FFmpeg must be installed on your system:
# macOS
brew install ffmpeg
# For full text overlay support (drawtext filter):
# brew install freetype harfbuzz
# brew reinstall --build-from-source ffmpeg
# Verify: ffmpeg -filters | grep drawtext
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows
# Download from https://ffmpeg.org/download.html
Installation
pip install mcp-video
Or with UVX (no install needed):
uvx mcp_video
Quick Start
1. As an MCP Server (for AI agents)
Install FFmpeg first, then pick your client:
Claude Code:
claude mcp add mcp-video -- pip install mcp-video && mcp-video --mcp
Claude Desktop — add to your claude_desktop_config.json:
{
"mcpServers": {
"mcp-video": {
"command": "uvx",
"args": ["mcp_video"]
}
}
}
Cursor — add to your .cursor/mcp.json:
{
"mcpServers": {
"mcp-video": {
"command": "uvx",
"args": ["mcp_video"]
}
}
}
Any MCP client — if installed via pip, the command is just mcp-video.
Then just ask your agent: "Trim this video from 0:30 to 1:00, add a title card, and resize for TikTok."
2. As a Python Library
from mcp_video import Client
editor = Client()
# Get video info
info = editor.info("interview.mp4")
print(f"Duration: {info.duration}s, Resolution: {info.resolution}")
# Trim a clip
clip = editor.trim("interview.mp4", start="00:02:15", duration="00:00:30")
# Merge clips with transitions
video = editor.merge(
clips=["intro.mp4", clip.output_path, "outro.mp4"],
transitions=["fade", "dissolve", "fade"],
)
# Add text overlay
video = editor.add_text(
video=video.output_path,
text="EPISODE 42: The Future of AI",
position="top-center",
size=48,
)
# Add background music
video = editor.add_audio(
video=video.output_path,
audio="music.mp3",
volume=0.7,
fade_in=2.0,
fade_out=3.0,
)
# Resize for TikTo