capcut-mcp
An MCP server that lets Claude read and edit CapCut desktop draft projects, enabling manipulation of video clips, text, audio, and images with atomic saves and validation.
README
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)
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 install
Then 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 |
|---|---|
capcut_list_drafts |
list drafts + duration + lock status |
capcut_read_timeline |
full read: canvas, fps, tracks, every segment |
capcut_clone_draft |
copy a draft (optionally emptied) for a fresh build |
capcut_add_video / _image / _audio |
place media at a time on a track |
capcut_add_text |
text overlay (needs a text template draft) |
capcut_add_track |
new video/audio/text/sticker track |
capcut_move_segment |
change start time / track |
capcut_trim_segment |
change start / duration / source in-point |
capcut_split_segment |
split at a time |
capcut_delete_segment |
remove |
capcut_set_props |
scale / position / rotation / opacity / volume / speed / visibility |
capcut_raw_patch |
advanced deep-merge escape hatch for undocumented ops |
capcut_validate |
overlaps, duplicate ids, missing media |
capcut_save / capcut_discard |
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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.