Skip to main content
Glama
README.md
# capcut-mcp

`capcut-mcp` is a zero-dependency stdio MCP server that reads and writes CapCut desktop draft folders on local disk. An agent can build a vertical short (1080×1920) as a draft; you open that draft in CapCut and export the MP4 yourself. The server does not contact CapCut, and it refuses encrypted drafts instead of decrypting them. Every write tool is a dry run until you pass `dry_run: false`. An overwrite keeps a one-step `.bak` copy.

Built by MCP Smith, a Grok Bot.

## Requirements

- Node.js >= 22.18 (runs `server.ts` with native type stripping; no build step and no `npm install`)
- CapCut 9.5.x desktop
- macOS or Windows

## Install

Default drafts folder:

- macOS: `~/Movies/CapCut/User Data/Projects/com.lveditor.draft`
- Windows: `%LOCALAPPDATA%\CapCut\User Data\Projects\com.lveditor.draft`

Point `CAPCUT_DRAFTS_ROOT` at that folder, or at the custom location from CapCut settings. `CAPCUT_EXPORT_ROOT` is optional; it is the only folder `capcut_export_draft` may copy into.

```json
{
  "mcpServers": {
    "capcut": {
      "command": "node",
      "args": ["/Users/<user>/capcut-mcp/server.ts"],
      "env": {
        "CAPCUT_DRAFTS_ROOT": "/Users/<user>/Movies/CapCut/User Data/Projects/com.lveditor.draft"
      }
    }
  }
}
```

On Windows, use the same shape with `C:\\Users\\<user>\\AppData\\Local\\CapCut\\User Data\\Projects\\com.lveditor.draft`.

The repo root is also an Agent Plugin (`plugin.json`, `mcp.json`, `skills/capcut/SKILL.md`). `mcp.json` starts `node server.ts` in the plugin folder and sets no environment variables. Set `CAPCUT_DRAFTS_ROOT` in the client.

## Tools

Reads: `capcut_list_drafts`, `capcut_read_draft`.

Writes (dry run by default): `capcut_create_draft`, `capcut_add_clip`, `capcut_add_audio`, `capcut_add_text`, `capcut_add_subtitles`, `capcut_add_cuts`, `capcut_remove_segment`, `capcut_make_short`, `capcut_set_timeline`, `capcut_set_clip`, `capcut_style_text`, `capcut_add_keyframes`, `capcut_add_markers`, `capcut_add_transition`, `capcut_add_filter`, `capcut_add_animation`, `capcut_add_sticker`, `capcut_add_effect`, `capcut_add_adjustment_layer`, `capcut_set_speed_curve`, `capcut_duck_music`, `capcut_compound_clip`, `capcut_insert_preset`, `capcut_copy_text_template`, `capcut_reorder_track`, `capcut_register_draft`, `capcut_export_draft`, `capcut_export_srt`, `capcut_export_chapters`.

`capcut_make_short` is the one-call short: clip, title, SRT, and music.

## Quick demo

Quit CapCut before a real write. Dry-run first.

```sh
sh scripts/make-demo-assets.sh demo   # needs ffmpeg; writes demo/clip.mp4 and demo/music.m4a
npm test
```

Example call (prints a plan, writes nothing):

```json
{"tool":"capcut_make_short","args":{"name":"Launch Short","clip_path":"/Users/<user>/capcut-mcp/demo/clip.mp4","title":"Made by an AI agent","srt_path":"/Users/<user>/capcut-mcp/demo/demo.srt","music_path":"/Users/<user>/capcut-mcp/demo/music.m4a","dry_run":true}}
```

Read the plan, then repeat the same call with `"dry_run": false`. Open the project in CapCut and export there. Recording notes are in DEMO-SCRIPT.md.

## Screenshot

![CapCut MCP: your agents edit for you](docs/assets/demo.png)

## Disclaimer

Unofficial. Not affiliated with, endorsed by, or sponsored by CapCut or ByteDance.

## License

MIT. See [LICENSE](LICENSE).

Draft field notes follow community documentation from [capcut-cli](https://github.com/renezander030/capcut-cli) (MIT). See NOTICE.

TDQS

A3.7/5.0

Scored across 31 tools

Disambiguation4/5

Most tools target a distinct resource+action (clip, audio, text, subtitles, filter, effect, transition, markers). However there is real overlap: capcut_make_short bundles add_clip/add_text/add_subtitles/add_audio, capcut_set_clip includes constant speed while capcut_set_speed_curve handles curves, and capcut_add_clip accepts audio though capcut_add_audio exists for music/VO. These boundaries are navigable but could cause misselection.

Naming Consistency5/5

Every tool uses the capcut_ prefix plus a clean verb_noun pattern (add_text, set_clip, list_drafts, read_draft, create_draft, export_draft, add_keyframes, remove_segment). Conventions are fully consistent with no camelCase or style mixing.

Tool Count3/5

31 tools is on the heavy side and borders on over-exposed for a single MCP surface. The domain is genuinely complex (draft lifecycle, timeline, styling, effects, export), and most tools earn their place, but the count is high enough that some priming/consolidation would reduce surface area.

Completeness4/5

Coverage is impressively broad: draft create/read/list/register/export, clip/audio/subtitle/text insertion, transitions, filters, effects, adjustment layers, animations, keyframes, speed curves, ducking, markers, and SRT/chapter export. Minor gaps remain (draft deletion/duplication, moving segments between tracks/drafts, trimming), but core editing workflows are fully supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues