Skip to main content
Glama
lumiclip

mcp-lumiclip

Official
by lumiclip

@lumiclip/mcp-server

YouTube 동영상을 짧은 클립으로 변환하세요. Claude, Cursor 또는 MCP를 지원하는 모든 AI 어시스턴트에서 사용할 수 있습니다.

YouTube 링크를 제공하면 최고의 순간을 찾아 세로형 비디오(9:16)로 리프레임하고, 자막을 추가하여 다운로드 가능한 클립으로 반환합니다.

Lumiclip MCP server

빠른 시작

  1. app.lumiclip.ai/developers에서 API 키를 받으세요.

  2. 다음을 실행하세요:

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

Related MCP server: Image Metadata AI MCP

설정

Claude Desktop / Cursor

설정 파일에 추가하세요 — Claude의 경우 claude_desktop_config.json, Cursor의 경우 .cursor/mcp.json:

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

Cursor 디렉토리

Cursor에 설치

Smithery

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

원격 (Streamable HTTP)

n8n, 사용자 지정 통합 또는 원격 MCP를 지원하는 모든 클라이언트를 위한 설정:

  • 엔드포인트: https://mcp.lumiclip.ai/mcp

  • 인증: Authorization: Bearer sk_live_...

  • 전송: Streamable HTTP (POST)

도구

도구

설명

generate_clips

YouTube URL에서 클립 생성을 시작합니다. 즉시 project_id를 반환합니다.

get_project_status

진행 상황을 확인하고 준비된 클립을 가져옵니다. 클립은 점수순(최고 점수 우선)으로 정렬됩니다.

list_projects

프로젝트 상태 및 클립 수를 포함한 프로젝트 목록을 나열합니다.

get_clip

단일 클립에 대한 전체 세부 정보를 가져옵니다.

check_usage

플랜, 남은 크레딧 및 사용량을 확인합니다.

작동 방식

  1. YouTube URL로 generate_clips를 호출합니다.

  2. 즉시 project_id를 받습니다.

  3. 10~15초마다 get_project_status를 폴링합니다(또는 웹훅을 위해 callback_url을 전달합니다).

  4. 완료되면 클립이 점수순(최고 점수 우선)으로 정렬되며, 각 클립에는 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.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"
    }
  ]
}

클립은 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.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

입력값이 필요하지 않습니다.

