An extended MCP (Model Context Protocol) server for automating CapCut video editing through Claude Code. Supports parametrized typography, animation presets, and full talking-head production workflows.
This project is a fork and extension of capcut-mcp-server by @atx-guy, licensed under MIT.
All original tools have been preserved and extended with:
- Parametrized typography system (font, size, position, color)
- Animation presets library
- Talking head production preset
- Reels/Shorts workflow preset
- Subtitle style system
| Tool | Description |
|---|---|
capcut_create_draft |
Create a new project with custom dimensions and fps |
capcut_add_video |
Add video clip with timing, transitions and speed |
capcut_add_audio |
Add audio with volume and fade effects |
capcut_add_text |
Add styled text with fonts, colors and animations |
capcut_add_subtitle |
Import SRT subtitles with custom styling |
capcut_add_effect |
Apply visual effects |
capcut_save_draft |
Save project to CapCut drafts folder |
capcut_talking_head |
Full talking head preset (one command) |
- Node.js 18+
- Claude Code
- CapCut (Windows or Mac)
git clone https://github.com/TU_USUARIO/capcut-mcp-server-pro
cd capcut-mcp-server-pro
npm install
npm run build
claude mcp add capcut -- node /ruta/dist/index.jsclaude
> Crea un proyecto talking head con el video en C:/grabacion.mp4,
subtΓtulos en blanco, fuente Montserrat 72px, y guΓ‘rdalo en CapCutMIT β see LICENSE
A professional Model Context Protocol (MCP) server for CapCut Pro video editing automation. This server enables AI assistants and applications to create and edit videos programmatically through CapCut's powerful editing capabilities.
- Complete Video Editing Suite: Create drafts, add videos, audio, text, images, effects, and more
- Professional Tools: 11 specialized tools for video production workflows
- Type-Safe: Built with TypeScript for reliability and excellent IDE support
- Flexible Transport: Supports both stdio (local) and HTTP (remote) connections
- Input Validation: Comprehensive Zod schemas with helpful error messages
- Dual Output Formats: JSON for machines, Markdown for humans
Before using this MCP server, you need to have the VectCutAPI (CapCut API server) running:
-
Install VectCutAPI:
git clone https://github.com/sun-guannan/VectCutAPI.git cd VectCutAPI pip install -r requirements.txt -
Start the API Server:
python capcut_server.py
The server will start on
http://localhost:9001by default.
npm install -g capcut-mcp-server# Clone this repository
git clone <your-repo-url>
cd capcut-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Test the server
npm startAdd to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"capcut": {
"command": "node",
"args": ["/absolute/path/to/capcut-mcp-server/dist/index.js"],
"env": {
"CAPCUT_API_URL": "http://localhost:9001"
}
}
}
}The server supports two transport modes:
node dist/index.jsTRANSPORT=http PORT=3000 node dist/index.jsCreate a new video editing project with custom dimensions and frame rate.
Example:
{
"width": 1920,
"height": 1080,
"fps": 30
}Add video clips with transitions, speed control, and volume adjustments.
Example:
{
"draft_id": "abc123",
"video_url": "https://example.com/video.mp4",
"start": 0,
"end": 10,
"volume": 0.8,
"transition": "fade_in",
"speed": 1.0
}Add background music or sound effects with fade in/out.
Example:
{
"draft_id": "abc123",
"audio_url": "https://example.com/music.mp3",
"start": 0,
"end": 30,
"volume": 0.5,
"fade_in": 2,
"fade_out": 2
}Add styled text overlays with animations, shadows, and backgrounds.
Example:
{
"draft_id": "abc123",
"text": "Welcome!",
"start": 0,
"end": 3,
"font_size": 72,
"font_color": "#FFFFFF",
"background_color": "#000000",
"shadow_enabled": true,
"animation": "fade_in"
}Add image overlays with positioning, scaling, and rotation.
Example:
{
"draft_id": "abc123",
"image_url": "https://example.com/logo.png",
"start": 0,
"end": 5,
"position_x": 0.9,
"position_y": 0.1,
"scale": 0.3
}Import subtitles from SRT format with custom styling.
Example:
{
"draft_id": "abc123",
"srt_content": "1\n00:00:01,000 --> 00:00:03,000\nWelcome to my video",
"font_size": 36,
"font_color": "#FFFFFF",
"background_enabled": true
}Create smooth animations using keyframe interpolation.
Example:
{
"draft_id": "abc123",
"track_name": "main",
"property_types": ["scale_x", "scale_y"],
"times": [0, 2, 4],
"values": ["1.0", "1.5", "1.0"]
}Apply visual effects like blur, brightness, saturation, etc.
Example:
{
"draft_id": "abc123",
"effect_name": "blur",
"start": 0,
"end": 2,
"intensity": 0.7
}Add decorative stickers or emojis.
Example:
{
"draft_id": "abc123",
"sticker_url": "https://example.com/emoji.png",
"start": 1,
"end": 5,
"position_x": 0.9,
"position_y": 0.1,
"scale": 0.2
}Save the draft to import into CapCut application.
Example:
{
"draft_id": "abc123"
}Get duration and metadata of media files.
Example:
{
"url": "https://example.com/video.mp4"
}// 1. Create a new draft
const draft = await capcut_create_draft({
width: 1920,
height: 1080,
fps: 30
});
// 2. Add background video
await capcut_add_video({
draft_id: draft.draft_id,
video_url: "https://example.com/background.mp4",
start: 0,
end: 10,
volume: 0.6
});
// 3. Add title text
await capcut_add_text({
draft_id: draft.draft_id,
text: "Amazing Video",
start: 1,
end: 4,
font_size: 72,
animation: "fade_in"
});
// 4. Add background music
await capcut_add_audio({
draft_id: draft.draft_id,
audio_url: "https://example.com/music.mp3",
start: 0,
end: 10,
volume: 0.5
});
// 5. Add zoom animation
await capcut_add_keyframe({
draft_id: draft.draft_id,
track_name: "main",
property_types: ["scale_x", "scale_y"],
times: [0, 5, 10],
values: ["1.0", "1.2", "1.0"]
});
// 6. Save the draft
const result = await capcut_save_draft({
draft_id: draft.draft_id
});
console.log(`Draft saved to: ${result.draft_url}`);- AI-Powered Video Generation: Let AI assistants create complete video projects
- Batch Video Production: Automate creation of multiple videos from templates
- Social Media Content: Generate TikTok, Reels, and YouTube Shorts automatically
- Educational Content: Create tutorial videos with synchronized text and audio
- Marketing Automation: Generate promotional videos at scale
- Ensure VectCutAPI server is running on port 9001
- Check
CAPCUT_API_URLenvironment variable is correct - Verify network connectivity to the API server
# Clean and rebuild
rm -rf dist node_modules package-lock.json
npm install
npm run build- Ensure all media URLs are accessible
- Use direct links to files (avoid redirects)
- Check file format is supported
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this in your projects!
- Built on top of VectCutAPI by sun-guannan
- Uses the Model Context Protocol specification
- Powered by Anthropic's MCP SDK
For issues related to:
- This MCP Server: Open an issue in this repository
- VectCutAPI: Visit https://github.com/sun-guannan/VectCutAPI
- CapCut Application: Contact CapCut support
Note: This is an unofficial MCP server for CapCut Pro. It requires the VectCutAPI backend to function. CapCut is a trademark of Bytedance Ltd.