Skip to main content
Glama
YouTube Transcript MCP Server

YouTube Transcript MCP Server

YouTube Transcript MCP Server

PyPI version Python 3.11+ License: MIT Smithery

An MCP (Model Context Protocol) server that extracts, searches, and analyzes YouTube video transcripts. Works with Claude Desktop, Cursor, and any MCP-compatible client.

Features

  • Get Transcript - Extract full transcript from any YouTube video

  • Search Transcript - Find specific keywords with surrounding context

  • Transcript Summary - Get time-chunked transcript for easier analysis

  • Batch Processing - Process up to 10 videos at once

Related MCP server: YouTube Insights MCP Server

Installation

pip install yt-transcript-mcp

From source

git clone https://github.com/alex2zimmermann-ux/yt-transcript-mcp
cd yt-transcript-mcp
pip install .

Configuration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "yt-transcript-mcp",
      "env": {
        "YT_MCP_MODE": "standalone"
      }
    }
  }
}

Environment Variables

Variable

Default

Description

YT_MCP_MODE

standalone

standalone or backend

YT_MCP_BACKEND_URL

http://localhost:8300

Backend service URL

YT_MCP_BACKEND_API_KEY

-

API key for backend

YT_MCP_CACHE_MAX_SIZE

100

Max cache entries

YT_MCP_CACHE_TTL_SECONDS

3600

Cache TTL in seconds

YT_MCP_RATE_LIMIT_PER_MINUTE

30

Rate limit

YT_MCP_TRANSPORT

stdio

stdio or streamable-http

Modes

Standalone (default)

Uses youtube-transcript-api directly. Lightweight, no external dependencies. Best for marketplace deployment.

Backend

Connects to a running transcript service (FastAPI) that supports cookies, yt-dlp, and Whisper fallback. Best for premium/self-hosted usage.

Tools

get_transcript

Get the transcript of a YouTube video.

Parameters:

  • url (required) - YouTube URL or video ID

  • language (optional, default: "en") - Language code

  • format (optional, default: "text") - "text", "segments", or "both"

search_transcript

Search for keywords in a video transcript.

Parameters:

  • url (required) - YouTube URL or video ID

  • query (required) - Search term

  • language (optional, default: "en")

  • context_segments (optional, default: 1) - Surrounding segments to include

get_transcript_summary

Get transcript in time chunks for analysis.

Parameters:

  • url (required) - YouTube URL or video ID

  • language (optional, default: "en")

  • chunk_minutes (optional, default: 5)

batch_transcripts

Process multiple videos at once.

Parameters:

  • urls (required) - List of YouTube URLs or IDs (max 10)

  • language (optional, default: "en")

Docker

# Standalone
docker compose --profile standalone up

# Backend
YT_MCP_BACKEND_API_KEY=your-key docker compose --profile backend up

Development

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/ -v --cov

License

MIT

Available Tools

4 tools
batch_transcriptsA
Read-only

Get transcripts for multiple YouTube videos in a single request (max 10 videos).

Inputs: urls (required), language. Returns: result

get_transcriptA
Read-only

Get the full transcript of a YouTube video in the specified language and format.

Inputs: url (required), language, format. Returns: result

get_transcript_summaryA
Read-only

Get a transcript organized into time-based chunks for easier analysis of long videos.

Inputs: url (required), language, chunk_minutes. Returns: result

search_transcriptA
Read-only

Search for keywords or phrases in a YouTube video transcript and return matching segments with timestamps.

Inputs: url (required), query (required), language, context_segments. Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: batch_transcripts handles multiple videos, get_transcript retrieves a full transcript, get_transcript_summary provides chunked analysis, and search_transcript finds specific segments. There is no overlap in functionality, making tool selection straightforward for an agent.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., get_transcript, search_transcript) with clear, descriptive verbs. The naming is uniform across all four tools, enhancing readability and predictability.

    Tool Count5/5

    With 4 tools, the server is well-scoped for its purpose of YouTube transcript retrieval and analysis. Each tool serves a unique and essential function, avoiding bloat while covering core operations like retrieval, summarization, and search.

    Completeness5/5

    The tool set provides complete coverage for the domain: it supports single and batch transcript retrieval, summarization for long videos, and search capabilities. There are no obvious gaps, as all key workflows for transcript analysis are addressed without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Extracts YouTube video metadata, titles, and descriptions along with transcripts generated from subtitles or OpenAI Whisper speech-to-text. This server enables users to retrieve and analyze detailed video content directly within MCP-compatible environments.
      1
      16 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      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.
      6
      50 PyPI
      6
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that extracts YouTube video transcripts (including metadata) as Markdown, enabling AI to summarize and discuss video content without watching it.
      MIT