youtube-summarize
youtube-summarize
YouTube 동영상 자막을 가져오고 선택적으로 요약하는 MCP 서버입니다.

기능
자막 가져오기: 다양한 형식(텍스트, JSON, SRT, WebVTT, pretty-print) 지원
동영상 메타데이터 — 제목, 설명, 채널, 업로드 날짜, 재생 시간, 조회수, 챕터 (yt-dlp 사용)
선택적 타임스탬프 — 일반 텍스트 자막에 포함 가능
동영상 요약 — LLM이 작업을 수행하기 전에 사람이 검토할 수 있도록 프롬프트가 명확하게 구분된 자막 반환
재생목록 동영상 나열 — 정렬 옵션을 포함하여 공개 재생목록을 빠르게 열거
사용 가능한 언어 나열 — 동영상 자막에 대해 지원되는 언어 확인
유연한 URL 파싱 — 전체 YouTube URL(
youtube.com/watch?v=,youtu.be/,youtube.com/embed/,youtube.com/shorts/) 또는 동영상 ID만 입력 가능다국어 지원 — 우선순위에 따라 특정 언어로 자막 요청 가능
Related MCP server: ytt-mcp
도구
get_transcript
YouTube 동영상의 자막을 가져옵니다. 기본적으로 응답 앞에 [METADATA] 블록(제목, 채널, 게시일, 재생 시간, 조회수, 설명)이 붙습니다. 자막만 출력하려면 include_metadata=false를 전달하세요.
매개변수 | 유형 | 기본값 | 설명 |
| string | 필수 | YouTube 동영상 URL 또는 동영상 ID |
| string[] |
| 우선순위에 따른 선호 언어 |
| string |
| 출력 형식: |
| boolean |
| 자막 내 HTML 서식 태그 유지 |
| boolean |
|
|
| boolean |
| 자막 앞에 |
summarize_transcript
자막을 가져와 요약 지침과 함께 반환합니다. 응답은 명확하게 레이블이 지정된 섹션([INSTRUCTIONS], [PROMPT_SOURCE], [VIDEO], [METADATA], [TRANSCRIPT])으로 구성되어 있어, LLM이 작업을 수행하기 전에 사람이 프롬프트를 검토할 수 있습니다.
매개변수 | 유형 | 기본값 | 설명 |
| string | 필수 | YouTube 동영상 URL 또는 동영상 ID |
| string | (기본 프롬프트) | 사용자 지정 요약 지침 |
| string[] |
| 우선순위에 따른 선호 언어 |
| boolean |
| 각 자막 줄 앞에 |
| boolean |
| 제목, 채널, 게시일, 재생 시간, 조회수, 설명이 포함된 |
get_video_metadata
YouTube 동영상의 메타데이터(제목, 설명, 채널, 업로드 날짜, 재생 시간, 조회수, 태그, 챕터 등)를 가져옵니다. yt-dlp 기반입니다.
매개변수 | 유형 | 기본값 | 설명 |
| string | 필수 | YouTube 동영상 URL 또는 동영상 ID |
list_playlist_videos
YouTube 재생목록의 동영상 목록(제목, ID, 채널, 재생 시간, 조회수, URL)을 나열합니다. 대규모 재생목록에서도 빠르게 호출할 수 있도록 동영상별 메타데이터는 간소화되어 있습니다. 자세한 내용은 특정 동영상 ID로 get_video_metadata를 호출하세요.
매개변수 | 유형 | 기본값 | 설명 |
| string | 필수 | YouTube 재생목록 URL( |
| integer |
| 반환할 최대 동영상 수 |
| string |
| 정렬 기준: |
| string |
|
|
list_transcripts
동영상에 대해 사용 가능한 자막 언어 목록을 가져옵니다.
매개변수 | 유형 | 기본값 | 설명 |
| string | 필수 | YouTube 동영상 URL 또는 동영상 ID |
설치
빠른 시작 (권장)
uvx youtube-summarizeClaude Desktop
claude_desktop_config.json에 추가하세요:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"youtube-summarize": {
"command": "uvx",
"args": ["youtube-summarize"]
}
}
}Claude Code
claude mcp add youtube-summarize -- uvx youtube-summarize기타 MCP 클라이언트
stdio를 통해 서버를 실행하세요:
uvx youtube-summarize사전 요구 사항
Python 3.13+
uv 패키지 관리자
개발
# Install dependencies
uv sync
# Launch the MCP inspector (web UI for testing tools)
uv run mcp dev main.py라이선스
MIT
mcp-name: io.github.zlatkoc/youtube-summarize
Available Tools
6 toolsget_transcriptA
Fetch a YouTube video's transcript.
Args: url: YouTube video URL or video ID languages: Preferred languages in priority order (e.g. ["en", "de"]). Defaults to English. format: Output format — one of: text, json, pretty, webvtt, srt preserve_formatting: Keep HTML formatting tags in the transcript text include_timestamps: When True with format="text", prefix each line with [HH:MM:SS]. Ignored for json/srt/webvtt/pretty (those formats already include timestamps). include_metadata: When True (default), prepend a [METADATA] block (title, channel, published, duration, views, description) before the transcript. Pass False for transcript-only output.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| format | No | text | |
| languages | No | ||
| include_metadata | No | ||
| include_timestamps | No | ||
| preserve_formatting | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the behavior of all parameters, including interactions (e.g., 'include_timestamps' ignored for certain formats) and defaults. However, it does not disclose potential failure cases (e.g., invalid URL or unavailable transcript).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening sentence and a bullet-style Args list. It is informative without excessive verbosity, though the Args section could be slightly condensed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description does not need to detail return values. It covers all parameters and their behavior comprehensively. Minor missing context includes error handling and prerequisites (e.g., valid URL).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all 6 parameters with defaults, accepted values (e.g., format options), and behavioral nuances (e.g., 'include_timestamps' interaction with format). This adds significant meaning beyond the schema's bare titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a YouTube video's transcript,' which is a specific verb and resource. It distinguishes itself from siblings like 'list_transcripts' (which lists available transcripts) and 'summarize_transcript' (which summarizes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like 'list_transcripts' or 'summarize_transcript.' It provides parameter details but lacks context on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_metadataA
Fetch metadata (title, description, channel, upload date, duration, views, chapters, etc.) for a YouTube video.
Args: url: YouTube video URL or video ID
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral aspects such as authentication, rate limits, or error handling. It only lists the metadata fields returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and a bullet for args, but it could be more structured (e.g., separating description and args more formally).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and sibling tools, the description lists enough fields to understand what is returned. However, missing behavioral details like auth prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that the url parameter accepts a YouTube video URL or video ID, adding meaning beyond the schema which only specifies type string. Since schema coverage is 0%, this is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it fetches metadata for a YouTube video and lists specific fields (title, description, channel, etc.), which distinguishes it from sibling tools like get_transcript and summarize_transcript.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given; usage is implied by the purpose but lacks differentiation from siblings or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_playlist_videosA
List the videos in a YouTube playlist (titles, IDs, channels, durations, views).
Per-video metadata is intentionally lean so the call stays fast even for big playlists. For full metadata on a specific video, call get_video_metadata with that video's ID.
Args: url: YouTube playlist URL (with ?list=...) or bare playlist ID limit: Maximum videos to return (default 500). Pass a smaller value to truncate. sort_by: Sort key — "index" (playlist order, default), "title", "duration", "views". "upload_date" is not supported in this fast-mode tool. order: "asc" (default) or "desc".
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| limit | No | ||
| order | No | asc | |
| sort_by | No | index |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses lean/fast behavior and intentionally sparse per-video metadata. Notes that upload_date sorting is unsupported. With no annotations, the description sufficiently informs about the tool's nature, though it could mention auth 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear opening, rationale, and labeled Args section. Efficiently uses sentences to convey intent and parameter details. Minor improvement would be combining some lines, but overall very concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a listing tool with output schema present: explains return metadata, why it's lean, how to get more detail, and covers all parameters. No gaps given the context signals (4 params, no annotations, output schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant meaning beyond the input schema: explains url format (with ?list= or bare ID), limit usage (default 500, can truncate), available sort keys (including unsupported upload_date), and order options. Schema coverage is 0%, but description covers all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists videos in a YouTube playlist and specifies the metadata included (titles, IDs, channels, durations, views). It distinguishes from sibling tool 'get_video_metadata' by noting this is a fast, lean alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly guides when to use this tool vs alternatives: 'For full metadata on a specific video, call get_video_metadata with that video's ID.' Also clarifies limitations (no upload_date sort) and suggests truncating with limit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transcriptsA
List available transcript languages for a YouTube video.
Args: url: YouTube video URL or video ID
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It omits any information about read-only nature, error handling, authentication needs, or side effects. For a listing tool, basic safety context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short sentences. It is front-loaded with the main action. The parameter documentation is separate but minimal. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to detail return values. However, it lacks context on prerequisites (e.g., video must exist) and does not guide the agent on when to use this vs. get_transcript. For a simple tool, this is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the input schema by specifying that the url parameter accepts 'YouTube video URL or video ID', which the schema lacks. This clarifies acceptable input formats despite the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available transcript languages for a YouTube video. This verb+resource phrasing distinguishes it from sibling tools like get_transcript (retrieves a specific transcript) and get_video_metadata (metadata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for discovering transcript languages before fetching one, but it does not explicitly state when to use this tool versus alternatives like get_transcript or provide any when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_videosA
Search YouTube for videos and return a clean ranked result list.
Unlike the YouTube website, results contain only actual videos — no ads, recommendation shelves, or personalization. Relevance ordering still comes from YouTube's backend. Pair with get_transcript or summarize_transcript on a result's ID or URL.
Args: query: Search terms limit: Maximum results to return (default 10) sort_by: Result order — "relevance" (default), "date" (newest first), "views", "rating" uploaded: Filter by upload time — "any" (default), "hour", "today", "week", "month", "year" duration: Filter by length — "any" (default), "short" (<4 min), "medium" (4-20 min), "long" (>20 min)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| sort_by | No | relevance | |
| duration | No | any | |
| uploaded | No | any |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses that results exclude ads and personalization and that relevance ordering comes from YouTube's backend. However, it omits details on rate limits, authentication, error handling, or pagination behavior, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a brief purpose paragraph followed by a clear argument-style list of parameters. Every sentence adds information, and the structure is front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are handled. The description covers behavior and parameters well, but lacks details on pagination, result limits (beyond default), or edge cases (e.g., no results). Slightly incomplete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides comprehensive explanations for all five parameters, including default values and allowed options (e.g., sort_by: relevance, date, views, rating). This adds significant value beyond the input schema, which has no parameter descriptions (0% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search YouTube for videos and return a clean ranked result list,' specifying the verb and resource. It distinguishes from the YouTube website by mentioning no ads or personalization, and the parameter list reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests pairing with get_transcript or summarize_transcript, but does not explicitly mention alternatives among siblings (e.g., list_playlist_videos, get_video_metadata) or when not to use this tool. The guidance is present but limited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_transcriptA
Fetch a YouTube video's transcript and return it with summarization instructions.
The LLM client should use the returned instructions and transcript to produce a summary. The output is structured into clearly-labeled sections so a human can review the prompt before letting the LLM act on it.
Args: url: YouTube video URL or video ID prompt: Custom summarization instructions. If omitted, a default summary prompt is used. languages: Preferred languages in priority order (e.g. ["en", "de"]). Defaults to English. include_timestamps: When True, prefix each transcript line with [HH:MM:SS]. include_metadata: When True (default), include a [VIDEO] block with title, channel, published date, duration, views, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| prompt | No | ||
| languages | No | ||
| include_metadata | No | ||
| include_timestamps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry the burden. It explains that the tool returns instructions and transcript for the LLM to produce a summary, and output is structured. However, it does not disclose potential errors, rate limits, or prerequisites like authentication. The key behavior is transparent but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then uses a clear 'Args' list for parameters. It is slightly verbose but every sentence provides value. Could be tightened slightly but remains effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five parameters, no annotations, and presence of an output schema, the description covers the main behaviors and parameter details. It explains the output structure but misses error handling or return format specifics (likely covered by output schema). Comprehensive enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description includes a detailed 'Args' section explaining each parameter's purpose, defaults, and behavior (e.g., languages in priority order, timestamps format). This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches a YouTube transcript and returns it with summarization instructions, distinguishing it from siblings like get_transcript which returns raw transcript. The purpose is specific: to provide a meta-output for LLM summarization, not a direct summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied from the description (use when you want a summary with instructions), but there is no explicit guidance on when to choose this over get_transcript or other siblings. No exclusions or alternatives are mentioned, leaving the agent to infer.
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 tool update
v0.6.0- Added
search_videos
4 tool updates
v0.3.0- Changed
get_transcript2 fields changed- added
Input schema / properties / include_metadataAdded value: +{ + "default": true, + "title": "Include Metadata", + "type": "boolean" +} - added
Input schema / properties / include_timestampsAdded value: +{ + "default": false, + "title": "Include Timestamps", + "type": "boolean" +}
- Added
get_video_metadata - Added
list_playlist_videos - Changed
summarize_transcript2 fields changed- added
Input schema / properties / include_metadataAdded value: +{ + "default": true, + "title": "Include Metadata", + "type": "boolean" +} - added
Input schema / properties / include_timestampsAdded value: +{ + "default": false, + "title": "Include Timestamps", + "type": "boolean" +}
3 tool updates
v0.1.0- First observed
get_transcript - First observed
list_transcripts - First observed
summarize_transcript
TDQS
Scored across 6 tools
Each tool targets a clear and distinct aspect: listing transcript languages, fetching transcripts, summarizing with instructions, fetching metadata, listing playlist videos, and searching. Overlap between get_transcript and summarize_transcript is clarified by the latter's added summarization step, and descriptions make the difference explicit.
All tool names follow a consistent verb_noun pattern with lowercase snake_case (e.g., list_transcripts, get_transcript, summarize_transcript). The naming is predictable and intuitive.
Six tools cover the core functionality of a YouTube summarization service (transcript retrieval, summarization, metadata, search, playlist listing) without unnecessary redundancy. The scope is well-balanced.
The tool surface provides end-to-end coverage: listing available transcripts, fetching them in multiple formats, summarizing with custom prompts, retrieving video metadata, searching videos, and listing playlist contents. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
Real-time YouTube transcripts, comments, channels & video search hosted MCP. OAuth or API key.
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server that enables the extraction of transcripts and detailed metadata from YouTube videos. It allows users to retrieve video information like titles and descriptions, as well as transcripts with optional timestamps and language selection.2MIT
- AlicenseBqualityDmaintenanceAn MCP server designed to fetch transcripts for YouTube videos. It enables AI tools to access video text content for tasks like summarization, analysis, and key takeaway extraction.174MIT
- FlicenseBqualityDmaintenanceAn MCP server that extracts transcripts, metadata, and summaries from YouTube videos across various URL formats including Shorts and standard links. It provides comprehensive video data and insights for analysis within MCP-compatible environments.3-
- AlicenseNot gradedqualityCmaintenanceMCP server for fetching YouTube video transcripts without an API key.GPL 3.0