capcut-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CAPCUT_DRAFTS_DIR | No | 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 | No | Name of a draft that contains video and text layers, used to harvest templates when the draft you're editing lacks one. Default is 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 the capcut_add_text tool won't work. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| capcut_list_draftsA | List CapCut drafts in /root/Movies/CapCut/User Data/Projects/com.lveditor.draft with duration and lock status. |
| capcut_list_filtersA | Search the bundled catalog of 474 real CapCut filters by name (case/space-insensitive substring). Omit query to see the first matches. |
| capcut_list_transitionsA | Search the bundled catalog of 116 real CapCut transitions by name (case/space-insensitive substring). Omit query to see the first matches. |
| capcut_list_masksA | List the 9 available mask shapes. |
| capcut_read_timelineA | Read a draft: canvas, fps, tracks and every segment (id, media, times, layer). Reflects any pending unsaved edits from this session. |
| capcut_clone_draftA | Copy a draft folder to a new name (valid scaffolding). empty:true clears all clips/tracks for a fresh build. |
| capcut_add_videoB | Add a video clip at a time on a track. Session edit; call capcut_save to persist. |
| capcut_add_imageC | Add an image at a time on a track. |
| capcut_add_audioC | Add an audio clip at a time on a track. |
| capcut_add_textC | Add a text overlay. Requires a text template (a draft with a text layer; see CAPCUT_TEMPLATE_DRAFT). |
| capcut_add_trackC | Add a new track (video | audio | text | sticker). |
| capcut_move_segmentB | Move a segment to a new start time and optionally another track. |
| capcut_trim_segmentA | Change a segment start / duration / source in-point (seconds). With ripple:true, every later segment (on this track, or every track if rippleAllTracks:true) shifts by the resulting time change instead of leaving a gap or an overlap. |
| capcut_split_segmentB | Split a segment into two at a timeline time. |
| capcut_delete_segmentA | Remove a segment. With ripple:true, every later segment (on this track, or every track if rippleAllTracks:true) shifts earlier to close the gap instead of leaving dead space. |
| capcut_set_propsC | Set transform / opacity / volume / speed / visibility on a segment. |
| capcut_add_filterA | Attach a real CapCut filter (from capcut_list_filters) to a segment, replacing any filter already on it. intensity is 0-1 (default: the filter's own default). |
| capcut_add_transitionA | Attach a real CapCut transition (from capcut_list_transitions) on this segment, applied between it and whichever segment follows immediately on the same track. |
| capcut_add_maskA | Attach a mask shape (from capcut_list_masks) to a segment, replacing any mask already on it. center/width/height/rotation/feather/roundCorner are fractions (0-1) unless noted. |
| capcut_add_keyframeA | Add/replace a keyframe on a segment property at a time, creating real per-property animation (not a static value). Call twice with different atSec/value on the same property to animate between them. property must be one of: KFTypePositionX, KFTypePositionY, KFTypeRotation, KFTypeScaleX, KFTypeScaleY, UNIFORM_SCALE, KFTypeAlpha, KFTypeSaturation, KFTypeContrast, KFTypeBrightness, KFTypeVolume. |
| capcut_remove_keyframesA | Remove all keyframes for one property on a segment (it reverts to a static value from clip/set_props). |
| capcut_add_audio_fadeA | Set fade-in/fade-out duration on an audio (or audio-carrying) segment. Omit either to leave it unchanged. |
| capcut_add_stickerA | Add a sticker by CapCut resource_id (get one by inspecting a draft where you or the user already placed that sticker once -- there is no bundled sticker catalog, CapCut's sticker library is too large/volatile to ship). Placed on a new or existing sticker track. |
| capcut_undoA | Undo the last edit in this session (up to 20 steps back). Does not affect anything already saved to disk. |
| capcut_raw_patchA | Advanced escape hatch: deep-merge a JSON patch into draft_content (undocumented ops). Use with care. |
| capcut_validateB | Check the (in-session) draft for overlaps, duplicate ids/render_index, missing media. |
| capcut_saveA | Write session edits to disk (backs up .mcpbak, validates). Refuses if CapCut is open unless force:true. |
| capcut_discardA | Drop unsaved session edits and reload the draft from disk. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Every tool maps to a distinct resource/action (drafts, masks, filters, transitions, segments, keyframes, session state), and overlapping operations are differentiated by clear object nouns (e.g., add_video vs add_track; set_props vs add_keyframe). The only wildcard is raw_patch, but it is explicitly framed as an escape hatch rather than a competing workflow.
Tools consistently use capcut_<verb>_<noun> in snake_case (list_drafts, add_video, trim_segment, save), making the API predictable. Minor deviations like capcut_read_timeline instead of list/get and the adjective-noun raw_patch prevent a perfect score.
At 28 tools, the server exceeds the comfortable range and will feel heavy for an agent to discover and select from, even though most tools are distinct. A more consolidated surface would be more appropriate for the apparent scope.
The toolkit covers the core editing lifecycle: draft discovery/cloning, timeline inspection, adding/removing/transforming segments, effects, keyframes, and session persistence/validation. Gaps like no explicit track deletion, no direct effect removal (only replacement), and no sticker catalog create minor workarounds but not dead ends.