Crabcut について
Crabcutは、YouTube動画を字幕付きの縦型ショートクリップに変換するMCPサーバーです。クリップ生成や進捗管理が必要なAIアシスタントやワークフロー向けで、クリップはスコア順に並びます。
主な機能
- 01YouTube URLからクリップを生成
- 02動画を9:16の縦型に調整
- 03クリップに字幕を追加
- 04プロジェクトと状態を追跡
- 05利用状況と残りクレジットを確認
活用シーン
- 01YouTube動画からSNS向けクリップを作成
- 02指定した動画区間だけを処理
- 03Webhookで完成クリップを受信
MCP 対応
クリップ生成、プロジェクト状態の確認、一覧取得、クリップ詳細の取得、利用状況の確認を行うツールをMCPクライアントに提供します。stdio設定とリモートStreamable HTTPエンドポイントに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | YouTube 動画の完全な URL(例:https://www.youtube.com/watch?v=...) |
| end_time | number | いいえ | 動画の一部を切り抜く場合の終了時刻(秒)。省略すると動画全体を処理します。 |
| start_time | number | いいえ | 動画の一部を切り抜く場合の開始時刻(秒)。省略すると動画全体を処理します。 |
| callback_url | string | いいえ | 処理完了時に POST を受信する Webhook URL。ペイロードにはスコア順のクリップ配列が含まれ、各クリップには download_url が含まれます。 |
詳細
@crabcut/mcp-server
Claude、Cursor、または MCP に対応する任意の AI アシスタントから、YouTube 動画を短いクリップに変換できます。
YouTube のリンクを渡すと、最適な場面を見つけて、縦型動画(9:16)向けに再構成し、字幕を追加して、ダウンロード可能なクリップを返します。
クイックスタート
- app.crabcut.ai/developers で API キーを取得します
- 次を実行します。
CRABCUT_API_KEY=sk_live_... npx @crabcut/mcp-server
セットアップ
Claude Desktop / Cursor
設定ファイルに追加します。Claude の場合は claude_desktop_config.json、Cursor の場合は .cursor/mcp.json です。
{
"mcpServers": {
"crabcut": {
"command": "npx",
"args": ["@crabcut/mcp-server"],
"env": {
"CRABCUT_API_KEY": "sk_live_..."
}
}
}
}
Cursor Directory
Smithery
npx @smithery/cli mcp add crabcut/crabcut-mcp-server
リモート(Streamable HTTP)
n8n、カスタム統合、またはリモート MCP に対応する任意のクライアントで使用できます。
- エンドポイント:
https://mcp.crabcut.ai/mcp - 認証:
Authorization: Bearer sk_live_... - トランスポート: Streamable HTTP(POST)
ツール
| ツール | 内容 |
|---|---|
generate_clips | YouTube URL からクリップの生成を開始します。すぐに project_id を返します。 |
get_project_status | 進行状況を確認し、準備ができたらクリップを取得します。クリップはスコア順(最高のものが先頭)に並びます。 |
list_projects | ステータスとクリップ数を含むプロジェクトの一覧を取得します。 |
get_clip | 単一のクリップの詳細を取得します。 |
check_usage | プラン、残りのクレジット、使用状況を確認します。 |
仕組み
- YouTube URL を指定して
generate_clipsを呼び出します - すぐに
project_idが返されます get_project_statusを 10〜15 秒ごとにポーリングします(または、ウェブフック用のcallback_urlを指定します)- 完了すると、クリップはスコア順(最高のものが先頭)に並び、それぞれに
download_urlが付与されます
ステータス
プロジェクト: pending → processing → completed(または completed_no_clips / failed)
処理ステップ: queued → DOWNLOADING_VIDEO → EXTRACTING_AUDIO → TRANSCRIBING → DETECTING_HIGHLIGHTS → CUTTING_CLIPS → EXPORTING_CLIPS → done
クリップ: pending → exporting → completed(または failed)。clip_status が completed の場合、download_url を利用できます。
API リファレンス
generate_clips
YouTube 動画からクリップの生成を開始します。
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
url | string | はい | YouTube 動画の完全な URL |
start_time | number | いいえ | 開始時刻(秒単位。指定した区間のみを処理します) |
end_time | number | いいえ | 終了時刻(秒単位。指定した区間のみを処理します) |
callback_url | string | いいえ | 完了時に結果を受け取るウェブフック URL |
{
"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
進行状況を確認し、クリップを取得します。
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
project_id | string | はい | generate_clips から取得したプロジェクト ID |
{
"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"
}
]
}
クリップは score の降順(最高値が先頭)に並びます。
list_projects
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
limit | number | いいえ | 返すプロジェクトの最大数です。デフォルトは 20、最大は 100 です。 |
status | string | いいえ | 絞り込み: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
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
clip_id | string | はい | プロジェクトのクリップ配列にあるクリップ ID |
{
"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
入力は必要ありません。
{
"plan": "pro",
"credits_remaining": 450,
"credits_total": 500,
"period_start": "2026-03-01T00:00:00.000Z",
"period_end": "2026-04-01T00:00:00.000Z"
}
エラー
| HTTP ステータス | エラー | 対処方法 |
|---|---|---|
| 400 | 無効な YouTube URL | URL の形式を確認してください |
| 401 | 認証されていません | API キーを確認してください |
| 402 | クレジットが不足しています | クレジットを追加購入するか、短い動画を使用してください |
| 429 | レート制限を超過しました | 時間をおいてから再試行してください |
| 500 | 内部サーバーエラー | 後でもう一度お試しください |
Webhooks
generate_clips の呼び出し時に callback_url を渡すと、すべてのクリップの準備ができたときに POST を受信できます。
完了時:
{
"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"
}
]
}
失敗時:
{
"event": "project.failed",
"project_id": "43dbe622-...",
"status": "failed",
"error": "YouTube video is unavailable",
"clips": []
}
クリップはスコアの高い順に並べられます。サーバーから応答がない場合、最大 3 回再試行します。
署名の検証(任意): 各コールバックには X-Crabcut-Signature ヘッダーが含まれます。SHA-256(your_api_key) を署名キーとして、リクエストボディの HMAC-SHA256 を計算します。ヘッダーの値(sha256=<hex>)と比較してください。
n8n での使用
オプション A — Webhook(推奨):
- Webhook トリガーノードを使ってワークフローを作成します。その URL をコピーします。
- HTTP Request ノードを追加します。Header Auth(
Authorization: Bearer sk_live_...)を設定し、本文に次を指定します。{ "url": "https://www.youtube.com/watch?v=...", "callback_url": "https://your-n8n.com/webhook/abc123" } - クリップの準備ができると、Webhook ノードがペイロードを受信します。
- 最適なクリップ:
{{ $json.clips[0].download_url }}
オプション B — ポーリングループ:
- クリップ生成のために
POSTを送信します(上記と同様ですが、callback_urlは指定しません)。 - 15 秒 Wait →
https://api.crabcut.ai/api/v1/projects/{{ $json.project_id }}に GET → ステータスがcompletedでなければ IF で判定し、Wait に戻ります。
REST API
MCP を使わずに直接 HTTP 呼び出しを行う場合:
| メソッド | エンドポイント | 説明 |
|---|---|---|
POST | /api/v1/clips/generate | クリップ生成を開始 |
GET | /api/v1/projects/:id | プロジェクトのステータスとクリップを取得 |
GET | /api/v1/projects | プロジェクト一覧を取得 |
GET | /api/v1/clips/:id | 単一のクリップの詳細を取得 |
GET | /api/v1/account/usage | クレジットとプランを確認 |
ベース URL:https://api.crabcut.ai — すべてのエンドポイントで Authorization: Bearer sk_live_... が必要です。
環境変数
| 変数 | 必須 | デフォルト |
|---|---|---|
CRABCUT_API_KEY | はい | — |
CRABCUT_API_URL | いいえ | https://api.crabcut.ai |
リンク
- ウェブサイト:crabcut.ai
- API キー:app.crabcut.ai/developers
- 料金:crabcut.ai/pricing
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。