For agents
An MCP server that edits video.
Point your agent at vidcut and it gets a real timeline, not a chat box.
What is an MCP video editor?
Model Context Protocol (MCP) is an open standard for connecting AI models to external tools. vidcut ships an MCP server: instead of a chat window bolted onto an editor, your agent calls 48 structured tools directly against a real, editable 1080×1920 timeline, and every change lands in a browser UI where you approve it before anything renders.
Connect it
Cloud
One command. Every paid plan includes a Remote MCP endpoint.
claude mcp add --transport http vidcut https://vidcut-fly-demo.fly.dev/mcpSelf-host
Run the AGPL build on your own machine and point your agent at it — no account, no limits.
Read the sourceThe 48 tools
Every tool returns structured project state, so your agent never has to re-describe the video back to itself.
| Tool | What it does |
|---|---|
add_clip | Append already-imported media to the end of the main track (existing clips are untouched — good for adding one file at a time) |
add_mographcloud | Add one parameterized motion-graphics overlay (the others are untouched) |
add_overlay | Add a single overlay (the others are untouched) |
auto_caption | One-shot auto captions: recognize → paginate → write the caption track (a whole-track replace |
export_publish_package | Package the finished render for manual upload: copies the output video plus cover and .srt into output/publish/<stamp>/, writes one text file per platform from the metadata you provide, and records per-platform duration/size warnings in manifest.json |
extract_audio | Extract a clip's audio into a standalone audio item (the clip's own volume goes to zero), so it can be adjusted, faded or deleted on its own |
generate_imagecloud | Generate NEW images with AI via fal |
generate_musiccloud | Generate a NEW background-music track with AI via fal |
generate_soundcloud | Generate a NEW custom sound effect with AI (ElevenLabs SFX v2 via fal) |
get_chatread-only | Read the conversation with the person reviewing your work (both sides, oldest first) |
get_editing_skillread-onlycloud | Fetch one editing playbook in full (markdown): workflow with tool-call sequences, silent-failure pitfalls, final checklist |
get_editor_contextread-only | The user's current selection in the UI, playhead position, and dragged time range |
get_feedbackread-only | Summary of human changes since the given version — how the AI reads back what the user adjusted |
get_frameread-only | Extract the frame at a given time as JPEG — the AI's eyes |
get_generation_statuscloud | Check AI generation jobs |
get_historyread-only | Recent change log (version/label/source/ts) |
get_mograph_snippetread-onlycloud | Fetch one library item's full HTML/CSS/GSAP source plus an adaptation checklist for the html mograph template (strip the page scaffold and every <script src>, register the paused window.__timelines["html-mograph"] timeline, re-layout 1920x1080 blocks for the bake canvas, swap webfonts and bundled images) |
get_projectread-only | Trimmed overview of the project (clips/captions/media/version/review) |
import_media | Register a media file |
import_stock_mediacloud | Download one search_stock_media result into the project and register it as media (builds proxy/filmstrip/peaks |
list_editing_skillsread-onlycloud | List the built-in editing playbooks — 8 workflows covering speech editing, transcript-driven assembly, style mimicry from a reference video, beat-synced cutting, music & mixing, long-to-short repurposing, short-form packaging and pre-render checks |
list_sourceread-only | List importable files in a footage folder (no recursion, hidden files excluded, whitelisted extensions only) |
post_chat | Say something to the person reviewing your work — it shows up in the Chat tab of the editor and they can reply there |
preflight_checkread-onlycloud | Read-only self-check of the current timeline, to run right before render |
redo | Redo the last N undone edits (the inverse of undo) |
remove_audio | Remove one audio item |
remove_clip | Remove one clip (the magnetic main track closes the gap, so every later clip shifts left) |
remove_mographcloud | Remove one mograph overlay |
remove_overlay | Remove one overlay |
render | Render the project to a final mp4 (1080×1920, re-encoded) |
reorder_clips | Reorder the main-track clips (order is a permutation of clipIds) |
request_review | Ask the user to review the current timeline in the browser UI |
search_mograph_libraryread-onlycloud | Search the vendored motion-graphics snippet library (373 HTML/CSS/GSAP items from the hyperframes registry), organised into 13 categories (lower-third / text-type / chart-data / map-geo / social-mock / device-ui / transition / vfx-overlay / code-dev / handwriting / logo-brand / background / camera-motion) |
search_stock_mediaread-onlycloud | Search free stock-media platforms (Pexels, Pixabay, Unsplash, Freesound) for B-roll, photos, sound effects and music beds |
set_audio | Set the whole audio track (voiceover/BGM |
set_canvas_fit | What to do when the media does not fill the canvas: contain = black bars, blur = a blurred, scaled-up fill (blur is the better look for landscape footage on a 9:16 canvas) |
set_captions | Replace the whole caption track (every existing caption is replaced |
set_cover | Set the cover image: when a rendered file is still around, the frame at that time is taken from the export (overlays and captions included) |
set_overlays | Replace the whole overlay track (every existing overlay is replaced |
set_timeline | Set the whole video main track (the initial cut) |
timeline_op | Rough-cut at a point on the timeline: split, deleteBefore (drop the picture before that time), deleteAfter (drop what follows), or freeze (insert a freeze-frame) |
transcribe | Run speech recognition (whisper.cpp) over the whole timeline and return per-word timestamps |
undo | Undo the last N edits (cursor-style: call it repeatedly to keep walking back) |
update_audio | Adjust one audio item (volume, fades, timing, ducking) |
update_caption | Change one caption only (text/start/duration/style/tokens/reveal/motion) |
update_clip | Change one clip's in/duration/volume/label/leadPad/transition (its position in the main track is untouched) |
update_mographcloud | Change one existing mograph overlay: props (shallow merge — send only the fields you want to change), duration, position, start or anchor |
update_overlay | Change one overlay only (start/anchor/duration/position/text) |
Generated from the checked-in tool surface, so this table cannot drift from what the server actually exposes. The open-source build you host yourself ships 39 of these; the ones marked “cloud” need a paid plan.