Skip to main content
Glama

@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.

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

Related MCP server: Valmera AI Video Editor

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"
    }
  3. When clips are ready, the Webhook node receives the payload.

  4. 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

License

MIT

Available Tools

6 tools
check_usageB

Check your remaining credits and current plan.

Inputs: no named parameters.

download_clipA

Get a download URL for a clip. Automatically handles export if not yet exported — waits until the clip is ready, then returns the download link.

Inputs: clip_id (required), quality.

generate_clipsA

Generate short-form video clips from a YouTube URL. Processes the video with AI to find the most engaging moments and creates vertical clips ready for TikTok, Shorts, and Reels. Returns clip details with download URLs once processing completes.

Inputs: url (required), start_time, end_time, wait_for_completion, +1 more.

get_clipC

Get details of a specific clip including its export status and URLs.

Inputs: clip_id (required).

get_project_statusB

Check the status of a clip generation project. Returns the current processing step and any generated clips.

Inputs: project_id (required).

list_projectsC

List your recent clip generation projects with their status.

Inputs: limit, status.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: check_usage for account info, download_clip for retrieving download URLs, generate_clips for creating new clips, get_clip for clip details, get_project_status for project progress, and list_projects for project overview. There is no overlap in functionality, making tool selection unambiguous.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern using snake_case: check_usage, download_clip, generate_clips, get_clip, get_project_status, list_projects. The naming is predictable and readable throughout the set.

    Tool Count5/5

    With 6 tools, the count is well-scoped for a video clip generation service. Each tool serves a specific role in the workflow, from project creation to status checking and clip retrieval, without being excessive or insufficient.

    Completeness4/5

    The toolset covers core workflows: generating clips, checking project status, listing projects, retrieving clip details, and downloading clips, with account usage monitoring. A minor gap is the lack of update or delete operations for projects or clips, but agents can work around this for most tasks.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers