@crabcut/mcp-server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Turn YouTube videos into short clips — from Claude, Cursor, or any AI assistant that supports MCP.
Give it a YouTube link. It finds the best moments, reframes for vertical video (9:16), adds subtitles, and returns download-ready clips.
Quick Start
1. Get an API key at app.crabcut.ai/developers
2. Run:
Setup
Claude Desktop / Cursor
Add to your config file — claude_desktop_config.json for Claude, .cursor/mcp.json for Cursor:
Cursor Directory
Install in Cursor
Smithery
Remote (Streamable HTTP)
For n8n, custom integrations, or any client that supports remote MCP:
- **Endpoint:** https://mcp.crabcut.ai/mcp
- **Auth:** Authorization: Bearer sk_live_...
- **Transport:** Streamable HTTP (POST)
Tools
| Tool | What it does |
|---|---|
| generate_clips | Start clip generation from a YouTube URL. Returns a project_id right away. |
| get_project_status | Check progress and get clips when ready. Clips are sorted by score (best first). |
| list_projects | List your projects with status and clip counts. |
| get_clip | Get full details for a single clip. |
| check_usage | See your plan, remaining credits, and usage. |
How It Works
1. Call generate_clips with a YouTube URL
2. Get back a project_id immediately
3. Poll get_project_status every 10–15 seconds (or pass a callback_url for webhook)
4. When done, clips are sorted by score (best first), each with a download_url
Statuses
**Project:** pending → processing → completed (or completed_no_clips / failed)
**Processing steps:** queued → DOWNLOADING_VIDEO → EXTRACTING_AUDIO → TRANSCRIBING → DETECTING_HIGHLIGHTS → CUTTING_CLIPS → EXPORTING_CLIPS → done
**Clips:** pending → exporting → completed (or failed). The download_url is available when clip_status is completed.
API Reference
generate_clips
Start clip generation from a YouTube video.
| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Full YouTube video URL |
| start_time | number | No | Start time in seconds (to process only a segment) |
| end_time | number | No | End time in seconds (to process only a segment) |
| callback_url | string | No | Webhook URL to receive results when done |
get_project_status
Check progress and get clips.
| Field | Type | Required | Description |
|---|---|---|---|
| project_id | string | Yes | The project ID from generate_clips |
Clips are sorted by score (highest first).
list_projects
| Field | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Max projects to return. Default 20, max 100. |
| status | string | No | Filter: pending, processing, completed, completed_no_clips, failed |
get_clip
| Field | Type | Required | Description |
|---|---|---|---|
| clip_id | string | Yes | The clip ID from a project's clips array |
check_usage
No input required.
Errors
| HTTP Status | Error | What to do |
|---|---|---|
| 400 | Invalid YouTube URL | Check the URL format |
| 401 | Unauthorized | Check your API key |
| 402 | Insufficient credits | Buy more credits or use a shorter video |
| 429 | Rate limit exceeded | Wait and try again |