Skip to main content
Glama

🎬 CapCut MCP Server (Upgraded by Antigravity)

이 프로젝트는 CapCut Pro 영상 편집을 AI 에이전트가 완벽하게 자동화할 수 있도록 지원하는 Model Context Protocol (MCP) 서버입니다. 기존 오픈소스 기반 위에 **우리 팀(Antigravity & Luca Agent)**의 필요에 맞춰 렌더링 파이프라인, 아시아권 폰트 지원 및 트랜지션 처리 로직을 대폭 업그레이드했습니다! 🚀

✨ 무엇이 업그레이드 되었나요? (Antigravity's Touch)

  1. VectCutAPI 안정성 극대화 🛠️

    • Python 기반의 로컬 렌더링 서버인 VectCutAPI를 내장하고, save_draft_impl.py 등의 저장 로직을 개선하여 캡컷 초안(Draft)이 안전하게 사용자 폴더에 꽂히도록 수정했습니다.

  2. 다국어(CJK) 폰트 완벽 지원 🌏

    • 기본 System 폰트 에러를 해결하고, SourceHanSansCN_Regular 등 다국어/한글 지원 폰트를 매핑하여 자막 깨짐 없이 깔끔하게 출력되도록 폰트 엔진을 업그레이드했습니다.

  3. 고급 트랜지션 및 키프레임 보강 🌀

    • Dissolve, Mix 등 캡컷 고유의 대소문자 구분 트랜지션 에러를 해결하고, 줌인/줌아웃 등 add_video_keyframe을 활용한 미세 애니메이션 제어를 강화했습니다.

  4. 유튜브 쇼츠 자동화 최적화 📱

    • 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가지 도구를 통해 비디오를 프로그래밍 방식으로 편집합니다.

  1. capcut_create_draft: 새로운 프로젝트 초안 생성 (HD, 4K, 세로형 등)

  2. capcut_add_video: 영상 추가 및 컷편집, 배속, 볼륨 조절

  3. capcut_add_audio: 배경음악, BGM 및 페이드인/아웃 적용

  4. capcut_add_text: 타이틀, 텍스트 추가 (색상, 그림자, 애니메이션)

  5. capcut_add_image: 이미지 추가 및 배치 (크기, 회전)

  6. capcut_add_subtitle: SRT 형식의 자막 자동 생성 및 싱크 매핑

  7. capcut_add_keyframe: 부드러운 줌인/줌아웃 등 키프레임 애니메이션 생성

  8. capcut_add_effect: 블러, 비네팅 등 화면 이펙트 추가

  9. capcut_add_sticker: 스티커 및 이모지 삽입

  10. capcut_save_draft: 완료된 프로젝트를 캡컷 데스크탑 앱으로 추출

  11. 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 tools
capcut_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 DurationA
Read-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:

Inputs: url (required), response_format.

capcut_save_draftSave DraftA
Idempotent

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

    A3.9/5.0

    Scored across 11 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness3/5

    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

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides 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.
      1
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      An 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.
      6
      MIT