Skip to main content
Glama
lumiclip

mcp-lumiclip

Official
by lumiclip

@lumiclip/mcp-server

Turn long 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.

Lumiclip MCP server

Quick Start

  1. Get an API key at app.lumiclip.ai/developers

  2. Run:

LUMICLIP_API_KEY=sk_live_... npx @lumiclip/mcp-server

Setup

Claude Desktop / Cursor

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

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

Cursor Directory

Install in Cursor

Smithery

npx @smithery/cli mcp add lumiclip/lumiclip

Remote (Streamable HTTP)

For n8n, custom integrations, or any client that supports remote MCP:

  • Endpoint: https://mcp.lumiclip.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: pendingprocessingcompleted (or completed_no_clips / failed)

Processing steps: queuedDOWNLOADING_VIDEOEXTRACTING_AUDIOTRANSCRIBINGDETECTING_HIGHLIGHTSCUTTING_CLIPSEXPORTING_CLIPSdone

Clips: pendingexportingcompleted (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.lumiclip.ai/exports/premium/.../clip-32538b9c-....mp4",
      "quality": "1080p",
      "thumbnail_url": "https://cdn.lumiclip.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.lumiclip.ai/...",
  "video_url_720p": "https://cdn.lumiclip.ai/...",
  "video_url_1080p": "https://cdn.lumiclip.ai/...",
  "thumbnail_url": "https://cdn.lumiclip.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.lumiclip.ai/exports/premium/.../clip-32538b9c-....mp4",
      "thumbnail_url": "https://cdn.lumiclip.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-Lumiclip-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.lumiclip.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.lumiclip.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.lumiclip.ai — All endpoints require Authorization: Bearer sk_live_...

Environment Variables

Variable

Required

Default

LUMICLIP_API_KEY

Yes

LUMICLIP_API_URL

No

https://api.lumiclip.ai

License

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lumiclip/lumiclip-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server