Skip to main content
Glama
README.md
# 🎬 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 λΉ„μœ¨(μ„Έλ‘œν˜•) λ Œλ”λ§ 및 λ””μ‘ΈλΈŒ νŠΈλžœμ§€μ…˜μ„ μžλ™ μ μš©ν•˜μ—¬ μŒμ›μ— 맞좰 이미지λ₯Ό λ‘€λ§ν•˜λŠ” 유튜브 νŒŒμ΄ν”„λΌμΈμ— μ΅œμ ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

---

## πŸš€ μ‹œμž‘ν•˜κΈ° (Installation & Setup)

CapCut MCPλŠ” **2단계 ꡬ쑰**둜 μ‹€ν–‰λ©λ‹ˆλ‹€. Python μ„œλ²„(VectCutAPI)κ°€ μΊ‘μ»· μ΄ˆμ•ˆμ„ λ§Œλ“€κ³ , Node.js μ„œλ²„(MCP)κ°€ μ—μ΄μ „νŠΈμ™€ μ†Œν†΅ν•©λ‹ˆλ‹€.

### 1. Python λ°±μ—”λ“œ μ‹€ν–‰ (VectCutAPI)
```bash
cd VectCutAPI
pip install -r requirements.txt
python capcut_server.py
```
> 기본적으둜 `http://localhost:9000` (λ˜λŠ” 9001)μ—μ„œ λŒ€κΈ°ν•©λ‹ˆλ‹€.

### 2. Node.js MCP μ„œλ²„ μ—°κ²°
μ•ˆν‹°κ·Έλž˜λΉ„ν‹° `mcp_config.json`에 λ‹€μŒ 섀정을 μΆ”κ°€ν•˜λ©΄ μ—μ΄μ „νŠΈκ°€ μžλ™μœΌλ‘œ μΈμ‹ν•©λ‹ˆλ‹€.
```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)

```python
# μ—μ΄μ „νŠΈ νŒŒμ΄ν”„λΌμΈ λ™μž‘ μ˜ˆμ‹œ
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](https://github.com/sun-guannan/VectCutAPI) framework.
- Upgraded and Maintained by the **Antigravity & Luca Agent Team** for hyper-automated video production.

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.

Maintenance

ActivityInactive
ResponsivenessNo issues