claudeclip
A local MCP server that enables Claude to edit videos on your machine using ffmpeg, with tools for trimming, converting, compressing, creating GIFs, and more.
README
claudeclip
A local MCP server that lets Claude edit videos on your machine, powered by ffmpeg. Works with Claude Cowork, Claude Desktop, Claude Code, and any other MCP client, on Windows, macOS, and Linux — ffmpeg is bundled automatically if you don't have it.
Ask things like "trim the first 30 seconds off intro.mp4 and turn the best part into a GIF" — Claude inspects the file, picks the right tools, and writes the results next to your originals.
Tools
| Tool | What it does |
|---|---|
get_video_info |
Duration, resolution, fps, codecs, bitrate, file size |
sample_frames |
Contact sheet of timestamped frames — lets Claude see the video before editing |
detect_scenes |
Timestamps of cuts/shot changes, ready to feed into trims |
detect_silence |
Silent stretches plus the non-silent segments to keep (cut dead air) |
trim_video |
Cut to a time range — frame-accurate re-encode, or instant fast_copy |
concat_videos |
Join clips in order, with hard cuts or crossfades; mixed resolutions/frame rates are normalized automatically |
convert_video |
Re-encode to mp4 / webm / mov / mkv with a quality preset |
resize_video |
Scale by width, height, or percentage (aspect ratio preserved) |
crop_video |
Crop a rectangle out of the frame |
compress_video |
Shrink to an approximate target size in MB, or general-purpose compression |
change_speed |
0.25x–4x playback speed, audio pitch preserved |
rotate_video |
Rotate 90/180/270° and/or mirror horizontally/vertically |
add_fade |
Fade in from black / out to black, video and audio |
reverse_video |
Play backwards (best for short clips) |
loop_video |
Repeat N times or until a target duration, no re-encode |
adjust_colors |
Brightness, contrast, saturation (saturation 0 = black & white) |
stack_videos |
Side-by-side, vertical, or grid comparison layouts |
picture_in_picture |
Overlay a video in a corner (webcam/reaction style) |
video_from_images |
Slideshow from images, optional soundtrack |
create_gif |
Palette-optimized animated GIF from a clip |
extract_frame |
Save a still frame as jpg/png (thumbnails, covers) |
extract_audio |
Audio track out to mp3 / wav / m4a / flac |
remove_audio |
Strip audio without re-encoding |
replace_audio |
Swap in music or a voiceover, optionally looped to fit |
adjust_volume |
Louder/quieter by a multiplier |
normalize_audio |
EBU R128 loudness normalization (podcast/social levels) |
add_text_overlay |
Captions/titles: position presets, color, background box, show/hide times |
add_watermark |
Image/logo overlay with size and opacity |
draw_box |
Rectangle outline or filled box for highlighting/redacting, with time window |
blur_region |
Blur or pixelate a region (faces, plates, names), with time window |
burn_subtitles |
Permanently render an .srt/.ass subtitle file onto the video |
Safe by default: tools never overwrite files. Without an explicit output_path, results land next to the input as name_trimmed.mp4, name_clip.gif, etc., and name collisions get a numeric counter.
Requirements
- Node.js 18+
- ffmpeg — required, and installed for you:
npm installalways fetches ffmpeg/ffprobe binaries for your platform (Windows, macOS Intel/Apple Silicon, Linux), so the server works out of the box. If a system ffmpeg is present it is preferred (newer and faster); the lookup order isFFMPEG_PATH/FFPROBE_PATHenv vars → common install locations (incl.~/ffmpeg,C:\ffmpeg\bin, Homebrew) →PATH→ bundled.
Install
Option 1 — npx (easiest)
No download at all — with Node.js 18+ installed, just use npx in your Claude config (first run fetches everything, including ffmpeg):
{
"mcpServers": {
"claudeclip": {
"command": "npx",
"args": ["-y", "claudeclip"]
}
}
}
Or for Claude Code: claude mcp add claudeclip -- npx -y claudeclip
Option 2 — download a release
Grab the zip for your platform from the latest release, unzip it somewhere permanent, and point your Claude config at dist/index.js inside it (see below). The zip is self-contained — Node.js 18+ is the only requirement, ffmpeg is included.
Option 3 — from source
git clone https://github.com/gulkoa/claudeclip.git
cd claudeclip
npm install
npm run build
Connect to Claude
Claude Cowork / Claude Desktop
Add the server to your Claude config file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"claudeclip": {
"command": "node",
"args": ["/absolute/path/to/claudeclip/dist/index.js"]
}
}
}
Restart the Claude app; the tools appear under the claudeclip server. (If node isn't found, use the full path to the Node executable as command.)
Claude Code
claude mcp add claudeclip -- node /absolute/path/to/claudeclip/dist/index.js
Example prompts
- "How long is
C:\Videos\demo.mp4and what resolution is it?" - "Cut
talk.mp4from 12:30 to 14:00 and compress the result to about 25 MB" - "Join these three clips and add my
logo.pngas a watermark in the bottom right" - "Make a 5-second GIF of the goal at 1:23, 480px wide"
- "Replace the audio in
timelapse.mp4withsong.mp3, looped to fit" - "Burn
episode1.srtinto the video and caption the intro with the show title" - "Look at what's in
raw.mp4, then cut it into separate scenes" - "Remove the dead air from this recording and normalize the audio"
- "Put
screen.mp4andwebcam.mp4side by side" / "webcam in the corner" - "Pixelate the license plate at the top right from 0:12 to 0:31"
Notes
- Text overlays render with a system font (Arial/Segoe UI on Windows, Helvetica on macOS, DejaVu on Linux). Arbitrary text is safe — it's passed to ffmpeg via a temp file, so quotes,
%,:and friends can't break the filter graph. - Encoding defaults favor compatibility: H.264 + AAC in mp4 with
+faststart, VP9 + Opus for webm. - Long jobs time out after 15 minutes.
Development
npm run build # compile TypeScript to dist/
node test/smoke.mjs # end-to-end test: spawns the server over stdio,
# generates test media with ffmpeg, exercises every tool
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。