capcut-mcp
This server allows programmatic creation and editing of CapCut desktop video drafts by manipulating local project files (draft_content.json and draft_meta_info.json), which can then be opened in CapCut for preview and export.
Create & manage drafts
create_draft— Initialize an empty project with a custom name, canvas size (default 1080×1920), and frame rate (default 30fps)list_drafts— Browse all drafts in the local CapCut drafts folderget_draft— Retrieve a full timeline summary including tracks, segments, timings, and total duration
Add media
add_video— Insert a video file with control over position (x,y), scale, rotation, volume, timeline placement (atSeconds), clip duration, and source start offset; duration/dimensions are auto-detected viaffprobeadd_image— Place a still image with configurable on-screen duration (default 5s), position, scale, and rotationadd_audio— Attach music or voiceover with volume control, timeline positioning, and source trimmingadd_text— Insert text captions/titles with control over content, color, font size, position, scale, rotation, and display duration (default 3s)
Automatic track management — Segments append to the end of their track by default; overlapping segments are automatically placed on a new track so overlays work seamlessly.
Click on "Install 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-mcpCreate a draft called 'My Video' and add a 10-second video clip"
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
MCP server that creates and edits CapCut desktop drafts locally. CapCut has no public API, so this server writes the project files CapCut reads from disk (draft_content.json + draft_meta_info.json). You build the timeline through MCP tools and then open the project in CapCut desktop to preview and export.
Tools
Tool | Description |
| Creates an empty draft (default canvas 1080x1920 @ 30fps) |
| Lists drafts in the drafts folder |
| Returns the timeline: tracks, segments, timings |
| Adds a video clip (duration/dimensions detected via ffprobe) |
| Adds a still image (default 5s on screen) |
| Adds music or voiceover to an audio track |
| Adds a text overlay with color, size and position |
Placement rules: segments append to the end of their track by default (atSeconds overrides). If a segment overlaps an existing one, a new track is created automatically, so overlays "just work".
Related MCP server: Media-Editor-MCP
Setup
pnpm install
pnpm buildRegister in Claude Code:
claude mcp add --scope user capcut -- node /absolute/path/to/capcut-mcp/dist/index.jsConfiguration
Env var | Default | Purpose |
|
| Where drafts are read/written (CapCut's folder on macOS) |
Installing ffmpeg (brew install ffmpeg) is recommended: ffprobe detects media duration and dimensions automatically. Without it, image dimensions fall back to macOS sips, and video/audio clips require an explicit durationSeconds.
Architecture
Layered, dependency-injected design. CompositionRoot is the only place where concrete classes are instantiated; every collaborator is injected through constructor interfaces (ports & adapters).
classDiagram
class DraftToolController {
+registerOn(server)
}
class DraftService {
+createDraft()
+addVideo() / addImage() / addAudio() / addText()
+listDrafts() / getDraft()
}
class DraftDocument {
+insertSegment()
+addMaterial()
+summary()
}
class DraftRepository {
<<interface>>
}
class MediaProbe {
<<interface>>
}
class FileChecker {
<<interface>>
}
class FsDraftRepository
class ChainMediaProbe
class FfprobeMediaProbe
class SipsImageProbe
class MaterialFactory
class SegmentFactory
class DraftContentFactory
DraftToolController --> DraftService
DraftService --> DraftRepository
DraftService --> MediaProbe
DraftService --> FileChecker
DraftService --> MaterialFactory
DraftService --> SegmentFactory
DraftService --> DraftContentFactory
DraftRepository <|.. FsDraftRepository
MediaProbe <|.. ChainMediaProbe
ChainMediaProbe o--> FfprobeMediaProbe
ChainMediaProbe o--> SipsImageProbe
FsDraftRepository --> DraftDocumentPatterns in play:
Facade —
DraftServiceexposes one use case per tool and owns the workflow.Repository —
FsDraftRepositoryisolates all disk I/O and the meta-info bookkeeping.Factory —
DraftContentFactory/MaterialFactory/SegmentFactoryencapsulate CapCut's JSON blocks.Strategy + Chain of Responsibility —
MediaProbeimplementations try ffprobe first, thensips.Dependency Injection — constructor injection everywhere;
IdGeneratorandClockare injected too, which keeps every unit test deterministic (seesrc/testing/fakes.ts).
DraftDocument wraps the raw draft JSON and only mutates the parts it understands, preserving any field CapCut adds on its own.
Validation
Verified end to end against CapCut desktop 3.3.0 (macOS): generated drafts show up in CapCut's project list with the right duration, open in the editor, and the full timeline loads — video, photo, audio (with volume) and text overlays with their exact timings. CapCut's own autosave round-trips the generated structure without dropping anything.
Limitations
Media must live on a stable user path (e.g. under
~/Moviesor~/Documents). CapCut marks files under/tmpas "not accessible" and asks to relink them.No effects, transitions, keyframes or exports yet — CapCut itself does the rendering/export.
Drafts heavily edited inside CapCut can contain features this server does not model; it will preserve them on load/save, but it only manipulates video/image/audio/text segments.
Development
pnpm test # vitest unit tests
pnpm typecheck
pnpm dev # run from sources (tsx)Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alex28042/capcut-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server