capcut-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@capcut-mcp Trim the first video clip to 10 seconds in my latest draft"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
capcut-mcp
An MCP server that lets Claude read and edit CapCut desktop draft projects — add/move/trim/split clips, text, audio, images; set transforms; validate; save. It works by cloning real segment/material templates out of an existing draft (the only reliable way to produce valid CapCut JSON), and it saves atomically with a backup and a validation pass.
Free & open source (MIT). Built by James Aldrin Boncales for editors who want Claude to drive CapCut for them.
Not affiliated with CapCut or ByteDance. CapCut's draft format is proprietary and undocumented; this tool reads/writes it defensively (clone-from-template, backups, validation), but a CapCut update can shift the schema. Keep the backups it makes.
Requirements
Node 18+
ffmpeg/ffprobe on PATH (used to read media duration/resolution)
CapCut desktop (Windows layout assumed; macOS path is auto-detected too)
Related MCP server: capcut-mcp
Configure (env, optional)
CAPCUT_DRAFTS_DIR— your CapCut Drafts folder. Auto-detects the standard%LOCALAPPDATA%\CapCut\...(Windows) /~/Movies/CapCut/...(macOS) locations; set this if your drafts live elsewhere (e.g. a different drive).CAPCUT_TEMPLATE_DRAFT— name of a draft that contains video and text layers, used to harvest templates when the draft you're editing lacks one. Default0723is the author's own draft and won't exist on your machine — set this to one of your drafts that has a text layer, or thecapcut_add_texttool won't work. (Everything else works without it.)
Install
git clone https://github.com/JmsLdrn/capcut-mcp
cd capcut-mcp
npm installThen register it in Claude Code — use the absolute path to src/server.js on your machine:
claude mcp add capcut --scope user -- node "/ABSOLUTE/PATH/TO/capcut-mcp/src/server.js"…or add a project-scoped .mcp.json at your repo root (copy mcp.json.example and edit the paths):
{
"mcpServers": {
"capcut": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/capcut-mcp/src/server.js"],
"env": { "CAPCUT_DRAFTS_DIR": "", "CAPCUT_TEMPLATE_DRAFT": "" }
}
}
}Leave the env values blank to auto-detect, or fill them in (see Configure above). Restart Claude Code; the tools then appear as mcp__capcut__*.
Workflow (important)
Close CapCut on the draft you want to edit. CapCut autosaves on a timer; writing while it's open gets clobbered.
capcut_saverefuses if CapCut is running or the draft's.lockedfile is present (override withforce: trueonly if you know it's safe).Edits are a session:
capcut_add_*/capcut_move_*etc. accumulate in memory. Nothing hits disk untilcapcut_save.capcut_savewritesdraft_content.json(+ meta) atomically after making a.mcpbakbackup, and runscapcut_validate.Reopen the draft in CapCut.
All times at the tool boundary are in seconds (converted to CapCut's microseconds internally).
Tools
Tool | Purpose |
| list drafts + duration + lock status |
| full read: canvas, fps, tracks, every segment |
| copy a draft (optionally emptied) for a fresh build |
| place media at a time on a track |
| text overlay (needs a text template draft) |
| new video/audio/text/sticker track |
| change start time / track |
| change start / duration / source in-point |
| split at a time |
| remove |
| scale / position / rotation / opacity / volume / speed / visibility |
| advanced deep-merge escape hatch for undocumented ops |
| overlaps, duplicate ids, missing media |
| persist / drop the session |
Companion skill
A Claude skill ships in skills/capcut-reels/. It teaches Claude the full production pipeline these tools were built for — record → captions (WhisperFlow) → motion graphics (HyperFrames) → probe/render (ffprobe/ffmpeg) → assemble & caption the CapCut draft via this MCP. Copy the capcut-reels folder into your Claude skills directory to install it.
Guardrails
Won't save while CapCut is open (autosave clobber protection).
.mcpbakbackup + atomic temp-then-rename write.Post-edit validation (overlaps, duplicate material ids, layer-order clashes, missing media).
New drafts are cloned from a known-good base, never built from an empty object.
Limitations (be honest with these)
CapCut's draft format is proprietary and undocumented, and changes between CapCut versions. This server is defensive (clone-from-template, backup, validate) but a CapCut update can still shift the schema — keep the backups.
Effects, transitions, animations, and rich text styling are best-effort. The well-understood ops (place/move/trim/split media + basic text + transforms) are solid; anything exotic should go through
capcut_raw_patchagainst a template you've inspected.capcut_add_textneeds a draft with a text layer to harvest from (CAPCUT_TEMPLATE_DRAFT).
Architecture
src/core.js— pure engine (CapCutDraftclass +cloneDraft/listDrafts). Testable without MCP.src/server.js— thin MCP stdio server; declares the tools and calls the core.
License & credits
MIT © 2026 James Aldrin Boncales. Contributions and issues welcome. If this saves you time, a link back to jmsldrn.com is appreciated — not required.
Always keep a copy of important drafts before batch-editing. This software is provided "as is", without warranty.
Available Tools
17 toolscapcut_add_audioC
Add an audio clip at a time on a track.
Inputs: file (required), atSec (required), draft (required), posX, +10 more.
capcut_add_imageC
Add an image at a time on a track.
Inputs: file (required), atSec (required), draft (required), posX, +10 more.
capcut_add_textB
Add a text overlay. Requires a text template (a draft with a text layer; see CAPCUT_TEMPLATE_DRAFT).
Inputs: text (required), atSec (required), draft (required), posX, +5 more.
capcut_add_trackC
Add a new track (video | audio | text | sticker).
Inputs: draft (required), name, type.
capcut_add_videoA
Add a video clip at a time on a track. Session edit; call capcut_save to persist.
Inputs: file (required), atSec (required), draft (required), posX, +10 more.
capcut_clone_draftA
Copy a draft folder to a new name (valid scaffolding). empty:true clears all clips/tracks for a fresh build.
Inputs: base (required), newName (required), empty.
capcut_delete_segmentC
Remove a segment.
Inputs: draft (required), segmentId (required).
capcut_discardA
Drop unsaved session edits and reload the draft from disk.
Inputs: draft (required).
capcut_list_draftsA
List CapCut drafts in /root/Movies/CapCut/User Data/Projects/com.lveditor.draft with duration and lock status.
Inputs: no named parameters.
capcut_move_segmentB
Move a segment to a new start time and optionally another track.
Inputs: atSec (required), draft (required), segmentId (required), trackIndex.
capcut_raw_patchA
Advanced escape hatch: deep-merge a JSON patch into draft_content (undocumented ops). Use with care.
Inputs: draft (required), patch (required).
capcut_read_timelineA
Read a draft: canvas, fps, tracks and every segment (id, media, times, layer). Read-only.
Inputs: draft (required).
capcut_saveA
Write session edits to disk (backs up .mcpbak, validates). Refuses if CapCut is open unless force:true.
Inputs: draft (required), force.
capcut_set_propsC
Set transform / opacity / volume / speed / visibility on a segment.
Inputs: draft (required), segmentId (required), posX, posY, +8 more.
capcut_split_segmentB
Split a segment into two at a timeline time.
Inputs: atSec (required), draft (required), segmentId (required).
capcut_trim_segmentB
Change a segment start / duration / source in-point (seconds).
Inputs: draft (required), segmentId (required), atSec, durSec, +1 more.
capcut_validateB
Check the (in-session) draft for overlaps, duplicate ids/render_index, missing media.
Inputs: draft (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Each tool has a clearly distinct function: listing, reading, cloning, adding different media types, manipulating segments (trim/move/split/delete), setting properties, validating, saving, and discarding. The add_* tools are distinguished by media type, and raw_patch is explicitly an advanced escape hatch.
Most tools follow a 'capcut_verb_noun' pattern (e.g., list_drafts, add_video, delete_segment), but a few deviate: validate, save, and discard are bare verbs, and raw_patch is adjective_noun. The prefix is consistent, so the inconsistency is minor.
17 tools is well-scoped for a video editing server, covering asset insertion, timeline manipulation, session management, and validation without feeling bloated. Each tool serves a necessary role in the editing workflow.
The surface covers the core lifecycle: reading, cloning, adding assets, editing segments, and saving/validating. Minor gaps exist (e.g., no direct draft deletion, no text content editing, no effect/transition tools), but raw_patch fills advanced needs, so agents can work around these.
Maintenance
Related MCP Connectors
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
CapCut MCP server for ChatGPT, Claude and any AI agent: list drafts, export draft, add auto captions, share draft for review, invite members to a space, set member role, transfer editing permission and search templates in your own CapCut account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to CapCut yourself; Cotlet does not store your password and you need no CapCut API key. About the official CapCut API: Partly. CapCut has an official plugin for the ChatGPT desktop app that builds drafts and adds captions, effects and templates (capcut.com, checked 6 Nov 2026). Setup and FAQ: https://cotlet.dev/integrations/capcut-api-mcp-server
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
MCP server for Hailuo (MiniMax) AI video generation
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA local MCP server that gives Claude Desktop full video editing capabilities via FFmpeg, Whisper, and yt-dlp.-
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to automate CapCut Pro video editing, including creating drafts, adding media, text, effects, and keyframes, with support for both local and remote connections.11MIT
- AlicenseAqualityDmaintenanceLocal MCP server enabling Claude to create CapCut/Jianying video drafts with text, video, audio, images, subtitles, effects, stickers, and keyframe animations, then save drafts for the CapCut app. It wraps the VectCutAPI backend to generate draft files.102MIT
- AlicenseAqualityCmaintenanceAn MCP server that reads and builds CapCut projects locally, enabling natural language queries about project contents, missing media, and creation of new edits including beat-synced cuts.26MIT