CrabCut MCP Server is an MCP (Model Context Protocol) server used to turn YouTube videos into short video clips. It can be invoked from Claude, Cursor, or any AI assistant that supports MCP.
Purpose
A user provides a YouTube link, and the service automatically finds the best moments in the video, reframes them into vertical videos (9:16), adds subtitles, and returns downloadable clips.
Main capabilities
- Highlight detection: automatically identifies highlight moments in the video.
- Vertical reframing: adjusts horizontal videos to 9:16 vertical format.
- Subtitle addition: generates subtitles for clips.
- Download-ready: returns a download_url for each clip, which can be downloaded directly.
- Clip sorting: returned clips are sorted by score from highest to lowest.
How to use
Get an API key
Get an API key at app.crabcut.ai/developers.
Configure in Claude Desktop / Cursor
Add the server to the configuration file: use claude_desktop_config.json for Claude, and .cursor/mcp.json for Cursor.
Remote access (Streamable HTTP)
Suitable for n8n, custom integrations, or any client that supports remote MCP:
- Endpoint:https://mcp.crabcut.ai/mcp
- Authentication: Authorization: Bearer sk_live_...
- Transport: Streamable HTTP (POST)
Invocation flow
- Call generate_clips with a YouTube URL.
- Immediately returns project_id.
- Poll get_project_status every 10–15 seconds (or pass callback_url to use a webhook).
- When complete, clips are sorted by score (best first), and each clip has a download_url.
Project status
pending → processing → completed (or completed_no_clips / failed)
Processing steps
queued → DOWNLOADING_VIDEO → EXTRACTING_AUDIO → TRANSCRIBING → DETECTING_HIGHLIGHTS → CUTTING_CLIPS → EXPORTING_CLIPS → done
Clip status
pending → exporting → completed (or failed). When clip_status is completed, download_url is available.
Tool descriptions
generate_clips: starts generating clips from a YouTube video. get_project_status: checks progress and gets clips. Clips are sorted by score from highest to lowest.
Webhook callback
Pass callback_url when calling generate_clips, and a POST notification will be received when all clips are ready. Clips are sorted by score from highest to lowest. If the server does not respond, retry up to 3 times. Signature verification (optional): each callback includes an X-Crabcut-Signature header. Use SHA-256(your_api_key) as the signing key, compute HMAC-SHA256 over the request body, and compare it with the header value (sha256=<hex>).
n8n integration example
Method A — Webhook (recommended):
- Create a workflow with a Webhook trigger nodeworkflow, and copy its URL.
- Add an HTTP Request node: POST https://api.crabcut.ai/api/v1/clips/generate,使用 Header Auth (Authorization: Bearer sk_live_...), request body: { "url": "https://www.youtube.com/watch?v=...", "callback_url": "https://your-n8n.com/webhook/abc123" }
- When clips are ready, the Webhook node receives the payload. Best clip: {{ $json.clips[0].download_url }}
Method B — Polling loop:
- POST to generate clips (same as above, without callback_url).
- Wait 15 seconds → GET https://api.crabcut.ai/api/v1/projects/{{ $json.project_id }} → if the status is not completed, loop back to waiting.
Direct HTTP calls (without using MCP)
Base URL:https://api.crabcut.ai — All endpoints require Authorization: Bearer sk_live_...
Use Cases
- Content creators quickly editing long videos into short videos.
- Social media operations generating vertical clips in batches.
- Integrating into workflows through automation tools such as n8n.
Limitations
- An API key is required; for specific pricing information, please refer to crabcut.ai/pricing.
- Only YouTube videos are supported as input.
- Processing time depends on video length and server load.
Environment Variables
The materials do not provide a specific list of environment variables.
Related Links
- Website: crabcut.ai
- API Key: app.crabcut.ai/developers
- Pricing: crabcut.ai/pricing