capcut-mcp
This server enables AI agents to fully automate CapCut Pro video editing by programmatically creating and manipulating drafts via a Model Context Protocol (MCP) interface.
Create drafts (
capcut_create_draft): Initialize projects with custom dimensions (HD, 4K, vertical 9:16) and frame rates (24–120 fps).Add video clips (
capcut_add_video): Insert video with cut editing, speed control, volume adjustment, and transitions (fade, dissolve, wipe, slide, zoom).Add audio tracks (
capcut_add_audio): Insert music or sound effects with volume control and fade in/out.Add text overlays (
capcut_add_text): Create styled text with custom fonts, colors, size, shadow, background, positioning, and animations (fade, slide, zoom, bounce).Add images (
capcut_add_image): Place image overlays with positioning, scaling, rotation, and animation effects.Add subtitles (
capcut_add_subtitle): Import SRT-format subtitles with font, color, size, and background styling — including CJK/multilingual font support.Add keyframe animations (
capcut_add_keyframe): Animate properties (scale, opacity, rotation, position) by interpolating between keyframes for smooth zoom-in/out and other effects.Apply visual effects (
capcut_add_effect): Add blur, sharpen, brightness, contrast, saturation, vignette, grain, and glitch with adjustable intensity.Add stickers (
capcut_add_sticker): Insert decorative sticker or emoji overlays with positioning, scale, and rotation control.Save drafts (
capcut_save_draft): Export the project as a CapCut-compatible draft folder ready to import into the CapCut desktop app.Get media metadata (
capcut_get_duration): Retrieve duration, format, and resolution from video or audio files before editing.
Integrates with CapCut, ByteDance's professional video editing software, enabling automated video creation and editing workflows including adding video clips, audio, text, images, effects, subtitles, keyframes, and saving drafts.
Click on "Deploy 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-mcp Create a new 1080p draft for my travel video"
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 Server (Upgraded by Antigravity)
이 프로젝트는 CapCut Pro 영상 편집을 AI 에이전트가 완벽하게 자동화할 수 있도록 지원하는 Model Context Protocol (MCP) 서버입니다. 기존 오픈소스 기반 위에 **우리 팀(Antigravity & Luca Agent)**의 필요에 맞춰 렌더링 파이프라인, 아시아권 폰트 지원 및 트랜지션 처리 로직을 대폭 업그레이드했습니다! 🚀
✨ 무엇이 업그레이드 되었나요? (Antigravity's Touch)
VectCutAPI 안정성 극대화 🛠️
Python 기반의 로컬 렌더링 서버인
VectCutAPI를 내장하고,save_draft_impl.py등의 저장 로직을 개선하여 캡컷 초안(Draft)이 안전하게 사용자 폴더에 꽂히도록 수정했습니다.
다국어(CJK) 폰트 완벽 지원 🌏
기본
System폰트 에러를 해결하고,SourceHanSansCN_Regular등 다국어/한글 지원 폰트를 매핑하여 자막 깨짐 없이 깔끔하게 출력되도록 폰트 엔진을 업그레이드했습니다.
고급 트랜지션 및 키프레임 보강 🌀
Dissolve,Mix등 캡컷 고유의 대소문자 구분 트랜지션 에러를 해결하고, 줌인/줌아웃 등add_video_keyframe을 활용한 미세 애니메이션 제어를 강화했습니다.
유튜브 쇼츠 자동화 최적화 📱
9:16 비율(세로형) 렌더링 및 디졸브 트랜지션을 자동 적용하여 음원에 맞춰 이미지를 롤링하는 유튜브 파이프라인에 최적화되었습니다.
Related MCP server: capcut-mcp
🚀 시작하기 (Installation & Setup)
CapCut MCP는 2단계 구조로 실행됩니다. Python 서버(VectCutAPI)가 캡컷 초안을 만들고, Node.js 서버(MCP)가 에이전트와 소통합니다.
1. Python 백엔드 실행 (VectCutAPI)
cd VectCutAPI
pip install -r requirements.txt
python capcut_server.py기본적으로
http://localhost:9000(또는 9001)에서 대기합니다.
2. Node.js MCP 서버 연결
안티그래비티 mcp_config.json에 다음 설정을 추가하면 에이전트가 자동으로 인식합니다.
{
"mcpServers": {
"capcut-mcp": {
"command": "node",
"args": ["C:/Users/User/Documents/capcut-mcp/dist/index.js"],
"env": {
"CAPCUT_API_URL": "http://localhost:9000"
}
}
}
}🛠️ 제공되는 도구 (Available Tools)
AI 에이전트는 다음 11가지 도구를 통해 비디오를 프로그래밍 방식으로 편집합니다.
capcut_create_draft: 새로운 프로젝트 초안 생성 (HD, 4K, 세로형 등)capcut_add_video: 영상 추가 및 컷편집, 배속, 볼륨 조절capcut_add_audio: 배경음악, BGM 및 페이드인/아웃 적용capcut_add_text: 타이틀, 텍스트 추가 (색상, 그림자, 애니메이션)capcut_add_image: 이미지 추가 및 배치 (크기, 회전)capcut_add_subtitle: SRT 형식의 자막 자동 생성 및 싱크 매핑capcut_add_keyframe: 부드러운 줌인/줌아웃 등 키프레임 애니메이션 생성capcut_add_effect: 블러, 비네팅 등 화면 이펙트 추가capcut_add_sticker: 스티커 및 이모지 삽입capcut_save_draft: 완료된 프로젝트를 캡컷 데스크탑 앱으로 추출capcut_get_duration: 영상/음원의 정확한 길이(메타데이터) 확인
📖 자동화 예시 (Workflow Example)
# 에이전트 파이프라인 동작 예시
draft = req("/create_draft", {"width": 1080, "height": 1920}) # 세로형 쇼츠
req("/add_audio", {"draft_id": draft["draft_id"], "audio_url": "music.wav", "start": 0, "end": 60})
req("/add_image", {"draft_id": draft["draft_id"], "image_url": "scene.png", "transition": "Dissolve"})
req("/add_subtitle", {"draft_id": draft["draft_id"], "srt": "lyrics.srt", "font": "SourceHanSansCN_Regular"})
req("/save_draft", {"draft_id": draft["draft_id"]})🙏 Acknowledgments
Based on the original VectCutAPI framework.
Upgraded and Maintained by the Antigravity & Luca Agent Team for hyper-automated video production.
Available Tools
11 toolscapcut_add_audioAdd Audio to DraftA
Add audio track to draft with volume and fade effects.
This tool adds background music or sound effects to the video timeline.
Args:
draft_id (string): The draft ID
audio_url (string): URL to audio file (mp3, wav, aac, m4a, flac, ogg)
start (number): Start time in seconds
end (number): End time in seconds
volume (number): Audio volume 0.0-1.0 (default: 1.0)
fade_in (number): Fade in duration in seconds (default: 0)
fade_out (number): Fade out duration in seconds (default: 0)
response_format ('markdown' | 'json'): Output format
Examples:
Add background music: audio_url="https://...", volume=0.5
Add with fade: fade_in=2, fade_out=2
Inputs: draft_id (required), audio_url (required), start (required), end (required), +4 more.
capcut_add_effectAdd Visual EffectA
Apply visual effects to video segments.
This tool adds effects like blur, sharpen, brightness adjustments, and more.
Args:
draft_id (string): The draft ID
effect_name (string): Effect to apply (blur, sharpen, brightness, contrast, saturation, vignette, grain, glitch)
start (number): Start time in seconds
end (number): End time in seconds
intensity (number): Effect intensity 0.0-1.0 (default: 0.5)
response_format ('markdown' | 'json'): Output format
Examples:
Add blur: effect_name="blur", intensity=0.7
Increase brightness: effect_name="brightness", intensity=0.8
Add vignette: effect_name="vignette", intensity=0.4
Inputs: draft_id (required), effect_name (required), start (required), end (required), +2 more.
capcut_add_imageAdd Image to DraftA
Add image overlay to video with positioning, scaling, rotation, and animation.
This tool adds static or animated images to the video timeline.
Args:
draft_id (string): The draft ID
image_url (string): URL to image file (jpg, jpeg, png, gif, webp, bmp)
start (number): Start time in seconds
end (number): End time in seconds
position_x (number): Horizontal position 0.0-1.0 (default: 0.5)
position_y (number): Vertical position 0.0-1.0 (default: 0.5)
scale (number): Scale multiplier 0.1-5.0 (default: 1.0)
rotation (number): Rotation angle 0-360 degrees (default: 0)
animation (string): Animation effect (optional)
response_format ('markdown' | 'json'): Output format
Examples:
Add logo: image_url="https://...", position_x=0.9, position_y=0.1, scale=0.3
Add rotating image: rotation=45, animation="zoom_in"
Inputs: draft_id (required), image_url (required), start (required), end (required), +6 more.
capcut_add_keyframeAdd Keyframe AnimationA
Add keyframe-based property animation to tracks.
This tool creates smooth animations by interpolating between keyframe values.
Args:
draft_id (string): The draft ID
track_name (string): Name of track to animate
property_types (string[]): Properties to animate (scale_x, scale_y, alpha, rotation, position_x, position_y)
times (number[]): Keyframe times in seconds (at least 2)
values (string[]): Values for each keyframe (same length as times)
response_format ('markdown' | 'json'): Output format
Examples:
Fade in: property_types=["alpha"], times=[0, 2], values=["0.0", "1.0"]
Zoom in: property_types=["scale_x", "scale_y"], times=[0, 2], values=["0.5", "1.5"]
Rotate: property_types=["rotation"], times=[0, 3], values=["0", "360"]
Inputs: draft_id (required), track_name (required), property_types (required), times (required), +2 more.
capcut_add_stickerAdd Sticker to DraftA
Add sticker/emoji overlay with positioning and transformation.
This tool adds decorative stickers or emojis to the video.
Args:
draft_id (string): The draft ID
sticker_url (string): URL to sticker image
start (number): Start time in seconds
end (number): End time in seconds
position_x (number): Horizontal position 0.0-1.0 (default: 0.5)
position_y (number): Vertical position 0.0-1.0 (default: 0.5)
scale (number): Scale multiplier 0.1-5.0 (default: 1.0)
rotation (number): Rotation angle 0-360 degrees (default: 0)
response_format ('markdown' | 'json'): Output format
Examples:
Add corner sticker: position_x=0.9, position_y=0.1, scale=0.2
Add rotating emoji: rotation=15, scale=0.5
Inputs: draft_id (required), sticker_url (required), start (required), end (required), +5 more.
capcut_add_subtitleAdd Subtitles to DraftB
Add subtitles from SRT file content with styling options.
This tool imports subtitles in SRT format and applies styling.
Args:
draft_id (string): The draft ID
srt_content (string): SRT formatted subtitle content
font (string): Font family name (optional)
font_size (number): Font size 12-100 (default: 36)
font_color (string): Hex color (default: #FFFFFF)
background_enabled (boolean): Enable background (default: true)
background_color (string): Background hex color (default: #000000)
response_format ('markdown' | 'json'): Output format
Example SRT format: 1 00:00:01,000 --> 00:00:03,000 Welcome to my video
2 00:00:03,500 --> 00:00:05,000 Subscribe for more content
Inputs: draft_id (required), srt_content (required), font, font_size, +4 more.
capcut_add_textAdd Text to DraftA
Add styled text overlay to video with positioning, colors, shadows, and animations.
This tool creates text elements with full styling control including fonts, colors, backgrounds, shadows, and animations.
Args:
draft_id (string): The draft ID
text (string): Text content to display (1-500 characters)
start (number): Start time in seconds
end (number): End time in seconds
font (string): Font family name (optional)
font_size (number): Font size 12-200 (default: 48)
font_color (string): Hex color e.g., #FFFFFF (default: #FFFFFF)
background_color (string): Background hex color (optional)
background_alpha (number): Background opacity 0.0-1.0 (default: 0.8)
shadow_enabled (boolean): Enable shadow (default: false)
shadow_color (string): Shadow hex color (default: #000000)
position_x (number): Horizontal position 0.0-1.0 (default: 0.5 center)
position_y (number): Vertical position 0.0-1.0 (default: 0.5 center)
animation (string): Animation effect (fade_in, slide_up, slide_down, slide_left, slide_right, zoom_in, bounce)
response_format ('markdown' | 'json'): Output format
Examples:
Add title: text="Welcome", font_size=72, position_y=0.2, animation="fade_in"
Add subtitle: text="Subscribe!", font_size=36, background_color="#000000"
Inputs: draft_id (required), text (required), start (required), end (required), +11 more.
capcut_add_videoAdd Video to DraftA
Add a video clip to an existing draft with timing, volume, and effects.
This tool adds video content to the timeline with support for transitions, speed adjustments, and volume control.
Args:
draft_id (string): The draft ID from create_draft
video_url (string): URL to video file (mp4, mov, avi, mkv, webm, flv)
start (number): Start time in seconds (>= 0)
end (number): End time in seconds (> 0)
volume (number): Audio volume 0.0-1.0 (default: 1.0)
transition (string): Optional transition effect (fade_in, fade_out, dissolve, wipe, slide, zoom)
speed (number): Playback speed 0.1-10x (default: 1.0)
response_format ('markdown' | 'json'): Output format
Examples:
Add background video: draft_id="abc123", video_url="https://...", start=0, end=10
Add with slow motion: speed=0.5
Add with fade in: transition="fade_in"
Inputs: draft_id (required), video_url (required), start (required), end (required), +4 more.
capcut_create_draftCreate CapCut DraftA
Create a new video editing draft with specified dimensions and frame rate.
This tool initializes a new draft project that can be edited by adding videos, audio, text, images, and effects.
Args:
width (number): Video width in pixels (360-4096, default: 1920)
height (number): Video height in pixels (360-4096, default: 1080)
fps (number): Frames per second (24-120, default: 30)
response_format ('markdown' | 'json'): Output format (default: 'markdown')
Returns: { "draft_id": string, // Unique draft identifier for subsequent operations "width": number, // Video width "height": number, // Video height "fps": number, // Frame rate "duration": number, // Current duration (starts at 0) "created_at": string // ISO timestamp }
Examples:
Create HD draft: params with width=1920, height=1080
Create vertical video: params with width=1080, height=1920
Create 4K draft: params with width=3840, height=2160
Inputs: width, height, fps, response_format.
capcut_get_durationGet Media DurationARead-onlyIdempotent
Get duration and metadata of video or audio file.
This tool analyzes media files to retrieve duration, format, and resolution information.
Args:
url (string): URL to media file
response_format ('markdown' | 'json'): Output format
Returns: { "duration": number, // Duration in seconds "format": string, // File format "width": number, // Video width (if video) "height": number // Video height (if video) }
Examples:
Check video length before adding: url="https://example.com/video.mp4"
Verify audio duration: url="https://example.com/music.mp3"
Inputs: url (required), response_format.
capcut_save_draftSave DraftAIdempotent
Save the draft to a file that can be imported into CapCut.
This tool finalizes the draft and generates a folder that can be copied to the CapCut drafts directory.
Args:
draft_id (string): The draft ID to save
response_format ('markdown' | 'json'): Output format
Returns: { "draft_url": string, // Path to the saved draft folder "status": "saved" }
The draft folder starts with "dfd_" and should be copied to:
Windows: C:\Users<username>\AppData\Local\CapCut\User Data\Projects\Draft Content
macOS: ~/Library/Containers/com.lemon.lvpro/Data/Documents/JianyingPro/User Data/Projects/Draft Content
Inputs: draft_id (required), response_format.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Most tools have distinct purposes (draft creation, media addition, effects, saving), but add_image and add_sticker are very similar (both overlays with positioning/scaling), and add_text vs add_subtitle serve different text use cases but could still cause confusion for an agent.
All tools follow a consistent 'capcut_verb_noun' pattern: create_draft, add_video, add_audio, add_image, add_sticker, add_text, add_subtitle, add_effect, add_keyframe, get_duration, save_draft. The verbs are uniform and descriptive.
With 11 tools, the set is well-scoped for a video editing assistant. Each tool covers a core operation (create, add media types, effects, keyframes, metadata, save) without being bloated.
The tool set covers creating drafts and adding various elements, but lacks delete or update operations for draft elements, no export or rendering tool, and no draft listing. Agents have no way to remove mistakes or finalize a video, limiting workflow autonomy.
Related MCP Connectors
MCP server for Wan AI video generation
MCP server for Google Veo AI video generation
MCP server for Hailuo (MiniMax) AI video generation
MCP server for Luma Dream Machine AI video generation
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides MCP servers for AI-driven video editing. Enables offline editing of CapCut drafts and remote control of Adobe Premiere Pro via UXP plugin, with shared media analysis for beat detection and transcription.1MIT
- FlicenseNot gradedqualityFmaintenanceAutomates CapCut video editing through an HTTP/MCP API, enabling draft creation, material addition (video, audio, text, images), effects, and AI-powered enhancements via natural language.96-
- AlicenseAqualityCmaintenanceAn MCP server that reads and builds CapCut projects locally, enabling natural language queries about project contents, missing media, and creation of new edits including beat-synced cuts.6MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for OpenChatCut, enabling AI agents to create, edit, and export fully editable video projects through a real multitrack timeline and agent-native tools.1AGPL 3.0