{
  "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

내부 서버 오류

나중에 다시 시도하세요

웹훅

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.lumiclip.ai/exports/premium/.../clip-32538b9c-....mp4",
      "thumbnail_url": "https://cdn.lumiclip.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-Lumiclip-Signature 헤더가 포함됩니다. SHA-256(your_api_key)를 서명 키로 사용하여 요청 본문의 HMAC-SHA256을 계산하고 헤더 값(sha256=<hex>)과 비교하세요.

n8n과 함께 사용하기

옵션 A — 웹훅(권장):

  1. Webhook 트리거 노드가 있는 워크플로우를 만듭니다. 해당 URL을 복사하세요.

  2. HTTP Request 노드를 추가합니다: POST https://api.lumiclip.ai/api/v1/clips/generate (헤더 인증 Authorization: Bearer sk_live_... 및 본문 포함):

    {
      "url": "https://www.youtube.com/watch?v=...",
      "callback_url": "https://your-n8n.com/webhook/abc123"
    }
  3. 클립이 준비되면 웹훅 노드가 페이로드를 수신합니다.

  4. 최고의 클립: {{ $json.clips[0].download_url }}

옵션 B — 폴링 루프:

  1. 클립 생성을 위해 POST 요청 (위와 동일, callback_url 제외).

  2. 15초 대기 → https://api.lumiclip.ai/api/v1/projects/{{ $json.project_id }}로 GET 요청 → 상태가 completed가 아니면 대기 단계로 루프.

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.lumiclip.ai — 모든 엔드포인트는 Authorization: Bearer sk_live_...가 필요합니다.

환경 변수

변수

필수

기본값

LUMICLIP_API_KEY

예

—

LUMICLIP_API_URL

아니오

https://api.lumiclip.ai

링크

라이선스

MIT

Available Tools

5 tools
check_usageA
Read-onlyIdempotent

Returns a JSON object with plan (string), credits_remaining (number), credits_total (number), period_start (ISO date), and period_end (ISO date). Call this before generate_clips to confirm the user has enough credits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the description's addition of return format and usage context adds moderate value beyond structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the return format and followed by usage advice, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool, the description fully covers what the agent needs: return fields and when to call it. Output schema absence is compensated by explicit field listing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With no input parameters and 100% schema coverage, the description adds no parameter info but correctly lists the return structure, fulfilling the need for parameter semantic clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool returns a JSON object with specific fields (plan, credits_remaining, etc.), clearly distinguishing it from sibling tools like generate_clips.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises calling this tool before generate_clips to confirm sufficient credits, providing explicit guidance on when to use it and its relationship to a sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_clipsA

Start AI clip generation from a YouTube video. Returns a JSON object with project_id (string), status ('processing'), poll_url (string), and estimated_minutes (number). Processing is async -- use get_project_status to poll every 10-15 seconds, or provide a callback_url to receive a webhook POST when all clips are exported with download URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull YouTube video URL (e.g. https://www.youtube.com/watch?v=...)
start_timeNoStart time in seconds to clip only a segment of the video. Omit to process the full video.
end_timeNoEnd time in seconds to clip only a segment of the video. Omit to process the full video.
callback_urlNoWebhook URL to receive a POST when processing finishes. The payload includes an array of clips sorted by score, each with a download_url.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context beyond annotations by detailing the return JSON structure (project_id, status, poll_url, estimated_minutes) and the async behavior with optional callback. There is no contradiction with annotations. Minor missing details like error handling or rate limits prevent a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: first states purpose, second describes return, third explains async usage. Front-loaded with key information, no redundant phrases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the return structure, async nature, and polling/callback options. Without an output schema, it provides sufficient context for an async job initiation tool. Could mention error responses or limits, but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameters are well-described in the schema. The description does not add significant new meaning beyond what the schema provides, so score remains at baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Start' and the resource 'AI clip generation from a YouTube video', which precisely defines the tool's action. It is easily distinguished from sibling tools like get_clip and get_project_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains that processing is asynchronous and provides two methods for obtaining results: polling via get_project_status every 10-15 seconds or providing a callback_url for a webhook. This gives clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clipA
Read-onlyIdempotent

Returns a JSON object with full clip details: id, project_id, title, duration, score, reason, export_status, export_quality (720p/1080p), is_exported, video_url, video_url_720p, video_url_1080p, thumbnail_url, created_at, updated_at.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_idYesThe unique clip ID from a project's clips array.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint true and destructiveHint false, making the read-only nature clear. The description adds detail about return field names and format (e.g., export_quality values 720p/1080p), but does not disclose other behavioral traits such as rate limits, authorization requirements, or error handling. Extra context is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that lists all return fields efficiently, with the purpose right at the start. No repetitive or extraneous content. Slightly dense due to the long list, but still well-structured for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one required parameter, no output schema, no nested objects), the description covers the purpose and return fields adequately. It specifies certain field formats (export_quality values) which adds value. Some missing context about potential errors or the requirement that the clip exist, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description for clip_id is complete ('The unique clip ID from a project's clips array') and coverage is 100%. The description adds no further parameter semantics because the schema already provides sufficient meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a JSON object with full clip details, listing specific fields. The verb 'Returns' and resource 'clip details' indicate a retrieval operation. Sibling tools like 'generate_clips' (creation) and 'list_projects' (listing) are distinct, so this tool is unambiguously for fetching a single clip's details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing full details of a specific clip, but it does not explicitly state when not to use it (e.g., for listing clips) or suggest alternatives. No guidance on prerequisites (e.g., clip must exist) or context for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_statusA
Read-onlyIdempotent

Returns a JSON object with id, name, status (pending/processing/completed/completed_no_clips/failed), step, error, expected_clips, duration, created_at, and a clips array. Clips are sorted by score (highest first). Each clip has: id, title, duration, score, reason, clip_status (pending/exporting/completed/failed), download_url (string or null), quality, thumbnail_url, created_at, updated_at. The download_url is only available when clip_status is 'completed'. Poll every 10-15 seconds until project status is 'completed'.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project ID returned by generate_clips

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds that download_url is only available when clip_status is 'completed' and clips sorted by score, which provides useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is detailed but each sentence contributes value: return structure, sorting, clip fields, download_url condition, polling advice. Could be slightly condensed but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description provides a comprehensive breakdown of the return object, including nested clip fields and conditional availability. Polling guidance further completes the usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with project_id description. Description does not add additional parameter-level meaning beyond what schema provides, but it details the return structure. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a JSON object with project status and clips, distinguishing it from siblings like get_clip (single clip) and generate_clips (creation). Specific verb 'Returns' and resource 'project status'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance: 'Poll every 10-15 seconds until project status is completed'. This is clear context for when to call repeatedly. No explicit when-not-to-use or alternatives, but the polling advice is very helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsA
Read-onlyIdempotent

Returns a JSON object with projects (array), total, limit, and offset. Each project has: id, name, status, step, expected_clips, clips_count, duration, created_at. Use the status filter to find only completed or failed projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of projects to return. Defaults to 20, maximum 100.
statusNoFilter results to only projects with this status.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, openWorldHint. The description adds the response structure (fields like total, offset) but does not disclose behavioral traits beyond annotations, such as pagination defaults or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: first states the return structure, second gives a usage tip. No wasted words, front-loaded with the most important information, earning its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two parameters, full schema coverage, and no output schema, the description adequately outlines the response shape (projects array, pagination fields, project attributes). Could mention default limit (20) and max (100) from schema, but overall complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for 'limit' and 'status'. The description adds marginal value by suggesting use of status filter for completed/failed projects, but does not provide new meaning beyond the schema's enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies it returns a JSON object with paginated list of projects and their fields (id, name, status, etc.). This distinguishes it from siblings like get_project_status (single project) or generate_clips (generation), providing a clear verb+resource scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing projects with optional status filtering ('Use the status filter to find only completed or failed projects') but does not explicitly state when to prefer this tool over siblings like get_project_status or check_usage, nor are there when-not-to-use guidelines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 5 tool updatesv3.0.0
    • First observedcheck_usage
    • First observedgenerate_clips
    • First observedget_clip
    • First observedget_project_status
    • First observedlist_projects

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: check_usage for credits, generate_clips for initiating generation, get_clip for retrieving a specific clip, get_project_status for polling progress, and list_projects for enumerating projects. No functional overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., generate_clips, get_project_status), making them predictable and intuitive.

Tool Count5/5

Five tools is well-scoped for the server's purpose: credit checking, generation initiation, status polling, single clip retrieval, and project listing. Each tool serves a necessary function without excess.

Completeness4/5

Core workflow (check credits, generate, poll results, retrieve clips) is covered. Minor gaps like missing cancel operation or webhook management are present but not critical for basic usage.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers