Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

realcrabcut/crabcut-mcp-server MCP server](https://glama.ai/mcp/servers/realcrabcut/crabcut-mcp-server/badges/score.svg)](https://glama.ai/mcp/servers/realcrabcut/crabcut-mcp-server) πŸ“‡ ☁️ - Turn YouTube videos into short-form clips from any AI assistant.

README.md

@crabcut/mcp-server

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.

![smithery badge](https://smithery.ai/servers/crabcut/crabcut-mcp-server) ![CrabCut MCP server](https://glama.ai/mcp/servers/realcrabcut/crabcut-mcp-server)

Quick Start

  1. Get an API key at app.crabcut.ai/developers
  2. Run:
CRABCUT_API_KEY=sk_live_... npx @crabcut/mcp-server

Setup

Claude Desktop / Cursor

Add to your config file β€” claude_desktop_config.json for Claude, .cursor/mcp.json for Cursor:

{
  "mcpServers": {
    "crabcut": {
      "command": "npx",
      "args": ["@crabcut/mcp-server"],
      "env": {
        "CRABCUT_API_KEY": "sk_live_..."
      }
    }
  }
}

Cursor Directory

Install in Cursor

Smithery

npx @smithery/cli mcp add crabcut/crabcut-mcp-server

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 |

{
  "project_id": "43dbe622-8ac6-4579-9625-0ad7f0f9db0b",
  "status": "processing",
  "poll_url": "/api/v1/projects/43dbe622-8ac6-4579-9625-0ad7f0f9db0b",
  "estimated_minutes": 5,
  "message": "Processing started. Poll with get_project_status every 10-15 seconds until status is 'completed'."
}

get_project_status

Check progress and get clips.

| Field | Type | Required | Description | |---|---|---|---| | project_id | string | Yes | The project ID from generate_clips |

{
  "id": "43dbe622-...",
  "name": "Video Title",
  "status": "completed",
  "step": "done",
  "error": null,
  "expected_clips": 9,
  "duration": 639,
  "created_at": "2026-03-15T02:21:46.226Z",
  "clips": [
    {
      "id": "32538b9c-...",
      "title": "One Dating Theory Leads to Chaos",
      "duration": 41.83,
      "score": 90,
      "reason": "Sharp universal joke that hooks instantly with strong reactions.",
      "clip_status": "completed",
      "download_url": "https://cdn.crabcut.ai/exports/premium/.../clip-32538b9c-....mp4",
      "quality": "1080p",
      "thumbnail_url": "https://cdn.crabcut.ai/exports/premium/.../clip-32538b9c-...-thumb.jpg",
      "created_at": "2026-03-15T02:29:10.954Z",
      "updated_at": "2026-03-15T02:30:43.907Z"
    }
  ]
}

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 |

{
  "projects": [
    {
      "id": "43dbe622-...",
      "name": "Video Title",
      "status": "completed",
      "step": "done",
      "expected_clips": 9,
      "clips_count": 8,
      "duration": 639,
      "created_at": "2026-03-15T02:21:46.226Z"
    }
  ],
  "total": 1,
  "limit": 20,
  "offset": 0
}

get_clip

| Field | Type | Required | Description | |---|---|---|---| | clip_id | string | Yes | The clip ID from a project's clips array |

{
  "id": "32538b9c-...",
  "project_id": "43dbe622-...",
  "title": "One Dating Theory Leads to Chaos",
  "duration": 41.83,
  "score": 90,
  "reason": "Sharp universal joke that hooks instantly.",
  "export_status": "completed",
  "export_quality": "1080p",
  "is_exported": true,
  "video_url": "https://cdn.crabcut.ai/...",
  "video_url_720p": "https://cdn.crabcut.ai/...",
  "video_url_1080p": "https://cdn.crabcut.ai/...",
  "thumbnail_url": "https://cdn.crabcut.ai/...",
  "created_at": "2026-03-15T02:29:10.954Z",
  "updated_at": "2026-03-15T02:30:43.907Z"
}

check_usage

No input required.

{
  "plan": "pro",
  "credits_remaining": 450,
  "credits_total": 500,
  "period_start": "2026-03-01T00:00:00.000Z",
  "period_end": "2026-04-01T00:00:00.000Z"
}

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 | | 500 | Internal server error | Try again later |

Webhooks

Pass a callback_url when calling generate_clips to receive a POST when all clips are ready.

Completed:

{
  "event": "project.completed",
  "project_id": "43dbe622-...",
  "status": "completed",
  "source_url": "https://www.youtube.com/watch?v=H51iLa1leOU",
  "clips": [
    {
      "id": "32538b9c-...",
      "title": "One Dating Theory Leads to Chaos",
      "duration": 41.83,
      "score": 90,
      "download_url": "https://cdn.crabcut.ai/exports/premium/.../clip-32538b9c-....mp4",
      "thumbnail_url": "https://cdn.crabcut.ai/exports/premium/.../clip-32538b9c-...-thumb.jpg",
      "quality": "1080p"
    }
  ]
}

Failed:

{
  "event": "project.failed",
  "project_id": "43dbe622-...",
  "status": "failed",
  "error": "YouTube video is unavailable",
  "clips": []
}

Clips are sorted by score (highest first). We retry up to 3 times if your server doesn't respond.

Signature verification (optional): Each callback includes an X-Crabcut-Signature header. Compute HMAC-SHA256 of the request body using SHA-256(your_api_key) as the signing key. Compare with the header value (sha256=<hex>).

Using with n8n

Option A β€” Webhook (recommended):

  1. Create a workflow with a Webhook trigger node. Copy its URL.
  2. Add an HTTP Request node: POST https://api.crabcut.ai/api/v1/clips/generate with Header Auth (Authorization: Bearer sk_live_...) and body:
   {
     "url": "https://www.youtube.com/watch?v=...",
     "callback_url": "https://your-n8n.com/webhook/abc123"
   }
  1. When clips are ready, the Webhook node receives the payload.
  2. Best clip: {{ $json.clips[0].download_url }}

Option B β€” Polling loop:

  1. POST to generate clips (same as above, without callback_url).
  2. Wait 15 seconds β†’ GET https://api.crabcut.ai/api/v1/projects/{{ $json.project_id }} β†’ IF status is not completed, loop back to Wait.

REST API

For direct HTTP calls without MCP:

| Method | Endpoint | Description | |---|---|---| | POST | /api/v1/clips/generate | Start clip generation | | GET | /api/v1/projects/:id | Get project status and clips | | GET | /api/v1/projects | List projects | | GET | /api/v1/clips/:id | Get single clip details | | GET | /api/v1/account/usage | Check credits and plan |

Base URL: https://api.crabcut.ai β€” All endpoints require Authorization: Bearer sk_live_...

Environment Variables

| Variable | Required | Default | |---|---|---| | CRABCUT_API_KEY | Yes | β€” | | CRABCUT_API_URL | No | https://api.crabcut.ai |

Links

License

MIT

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use AI & ML servers.