LyricVideoGenerator

Turn a song and its lyrics into a word-synced lyric video, with three styles to choose from.

사용해야 할까요

품질 및 안전성

A
설명 품질
96%
스키마 완전성
94%
이름 품질
93%
오염 위험
100%
권한 일치
90%
프로토콜 준수
100%

발견 사항 (2)

  • LOWTool 'choose_style' description lacks action verbchoose_style에서
  • LOWTool 'open_in_browser' suggests web access but openWorldHint=falseopen_in_browser에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,396토큰 (도구 정의)
~1.9 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.65%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "lyric-video": {
      "url": "https://lyricvideogenerator.app/api/mcp"
    }
  }
}

원격 엔드포인트

https://lyricvideogenerator.app/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (12)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟡create_lyric_video(audio, lyrics, title)

Turns a song the user attached (MP3/WAV) into a word-synced lyric video and proposes three visual styles. Pass the lyrics if the user gave them; otherwise they are transcribed from the audio. Takes about 10–40 seconds. Creates a new project each call.

입력 스키마

{
  "type": "object",
  "properties": {
    "audio": {
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string"
        },
        "file_id": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ],
      "description": "The song file the user attached"
    },
    "lyrics": {
      "description": "Full song lyrics, one line per sung line, if provided by the user",
      "type": "string",
      "maxLength": 20000
    },
    "title": {
      "description": "Song title, if known",
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "audio"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_lyric_video(projectId)

Returns a lyric video project's processing status, its three style options, the style now applied, and its numbered lyric lines.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "projectId returned by create_lyric_video"
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪choose_style(projectId, option)

Applies one of the three proposed style options (1, 2 or 3) to the lyric video. Replaces any edits made to the current style.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "projectId returned by create_lyric_video"
    },
    "option": {
      "type": "integer",
      "minimum": 1,
      "maximum": 3
    }
  },
  "required": [
    "projectId",
    "option"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡update_style(projectId, changes)

Changes the look of the current lyric video style: layout, word animation, colors, font, text size, background, and chorus emphasis. Send only the fields to change. Colors are #RRGGBB. Unreadable color combinations and unknown fonts are corrected or rejected with a reason.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "projectId returned by create_lyric_video"
    },
    "changes": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Rename the style",
          "type": "string",
          "minLength": 1,
          "maxLength": 60
        },
        "template": {
          "description": "Layout: focus = one big centered line; scroll = lyrics scroll with the current line highlighted; caption = subtitle-style lower-left; poster = giant left-aligned words filling the frame",
          "type": "string",
          "enum": [
            "focus",
            "scroll",
            "caption",
            "poster"
          ]
        },
        "animation": {
          "description": "Word motion: word-highlight, karaoke (left-to-right fill), line-fade, word-pop, typewriter, word-kinetic (each word pops in on its beat), line-stack (lines push up)",
          "type": "string",
          "enum": [
            "word-highlight",
            "karaoke",
            "line-fade",
            "word-pop",
            "typewriter",
            "word-kinetic",
            "line-stack"
          ]
        },
        "palette": {
          "type": "object",
          "properties": {
            "bg": {
              "description": "Background color",
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "fg": {
              "description": "Lyric text color",
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "accent": {
              "description": "Current word / emphasis color",
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "muted": {
              "description": "Inactive lines color",
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            }
          }
        },
        "font": {
          "description": "Any Google Fonts family name, e.g. \"Bebas Neue\"",
          "type": "string",
          "minLength": 1,
          "maxLength": 60
        },
        "fontWeight": {
          "anyOf": [
            {
              "type": "number",
              "const": 400
            },
            {
              "type": "number",
              "const": 500
            },
            {
              "type": "number",
              "const": 600
            },
            {
              "type": "number",
              "const": 700
            },
            {
              "type": "number",
              "const": 800
            },
            {
              "type": "number",
              "const": 900
            }
          ]
        },
        "fontScale": {
          "description": "Text size multiplier, 1 = template default",
          "type": "number",
          "minimum": 0.5,
          "maximum": 2.5
        },
        "uppercase": {
          "type": "boolean"
        },
        "align": {
          "type": "string",
          "enum": [
            "left",
            "center"
          ]
        },
        "background": {
          "description": "solid = palette.bg; gradient = from→to; cover-blur = blurred song cover (only when the song has a cover)",
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "solid",
                "gradient",
                "cover-blur"
              ]
            },
            "from": {
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "to": {
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "angle": {
              "type": "number",
              "minimum": 0,
              "maximum": 360
            }
          },
          "required": [
            "kind"
          ]
        },
        "showCoverBadge": {
          "type": "boolean"
        },
        "chorus": {
          "description": "Overrides applied only during choruses",
          "type": "object",
          "properties": {
            "scale": {
              "type": "number",
              "minimum": 0.5,
              "maximum": 2.5
            },
            "accent": {
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "animation": {
              "type": "string",
              "enum": [
                "word-highlight",
                "karaoke",
                "line-fade",
                "word-pop",
                "typewriter",
                "word-kinetic",
                "line-stack"
              ]
            }
          }
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "projectId",
    "changes"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡edit_lyrics(projectId, line, text)

Replaces the text of one lyric line (numbered from 1, as listed by get_lyric_video), keeping its timing. Use it to fix misheard or misspelled words.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "projectId returned by create_lyric_video"
    },
    "line": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    }
  },
  "required": [
    "projectId",
    "line",
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢export_video(projectId)

Free export: a 720p, 16:9 MP4 with a small watermark and a 2.5-second end card. It renders on the user's own computer inside the widget (about as long as the song), so this tool shows the widget and starts the export there; the user downloads the MP4 from the widget when it finishes. If their ChatGPT app can't render video, the widget offers to open the project in their browser instead.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "projectId returned by create_lyric_video"
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪begin_local_export(projectId)

Widget only: reserve a free 720p export to render in the browser.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "projectId returned by create_lyric_video"
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡upload_local_export(exportId, bytes)

Widget only: storage upload target for a browser-rendered MP4.

입력 스키마

{
  "type": "object",
  "properties": {
    "exportId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "bytes": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 524288000
    }
  },
  "required": [
    "exportId",
    "bytes"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪finish_local_export(exportId, assetId, error)

Widget only: complete a browser-rendered export after its upload, or fail it with an error.

입력 스키마

{
  "type": "object",
  "properties": {
    "exportId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "assetId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "error": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "exportId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_in_browser(projectId)

Widget only: a short-lived link that opens this project in the user's browser, where it can be exported.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "projectId returned by create_lyric_video"
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴export_hd_video(projectId, aspect)

Renders the lyric video in 1080p without a watermark, as 16:9 (landscape) or 9:16 (vertical). Requires the user's LyricVideoGenerator account: it uses 1 credit from their plan (or is free if this song was already unlocked on the website). Credits are refunded if the render fails. Returns an exportId; the widget shows progress and the download link.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "projectId returned by create_lyric_video"
    },
    "aspect": {
      "default": "16:9",
      "description": "16:9 for YouTube, 9:16 for TikTok / Reels / Shorts",
      "type": "string",
      "enum": [
        "16:9",
        "9:16"
      ]
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_export(exportId)

Returns the status of a video export and, when finished, its MP4 download URL.

입력 스키마

{
  "type": "object",
  "properties": {
    "exportId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "exportId of the export"
    }
  },
  "required": [
    "exportId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 12개