capcut-mcp-server
Local 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.
README
capcut-mcp-server
A local MCP (Model Context Protocol) server that lets Claude drive CapCut/Jianying video editing — create a draft, add text/video/audio/image tracks, subtitles, effects, stickers, and keyframe animations, then save a draft file CapCut can open.
How this actually works (read this first)
CapCut has no public API. This server does not talk to the CapCut app directly. It's a thin wrapper around the local HTTP backend from the open-source VectCutAPI project, which generates CapCut/Jianying draft files that you then copy into CapCut's drafts folder.
That means there are two things running for this to work:
Claude <--stdio--> capcut-mcp-server (this project) <--HTTP--> VectCutAPI's capcut_server.py
You must set up and run VectCutAPI's Python backend yourself — this project does not include or install it.
1. Set up the VectCutAPI backend (prerequisite)
git clone https://github.com/sun-guannan/VectCutAPI.git
cd VectCutAPI
python -m venv venv-capcut
source venv-capcut/bin/activate # Windows: venv-capcut\Scripts\activate
pip install -r requirements.txt
cp config.json.example config.json # edit if needed
python capcut_server.py # starts the HTTP API on http://127.0.0.1:9001
Leave this running in its own terminal. Requirements: Python 3.10+, FFmpeg, and CapCut or Jianying installed (international CapCut works; the desktop app itself is only needed to open the drafts this produces, not to generate them).
2. Build this server
npm install
npm run build
This produces dist/index.js, the stdio entry point.
3. Point it at your VectCutAPI backend
By default the server calls http://127.0.0.1:9001. Override with an env var if
you changed the port:
CAPCUT_API_URL=http://127.0.0.1:9001
4. Wire it into a client
This is a local stdio server, not a remote connector — it runs as a subprocess of whatever client launches it, so it's added differently depending on where you want to use it:
Claude Desktop
Edit your claude_desktop_config.json (Settings → Developer → Edit Config) and add:
{
"mcpServers": {
"capcut": {
"command": "node",
"args": ["/absolute/path/to/capcut-mcp-server/dist/index.js"],
"env": { "CAPCUT_API_URL": "http://127.0.0.1:9001" }
}
}
}
Restart Claude Desktop afterward.
Claude Code
claude mcp add capcut -- node /absolute/path/to/capcut-mcp-server/dist/index.js
Cowork
Cowork's "Add custom connector" flow (Settings → Customize → Connectors) expects a remote MCP server URL reachable from Anthropic's cloud — it can't launch a local stdio subprocess on your machine. To use this server from Cowork you'd need to deploy it (and the VectCutAPI backend) somewhere with a public HTTPS endpoint and switch this server's transport to streamable HTTP. For local-only use, Claude Desktop or Claude Code (above) are the supported paths.
Available tools
| Tool | What it does |
|---|---|
capcut_create_draft |
Create a new draft (project). Call this first. |
capcut_add_text |
Add a text/title/caption element, with shadow, background panel, multi-style segments. |
capcut_add_video |
Add a video clip to the timeline. |
capcut_add_audio |
Add an audio clip (music, voiceover, SFX). |
capcut_add_image |
Add a static image asset. |
capcut_add_subtitle |
Import an SRT subtitle file. |
capcut_add_effect |
Apply a visual effect/filter over a time range. |
capcut_add_sticker |
Place a sticker asset. |
capcut_add_video_keyframe |
Add property keyframes (scale/position/rotation/alpha) for animation. |
capcut_save_draft |
Save/finalize the draft. Call this last. |
Every add_* tool accepts an extra_params object as an escape hatch for any
VectCutAPI field not modeled explicitly in the typed schema — the underlying API
has more optional fields (nested transform/animation objects, etc.) than are fully
documented, so extra_params is merged directly into the request body.
Typical workflow
capcut_create_draft→ getdraft_id- One or more
capcut_add_video/capcut_add_image/capcut_add_audio/capcut_add_text/capcut_add_subtitle/capcut_add_effect/capcut_add_sticker/capcut_add_video_keyframecalls against thatdraft_id capcut_save_draft→ generates adfd_*folder next tocapcut_server.py- Copy that folder into your CapCut/Jianying drafts directory to open it in the app
Troubleshooting
- "Could not reach the CapCut API backend" —
capcut_server.pyisn't running, or is running on a different port thanCAPCUT_API_URLpoints to. - CapCut doesn't show the draft — make sure you copied the generated
dfd_*folder into CapCut's actual drafts directory (not just left it next tocapcut_server.py). - A field you need isn't in the schema — pass it via
extra_params; check VectCutAPI'sexample.pyfor the exact field name the backend expects.
Development
npm run dev # tsx watch — rebuild/rerun on save
npm run build # tsc compile to dist/
npm run clean # remove dist/
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.