Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

MCP server that fetches YouTube video transcripts and optionally summarizes them. Supports multiple transcript formats (text, JSON, SRT, WebVTT), multi-language retrieval, and flexible YouTube URL parsing.

README.md

youtube-summarize

MCP server that fetches YouTube video transcripts and optionally summarizes them.

!Demo — summarizing a YouTube video in Claude

Features

  • Fetch transcripts in multiple formats (text, JSON, SRT, WebVTT, pretty-print)
  • Video metadata — title, description, channel, upload date, duration, views, chapters (via yt-dlp)
  • Optional timestamps in plain-text transcripts
  • Summarize videos — returns transcript with the prompt clearly broken out for human review before the LLM acts on it
  • List playlist videos — fast enumeration of any public playlist with optional sorting
  • Search videos — clean ranked results with sort and filter options, without the ads, Shorts shelves, and personalized recommendations of the YouTube website
  • List available languages for any video's transcripts
  • Flexible URL parsing — accepts full YouTube URLs (youtube.com/watch?v=, youtu.be/, youtube.com/embed/, youtube.com/shorts/) or bare video IDs
  • Multi-language support — request transcripts in specific languages with fallback priority

Tools

get_transcript

Fetch a YouTube video's transcript. By default the response is prefixed with a [METADATA] block (title, channel, published, duration, views, description); pass include_metadata=false for transcript-only output.

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | url | string | required | YouTube video URL or video ID | | languages | string[] | ["en"] | Preferred languages in priority order | | format | string | "text" | Output format: text, json, pretty, webvtt, srt | | preserve_formatting | boolean | false | Keep HTML formatting tags in the transcript | | include_timestamps | boolean | false | When true with format="text", prefix each line with [HH:MM:SS]. Ignored for other formats (they already include timestamps). | | include_metadata | boolean | true | Prepend a [METADATA] block before the transcript. Pass false for transcript-only output. |

summarize_transcript

Fetch a transcript and return it with summarization instructions. The response is structured into clearly-labeled sections ([INSTRUCTIONS], [PROMPT_SOURCE], [VIDEO], [METADATA], [TRANSCRIPT]) so a human can review the prompt before letting the LLM act on it.

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | url | string | required | YouTube video URL or video ID | | prompt | string | (default prompt) | Custom summarization instructions | | languages | string[] | ["en"] | Preferred languages in priority order | | include_timestamps | boolean | false | Prefix each transcript line with [HH:MM:SS]. | | include_metadata | boolean | true | Include a [VIDEO] block with title, channel, published, duration, views, and description. |

get_video_metadata

Fetch metadata (title, description, channel, upload date, duration, views, tags, chapters, etc.) for a YouTube video. Backed by yt-dlp.

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | url | string | required | YouTube video URL or video ID |

list_playlist_videos

List the videos in a YouTube playlist (title, ID, channel, duration, views, URL). Per-video metadata is intentionally lean so the call stays fast even for large playlists; call get_video_metadata with a specific video ID for full detail.

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | url | string | required | YouTube playlist URL (with ?list=...) or bare playlist ID | | limit | integer | 500 | Maximum videos to return | | sort_by | string | "index" | One of: index (playlist order), title, duration, views. upload_date is not supported. | | order | string | "asc" | asc or desc |

search_videos

Search YouTube for videos and return a clean ranked list (title, ID, channel, duration, views, URL) — only actual videos, with 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.

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | query | string | required | Search terms | | limit | integer | 10 | Maximum results to return | | sort_by | string | "relevance" | One of: relevance, date (newest first), views, rating | | uploaded | string | "any" | Filter by upload time: any, hour, today, week, month, year | | duration | string | "any" | Filter by length: any, short (<4 min), medium (4–20 min), long (>20 min) |

list_transcripts

List available transcript languages for a video.

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | url | string | required | YouTube video URL or video ID |

Installation

Quick start (recommended)

uvx youtube-summarize

Claude Desktop

Add to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "youtube-summarize": {
      "command": "uvx",
      "args": ["youtube-summarize"]
    }
  }
}

Claude Code

claude mcp add youtube-summarize -- uvx youtube-summarize

Other MCP clients

Run the server over stdio:

uvx youtube-summarize

Prerequisites

  • Python 3.13+
  • uv package manager

Development

# Install dependencies
uv sync

# Launch the MCP inspector (web UI for testing tools)
uv run mcp dev main.py

License

MIT

---

mcp-name: io.github.zlatkoc/youtube-summarize

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Browser & Scraping servers.