YouTube MCP Server
MCP ServerFreeExtract and analyze YouTube video transcripts via MCP.
Capabilities9 decomposed
youtube subtitle extraction via yt-dlp command execution
Medium confidenceDownloads and extracts subtitle files from YouTube videos by spawning yt-dlp as a subprocess via spawn-rx, handling the command-line invocation, process lifecycle management, and output capture. The implementation wraps yt-dlp's native YouTube subtitle downloading capability, abstracting away subprocess management complexity and providing structured error handling for network failures, missing subtitles, or invalid video URLs.
Uses spawn-rx for reactive subprocess management of yt-dlp rather than direct Node.js child_process, providing RxJS-based stream handling for subtitle download lifecycle and enabling composable async operations within the MCP protocol flow
Avoids YouTube API authentication overhead and quota limits by delegating to yt-dlp, making it simpler for local/offline-first deployments than REST API-based approaches
vtt subtitle format parsing and text extraction
Medium confidenceParses WebVTT (VTT) subtitle files to extract clean, readable text by removing timing metadata, cue identifiers, and formatting markup. The processor strips timestamps (HH:MM:SS.mmm --> HH:MM:SS.mmm format), blank lines, and VTT-specific headers, producing plain text suitable for LLM consumption. This enables downstream text analysis without the LLM needing to parse or ignore subtitle timing information.
Implements lightweight regex-based VTT stripping rather than full WebVTT parser library, optimizing for speed and minimal dependencies while accepting that edge-case VTT features are discarded
Simpler and faster than full VTT parser libraries (e.g., vtt.js) for the common case of extracting plain text, with no external dependencies beyond Node.js stdlib
mcp tool registration and request routing
Medium confidenceRegisters YouTube subtitle extraction as an MCP tool with the Model Context Protocol server, exposing a named tool endpoint that Claude.ai can invoke. The implementation defines tool schema (name, description, input parameters), registers request handlers for ListTools and CallTool MCP messages, and routes incoming requests to the appropriate subtitle extraction handler. This enables Claude to discover and invoke the YouTube capability through standard MCP protocol messages without direct function calls.
Implements MCP server as a TypeScript class with explicit request handlers for ListTools and CallTool, using StdioServerTransport for stdio-based communication with Claude, rather than REST or WebSocket transports
Provides direct MCP protocol integration without abstraction layers, enabling tight coupling with Claude.ai's native tool-calling mechanism and avoiding HTTP/WebSocket overhead
stdio-based mcp protocol communication
Medium confidenceEstablishes bidirectional communication between the MCP server and Claude.ai using standard input/output streams via StdioServerTransport. The transport layer handles JSON-RPC message serialization, deserialization, and framing over stdin/stdout, enabling the server to receive requests from Claude and send responses back without requiring network sockets or HTTP infrastructure. This design allows the MCP server to run as a subprocess managed by Claude's desktop or CLI client.
Uses StdioServerTransport for process-based IPC rather than network sockets, enabling tight integration with Claude.ai's subprocess management and avoiding port binding complexity
Simpler deployment than HTTP-based MCP servers (no port management, firewall rules, or reverse proxies needed) but less flexible for distributed or cloud-based deployments
youtube video url validation and parameter extraction
Medium confidenceValidates YouTube video URLs and extracts video identifiers (video IDs) before passing them to yt-dlp for subtitle downloading. The implementation checks URL format, handles common YouTube URL variants (youtube.com, youtu.be, with/without query parameters), and extracts the video ID needed by yt-dlp. This prevents invalid URLs from reaching the subprocess layer and provides early error feedback to Claude.
Implements URL validation as a preprocessing step before yt-dlp invocation, catching malformed URLs early and providing structured error messages to Claude rather than relying on yt-dlp's error output
Provides immediate validation feedback without spawning a subprocess, reducing latency and subprocess overhead for obviously invalid URLs
subtitle language selection and fallback handling
Medium confidenceSelects subtitle language preferences when downloading from YouTube videos that have multiple subtitle tracks (e.g., English, Spanish, French). The implementation allows specifying preferred languages, handles fallback to auto-generated captions when manual subtitles are unavailable, and manages cases where requested languages don't exist. This enables Claude to request subtitles in specific languages or accept any available language based on configuration.
unknown — insufficient data on language selection implementation details in provided documentation
Delegates language selection to yt-dlp's native capabilities rather than implementing custom language detection, reducing complexity but limiting flexibility
error handling and failure reporting for subtitle extraction
Medium confidenceCaptures and reports errors from subtitle extraction failures, including network errors (video unavailable, region-blocked), missing subtitles (no captions available), invalid URLs, and subprocess failures. The implementation catches exceptions from yt-dlp execution, formats error messages for Claude consumption, and distinguishes between recoverable errors (retry-able) and permanent failures (user input error). This enables Claude to provide meaningful feedback to users about why subtitle extraction failed.
unknown — insufficient data on error handling strategy and error categorization in provided documentation
Provides error feedback through MCP protocol rather than silent failures, enabling Claude to inform users about extraction issues
caching and memoization of subtitle downloads
Medium confidenceOptionally caches downloaded subtitles to avoid redundant yt-dlp invocations for the same video URL, reducing latency and network overhead when the same video is processed multiple times. The implementation stores subtitle content keyed by video URL or video ID, with optional TTL-based expiration. This is particularly useful in multi-turn conversations where Claude may reference the same video multiple times or when processing batches of videos with duplicates.
unknown — insufficient data on whether caching is implemented or what caching strategy is used
In-memory caching provides zero-latency subtitle retrieval for repeated videos without external dependencies, but lacks persistence and cache invalidation guarantees
transcript assembly from multiple subtitle segments
Medium confidenceAssembles a coherent transcript from multiple VTT subtitle segments, handling segment boundaries, speaker transitions, and formatting consistency. The implementation concatenates cleaned subtitle text while preserving logical breaks between segments, optionally adding speaker labels or timestamps if needed for context. This produces a readable, continuous transcript suitable for summarization and Q&A tasks.
unknown — insufficient data on transcript assembly strategy and handling of segment boundaries
Produces a single coherent transcript from subtitle data without requiring external transcription services, enabling offline-first processing
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with YouTube MCP Server, ranked by overlap. Discovered automatically through the match graph.
YouTube
** - Fetch YouTube subtitles
youtube-subtitle-mcp
Fetch subtitles and transcripts from public YouTube videos. Choose your preferred format (SRT, VTT, TXT, or JSON) and language. Use full timestamps for easy editing, search, and analysis.
@xzxzzx/bilibili-mcp
Bilibili MCP tool for video and comment summarization
YouTube Data Server
Provide token-optimized, structured YouTube data to enhance your LLM applications. Access efficient tools for video search, detailed metadata retrieval, transcript fetching, channel analysis, and trend discovery. Reduce token consumption and improve performance with AI-tailored data formats.
Supadata
** - Official MCP server for [Supadata](https://supadata.ai) - YouTube, TikTok, X and Web data for makers.
Mcptube – Karpathy's LLM Wiki idea applied to YouTube videos
I watch a lot of Stanford/Berkeley lectures and YouTube content on AI agents, MCP, and security. Got tired of scrubbing through hour-long videos to find one explanation. Built v1 of mcptube a few months ago. It performs transcript search and implements Q&A as an MCP server. It got traction
Best For
- ✓LLM application developers building video analysis features
- ✓MCP server implementers needing YouTube integration
- ✓Teams wanting offline-first subtitle processing without API rate limits
- ✓LLM developers building video summarization or Q&A features
- ✓Builders creating video content analysis pipelines
- ✓Teams processing bulk YouTube subtitle data for training or research
- ✓MCP server developers extending Claude.ai with custom capabilities
- ✓Teams building AI agent systems that need standardized tool interfaces
Known Limitations
- ⚠Depends on yt-dlp being installed and available in system PATH — no bundled binary distribution
- ⚠Subtitle availability varies by video; some videos have no captions or only auto-generated captions
- ⚠YouTube may block or rate-limit yt-dlp requests if used at high volume without delays between requests
- ⚠No built-in retry logic or exponential backoff — failures propagate immediately to caller
- ⚠Assumes VTT format — other subtitle formats (SRT, ASS, SUB) require separate parsers
- ⚠Removes all timing information; if temporal context is needed (e.g., 'what happens at 2:30?'), timing data is lost
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
About
Community MCP server for YouTube video interaction. Extracts transcripts and captions from YouTube videos, enabling LLMs to analyze, summarize, and answer questions about video content.
Categories
Alternatives to YouTube MCP Server
Search the Supabase docs for up-to-date guidance and troubleshoot errors quickly. Manage organizations, projects, databases, and Edge Functions, including migrations, SQL, logs, advisors, keys, and type generation, in one flow. Create and manage development branches to iterate safely, confirm costs
Compare →AI-optimized web search and content extraction via Tavily MCP.
Compare →Scrape websites and extract structured data via Firecrawl MCP.
Compare →Are you the builder of YouTube MCP Server?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →