New:Socket for Asana Is Now Available.Learn more
Get Started

@crabcut/mcp-server

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@crabcut/mcp-server

MCP server for Crabcut AI video clip generation — turn YouTube videos into short-form clips from any AI assistant

Source
npmnpm
Version
2.0.1
Version published
Weekly downloads
55
-28.57%
Maintainers
1
Weekly downloads
 
Created
Source

@crabcut/mcp-server

Turn YouTube videos into short clips -- from Claude, Cursor, or any AI assistant that supports MCP.

You give it a YouTube link. It finds the best moments, reframes them for vertical video (9:16), adds subtitles, and gives you download links. All from a chat or automation workflow.

Quick Start

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

That's it. The server connects via stdio and works with any MCP client.

Setup

Claude Desktop

Add this to your Claude config (claude_desktop_config.json):

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

Cursor

Add to .cursor/mcp.json in your project:

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

Smithery

smithery badge

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

ToolWhat it does
generate_clipsStart clip generation from a YouTube URL. Returns a project_id right away.
get_project_statusCheck progress and get clips when ready. Clips are sorted by score (best first).
list_projectsList your projects with status and clip counts.
get_clipGet full details for a single clip.
check_usageSee your plan, remaining credits, and usage.

How It Works

Clip generation takes a few minutes. Here is the flow:

  • Call generate_clips with a YouTube URL
  • You get back a project_id immediately
  • Wait for results using one of two methods (see below)
  • When done, you get an array of clips sorted by score (best first), each with a download_url

Method 1: Poll for status

Call get_project_status every 10-15 seconds until status is "completed".

Each clip in the response has a clip_status:

clip_statusMeaning
pendingClip is generated, export not started yet
exportingVideo is being rendered
completedReady -- download_url is included
failedExport failed

Method 2: Callback webhook

Pass a callback_url when calling generate_clips. We will POST to that URL when all clips are done.

{
  "event": "project.completed",
  "project_id": "abc-123",
  "status": "completed",
  "source_url": "https://www.youtube.com/watch?v=...",
  "clips": [
    {
      "id": "clip-1",
      "title": "The Best Moment",
      "duration": 42.5,
      "score": 8.7,
      "download_url": "https://cdn.crabcut.ai/...",
      "thumbnail_url": "https://cdn.crabcut.ai/...",
      "quality": "1080p"
    }
  ]
}

Clips are sorted by score (highest first). The first clip in the array is the best one.

We retry the webhook up to 3 times if your server doesn't respond.

Verifying webhooks (optional): Each callback includes an X-Crabcut-Signature header. To verify it came from Crabcut:

  • Compute SHA-256 of your API key to get your signing key
  • Compute HMAC-SHA256 of the request body using that signing key
  • Compare with the header value (format: sha256=<hex>)

This step is optional. If you skip it, everything still works.

Using with n8n

There are two ways to set this up in n8n:

Option A -- Webhook (recommended):

  • Add a Webhook node to your workflow. Copy its URL.
  • Use an HTTP Request node to call POST /api/v1/clips/generate with your YouTube URL and callback_url set to the Webhook node URL.
  • When clips are done, the Webhook node receives the payload and your workflow continues.

Option B -- Polling loop:

  • Call POST /api/v1/clips/generate to start processing.
  • Add a Wait node (15 seconds).
  • Call GET /api/v1/projects/:id to check status.
  • Add an IF node: if status is not "completed", loop back to Wait.
  • When complete, the response includes all clips with download URLs.

Tip: The clips array is sorted by score. In n8n, use {{ $json.clips[0].download_url }} to get the best clip.

Billing

Each minute of video costs credits. Check your balance with check_usage. Get credits at crabcut.ai/pricing.

Environment Variables

VariableRequiredDefault
CRABCUT_API_KEYYes--
CRABCUT_API_URLNohttps://api.crabcut.ai

License

MIT

Keywords

mcp

FAQs

Package last updated on 15 Mar 2026

Related posts