The YouTube MCP server acts as a friendly bridge between AI assistants and the world's largest video platform. In simple terms, it allows an AI to "see" what is happening on YouTube by searching for videos, checking channel stats, and even reading through video transcripts. This means instead of a user having to watch a long tutorial to find a specific answer, they can ask an AI assistant to find the exact moment in the video where a topic is discussed. Beyond basic searches, this tool offers a deep set of technical capabilities by tapping into the YouTube Data API v3. It can retrieve comprehensive metadata, including video descriptions, durations, and engagement statistics like likes and view counts. It also features robust transcript management, allowing AI models to pull timestamped captions in multiple languages. This enables high-level functions like searching for specific keywords within a playlist or summarizing the entire content library of a specific channel. For developers and power users, this MCP server is particularly valuable because it standardizes how Large Language Models (LLMs) interact with video data. By providing a structured interface for Claude Desktop or VS Code, it turns YouTube into a searchable database that an AI can query dynamically. Whether it’s for building automated content research workflows or creating AI agents that can manage video libraries through natural language, this server provides the necessary infrastructure to make YouTube content fully accessible to AI-driven applications.
Category: Design, Media & Creative
Tags: metadata, search, transcripts, video, youtube
bash npm install -g zubeid-youtube-mcp-server Using Smithery (Automatic for Claude Desktop): bash npx -y @smithery/cli install @ZubeidHendricks/youtube --client claude Using NPX (No installation required): You can run the server directly via NPX by referencing it in your configuration file. ---~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows): Standard Installation: json { "mcpServers": { "zubeid-youtube-mcp-server": { "command": "zubeid-youtube-mcp-server", "env": { "YOUTUBE_API_KEY": "your_youtube_api_key_here" } } } } Using NPX: json { "mcpServers": { "youtube": { "command": "npx", "args": ["-y", "zubeid-youtube-mcp-server"], "env": { "YOUTUBE_API_KEY": "your_youtube_api_key_here" } } } }.vscode/mcp.json: json { "mcp": { "inputs": [ { "type": "promptString", "id": "apiKey", "description": "YouTube API Key", "password": true } ], "servers": { "youtube": { "command": "npx", "args": ["-y", "zubeid-youtube-mcp-server"], "env": { "YOUTUBE_API_KEY": "${input:apiKey}" } } } } }YOUTUBE_API_KEY: Your YouTube Data API key (Required). * YOUTUBE_TRANSCRIPT_LANG: Default language for transcripts (Optional, defaults to 'en'). ---videos.getVideo: Get video details (title, description, duration, stats). * videos.searchVideos: Search for videos across YouTube. * Parameters: query, maxResults Transcript Management * transcripts.getTranscript: Retrieve video transcripts with timestamp support. * Parameters: videoId, language Channel Management * channels.getChannel: Get channel details and statistics. * Parameters: channelId * channels.listVideos: List all videos from a specific channel. * Parameters: channelId, maxResults Playlist Management * playlists.getPlaylist: Get details of a specific playlist. * playlists.getPlaylistItems: List all videos within a playlist. * Parameters: playlistId, maxResults ---video-id." * Searching Content: "Search for the top 10 videos about 'Model Context Protocol'." * Channel Analysis: "List the latest 50 videos from channel channel-id and provide their statistics." * Playlist Retrieval: "Get all items currently in the playlist playlist-id." YouTube API Setup Requirement: To use this server, you must have a Google Cloud Project with the YouTube Data API v3 enabled and an active API Key.youtube.transcripts.getTranscript to fetch the text and youtube.videos.getVideo for the description, then generates a "Top 5 Takeaways" summary with timestamps for the user.likes) to spot emerging trends. Example: A user asks, "Analyze the last 20 videos from the 'TechReviews' channel. Which ones had the highest view-to-subscriber ratio, and what were their primary keywords?" The AI uses youtube.channels.listVideos and youtube.videos.getVideo to compile a performance report.
youtube.playlists.getPlaylistItems to get the list of videos and searches their transcripts to return: "In Video #4, starting at 12:45, the instructor provides a deep dive into decorators."Part of MCP Servers
YouTube MCP allows AI clients to interact directly with the YouTube platform. It provides tools to search videos, retrieve full timestamped transcripts, examine channel subscriber statistics and recent uploads, inspect playlist contents, and discover creators filtered by audience size. The server also handles fallback logic across multiple YouTube Data API keys if daily quota limits are exceeded.
You can install the server globally using npm with the command npm install -g zubeid-youtube-mcp-server. Alternatively, you can configure your MCP client to run it directly without prior installation using npx -y zubeid-youtube-mcp-server. You must also supply a valid Google YouTube Data API v3 key as an environment variable in your configuration file.
YouTube MCP works with any Model Context Protocol compliant host client. It provides documented setup instructions for Claude Desktop on macOS and Windows, as well as Visual Studio Code via user settings or workspace configuration files. It can also be installed into Claude Desktop automatically using the Smithery command-line tool.
The server supports quota failover through optional environment variables. By defining secondary and tertiary keys using YOUTUBE_API_KEY2 and YOUTUBE_API_KEY3 alongside your primary YOUTUBE_API_KEY, the server automatically retries requests with the next available key whenever a YouTube Data API quota exhaustion error occurs during operation.
Yes. The transcripts_getTranscript tool accepts an optional language parameter containing an ISO language code. You can also specify a global default language using the YOUTUBE_TRANSCRIPT_LANG environment variable. If no language parameter is provided and the environment variable is unset, the server defaults to fetching English transcripts.