youtube-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YOUTUBE_API_KEY | No | Optional YouTube Data API key to enable search and playlist tools without signing in. | |
| GOOGLE_CLIENT_ID | No | OAuth client ID for YouTube account access. Required for sign-in features, but the server can run without it for public transcript tools. | |
| GOOGLE_CLIENT_SECRET | No | OAuth client secret for YouTube account access. Required for sign-in features, but the server can run without it for public transcript tools. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_transcriptA | Fetch the transcript/subtitles of a YouTube video for reading, summarizing or quoting. Works for any public video without sign-in. Accepts a video ID or any YouTube URL. Long transcripts are truncated at max_chars — request a later start_seconds to continue. |
| list_transcript_languagesA | List the caption tracks available for a video (language, human-written vs auto-generated, translatable) plus the languages YouTube can machine-translate into. Use before get_transcript when unsure. |
| get_video_infoA | Get metadata for a video: title, channel, duration, description, view count and whether captions exist. Needs no sign-in and no API quota. |
| list_channel_uploadsA | List a channel's most recent uploads, newest first. Prefer this over search_videos whenever you want "the latest videos from channel X" — it costs 1 quota unit instead of 100 and returns uploads completely, including videos whose title does not contain any particular word. |
| get_subscription_feedA | Merged newest-first feed of recent uploads across the signed-in account's subscriptions — the "what is new from the channels I follow" view. Requires sign-in. Results are cached, so repeated calls are nearly free. Combine with get_transcript to summarize what is new. |
| search_videosA | Full-text search across YouTube. Costs 100 quota units per call, so use list_channel_uploads instead when you just want a channel's recent videos. Requires sign-in or YOUTUBE_API_KEY. Passing channel_id without query is routed to the cheap uploads path automatically. |
| get_auth_statusA | Report whether the server is signed in to a Google account and which capabilities are available. |
| list_my_subscriptionsB | List the channels the signed-in account is subscribed to. Requires sign-in. |
| list_my_playlistsB | List the signed-in account's own playlists. Requires sign-in. |
| get_playlist_itemsA | List the videos in a playlist. Public playlists work with an API key; private ones need sign-in. Combine with get_transcript to summarize a whole playlist. |
| list_my_uploadsB | List videos uploaded by the signed-in account, newest first. Requires sign-in. |
| list_my_video_captionsA | List the official caption tracks of a video owned by the signed-in account, including drafts that are not publicly served. Requires sign-in and video ownership. |
| download_my_captionA | Download an official caption track as SRT or VTT. Only works for videos owned by the signed-in account — use get_transcript for anything else. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Most tools are distinct (get_transcript, get_video_info, search_videos, playlists, etc.), but overlap exists: get_transcript vs download_my_caption both fetch captions, though ownership differs; list_my_uploads and list_channel_uploads are similar but differ by account vs channel. The distinctions are clear enough but require careful reading.
The naming follows a consistent verb_noun pattern: get_*, list_*, search_*, download_*. The pattern is consistent, with only a minor deviation in 'download_my_caption' vs 'get_transcript' where 'get' and 'download' both imply fetching, but still readable.
13 tools is well within the ideal range for a YouTube-focused server. Each tool serves a specific purpose (transcripts, video info, channel uploads, playlists, subscriptions, auth), and none seem redundant or unnecessary.
The server covers core YouTube interactions: searching, video metadata, transcripts, channel uploads, playlists, and subscriptions. Minor gaps include lack of tools for liking/disliking videos, commenting, or managing playlists (create/delete), but these are not essential for read-only and summarize use cases.