π Open source CapCut API tool with MCP (Model Context Protocol) support
π Try Online β’ π δΈζζζ‘£ β’ π§ MCP Docs β’ π MCP δΈζζε
CapCutAPI is a powerful enterprise-grade video editing automation platform built with Python, providing complete CapCut video editing capabilities. Through dual interfaces of HTTP API and MCP protocol, it enables seamless integration with AI assistants and automation tools.
|
π¬ Professional Video Editing
|
π€ AI Smart Integration
|
|
π Dual API Interfaces
|
π Cross-platform Compatibility
|
AI-driven video generation powered by CapCutAPI
| Feature Module | HTTP API | MCP Protocol | Description |
|---|---|---|---|
| π¬ Draft Management | β | β | Create, read, modify, save CapCut draft files |
| π₯ Video Processing | β | β | Multi-format video import, editing, transitions, effects |
| π Audio Editing | β | β | Audio tracks, volume control, audio effects |
| πΌοΈ Image Processing | β | β | Image import, animations, masks, filters |
| π Text Editing | β | β | Multi-style text, shadows, backgrounds, animations |
| π Subtitle System | β | β | SRT subtitle import, styling, time sync |
| β¨ Effects Engine | β | β | Visual effects, filters, transition animations |
| π Sticker System | β | β | Sticker assets, position control, animation effects |
| π― Keyframes | β | β | Property animations, timeline control, easing functions |
| π Media Analysis | β | β | Video duration detection, format analysis |
π‘ HTTP API Endpoints (9 endpoints)
π¬ Draft Management βββ POST /create_draft # Create new draft βββ POST /save_draft # Save draft file
π₯ Media Assets βββ POST /add_video # Add video material βββ POST /add_audio # Add audio material βββ POST /add_image # Add image material
π Text Content βββ POST /add_text # Add text elements βββ POST /add_subtitle # Add subtitle files
β¨ Effect Enhancement βββ POST /add_effect # Add visual effects βββ POST /add_sticker # Add sticker elements
π§ MCP Tool Set (11 tools)
π¬ Project Management βββ create_draft # Create video project βββ save_draft # Save project file
π₯ Media Editing βββ add_video # Video track + transition effects βββ add_audio # Audio track + volume control βββ add_image # Image assets + animation effects
π Text System βββ add_text # Multi-style text + shadow background βββ add_subtitle # SRT subtitles + styling
β¨ Advanced Features βββ add_effect # Visual effects engine βββ add_sticker # Sticker animation system βββ add_video_keyframe # Keyframe animations βββ get_video_duration # Media information retrieval
| π Python Environment | Python 3.8.20+ (Recommended 3.10+) |
| π¬ CapCut Application | CapCut International or JianYing China |
| π΅ FFmpeg | For media file processing and analysis |
| πΎ Storage Space | At least 2GB available space |
# 1. Clone the project
git clone https://github.com/sun-guannan/CapCutAPI.git
cd CapCutAPI
# 2. Create virtual environment (recommended)
python -m venv venv-capcut
source venv-capcut/bin/activate # Linux/macOS
# or venv-capcut\Scripts\activate # Windows
# 3. Install dependencies
pip install -r requirements.txt # HTTP API basic dependencies
pip install -r requirements-mcp.txt # MCP protocol support (optional)
# 4. Configuration
cp config.json.example config.json
# Edit config.json as needed|
π HTTP API Server python capcut_server.pyDefault port: 9001 |
π§ MCP Protocol Server python mcp_server.pySupports stdio communication |
Create or update mcp_config.json configuration file:
{
"mcpServers": {
"capcut-api": {
"command": "python3",
"args": ["mcp_server.py"],
"cwd": "/path/to/CapCutAPI",
"env": {
"PYTHONPATH": "/path/to/CapCutAPI",
"DEBUG": "0"
}
}
}
}# Test MCP connection
python test_mcp_client.py
# Expected output
β
MCP server started successfully
β
Retrieved 11 available tools
β
Draft creation test passed| Feature | Description | Example |
|---|---|---|
| π¨ Advanced Text Styling | Multi-color, shadow, background effects | shadow_enabled: true |
| π¬ Keyframe Animation | Position, scale, opacity animations | property_types: ["scale_x", "alpha"] |
| π Audio Precision Control | Volume, speed, audio effects | volume: 0.8, speed: 1.2 |
| π± Multi-format Support | Various video dimensions and formats | width: 1080, height: 1920 |
| β‘ Real-time Processing | Instant draft updates and previews | Millisecond response time |
πΉ Adding Video Material
import requests
# Add background video
response = requests.post("http://localhost:9001/add_video", json={
"video_url": "https://example.com/background.mp4",
"start": 0,
"end": 10,
"width": 1080,
"height": 1920,
"volume": 0.8,
"transition": "fade_in"
})
print(f"Video addition result: {response.json()}")π Creating Styled Text
import requests
# Add title text
response = requests.post("http://localhost:9001/add_text", json={
"text": "π¬ Welcome to CapCutAPI",
"start": 0,
"end": 5,
"font": "Arial",
"font_color": "#FFD700",
"font_size": 48,
"shadow_enabled": True,
"background_color": "#000000"
})
print(f"Text addition result: {response.json()}")π― Complete Workflow
# 1. Create new project
draft = mcp_client.call_tool("create_draft", {
"width": 1080,
"height": 1920
})
draft_id = draft["result"]["draft_id"]
# 2. Add background video
mcp_client.call_tool("add_video", {
"video_url": "https://example.com/bg.mp4",
"draft_id": draft_id,
"start": 0,
"end": 10,
"volume": 0.6
})
# 3. Add title text
mcp_client.call_tool("add_text", {
"text": "AI-Driven Video Production",
"draft_id": draft_id,
"start": 1,
"end": 6,
"font_size": 56,
"shadow_enabled": True,
"background_color": "#1E1E1E"
})
# 4. Add keyframe animation
mcp_client.call_tool("add_video_keyframe", {
"draft_id": draft_id,
"track_name": "main",
"property_types": ["scale_x", "scale_y", "alpha"],
"times": [0, 2, 4],
"values": ["1.0", "1.2", "0.8"]
})
# 5. Save project
result = mcp_client.call_tool("save_draft", {
"draft_id": draft_id
})
print(f"Project saved: {result['result']['draft_url']}")You can use the rest_client_test.http file with REST Client IDE plugins for HTTP testing.
Calling save_draft generates a folder starting with dfd_ in the server's current directory. Copy this folder to your CapCut draft directory to access the generated draft in CapCut.
| π Document Type | π Language | π Link | π Description |
|---|---|---|---|
| MCP Complete Guide | πΊπΈ English | MCP Documentation | Complete MCP server usage guide |
| MCP User Manual | π¨π³ Chinese | MCP δΈζζζ‘£ | Detailed Chinese usage instructions |
| API Reference | πΊπΈ English | example.py | Code examples and best practices |
| REST Testing | π Universal | rest_client_test.http | HTTP interface test cases |
- π‘οΈ Input Validation: Strict parameter validation and type checking
- π Error Handling: Comprehensive exception catching and error reporting
- π Logging: Detailed operation logs and debug information
- π« Resource Limits: Memory and processing time limit protection
- π Async Processing: Non-blocking concurrent operation support
- πΎ Memory Management: Smart resource recycling and caching mechanisms
- π Batch Processing: Efficient batch operation interfaces
- β±οΈ Response Time: Millisecond-level API response speed
- π Plugin Architecture: Modular functionality extension support
- π Multi-protocol: HTTP REST and MCP dual protocol support
- βοΈ Cloud Deployment: Containerization and microservice architecture ready
- π Monitoring Integration: Complete performance monitoring and metrics collection
| π Support Channel | π Link | π Description |
|---|---|---|
| π Bug Reports | GitHub Issues | Bug reports and feature requests |
| π‘ Feature Suggestions | Discussions | Community discussions and suggestions |
| π Documentation Feedback | Documentation Issues | Documentation improvement suggestions |
| π§ Technical Support | Stack Overflow | Technical Q&A |
We welcome all forms of contributions!
# 1. Fork the project
git clone https://github.com/your-username/CapCutAPI.git
# 2. Create feature branch
git checkout -b feature/amazing-feature
# 3. Commit changes
git commit -m 'Add amazing feature'
# 4. Push branch
git push origin feature/amazing-feature
# 5. Create Pull RequestThis project is open source under the Apache 2.0 License. See LICENSE file for details.
Apache License 2.0
Copyright (c) 2025 CapCutAPI Contributors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

