YouTube Transcript MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YT_DLP_PATH | No | Where yt-dlp lives, if it isn't on PATH | yt-dlp |
| GEMINI_API_KEY | No | AI Studio key. `GOOGLE_API_KEY` works too | |
| GOOGLE_API_KEY | No | AI Studio key. Works as an alternative to GEMINI_API_KEY. | |
| AI_GATEWAY_API_KEY | No | Vercel AI Gateway. Preferred, because `gemini-3.6-flash` resolves there | |
| YT_TRANSCRIPT_FLEX | No | Vercel's flex tier. Off because it ignores the thinking budget; see above | false |
| YT_TRANSCRIPT_MODEL | No | Which model transcribes. The gateway prefix is added for you | gemini-3.6-flash |
| YT_TRANSCRIPT_REPAIR | No | Repair auto-captions with a text call instead of re-transcribing | true |
| YT_TRANSCRIPT_TIMEOUT_MS | No | How long to wait on a model call | 600000 |
| YT_TRANSCRIPT_MAX_MINUTES | No | Longest video the paid path will accept | 180 |
| YT_TRANSCRIPT_MAX_PER_HOUR | No | Transcriptions per rolling hour. `0` removes the cap | 30 |
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 | {} |
| logging | {} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| youtube_transcriptA | Get a YouTube video's transcript. Tries the video's own captions first (free, and most videos have them), then Gemini reading the URL (billed), then yt-dlp if installed. Returns the transcript plus which source produced it, so you can tell a human-written caption track from a machine transcription. Accepts any YouTube URL shape or a bare video id. |
| youtube_transcript_doctorA | Check what this server can actually do right now: which caption clients answer, whether a transcription key is configured, and whether yt-dlp is installed. Free, and makes one unauthenticated request to YouTube. |
| youtube_searchA | Search YouTube and filter the results on view count, how recently they were posted, video length, and the channel's subscriber count. Filters combine: a video about X with over 50,000 views, posted in the last month, from a channel with over 80,000 subscribers. Free, no API key. Returns video ids you can pass to youtube_transcript. |
| youtube_transcriptsA | Get transcripts for several videos in one call. Each one goes through the same chain as youtube_transcript: captions first, then Gemini, then yt-dlp. Videos are fetched in parallel and a failure on one does not stop the rest. Set allowPaid false to keep the whole batch free. |
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 4 tools
youtube_transcript and youtube_transcripts are potentially confusing due to their similar names, but their descriptions clearly distinguish single from batch operations. youtube_search and youtube_transcript_doctor are unambiguous.
All tool names use snake_case and share the youtube_ prefix, creating a consistent and predictable pattern. The use of singular vs plural is a clear convention for single vs batch operations.
With only 4 tools, the server is well-scoped and each tool serves a distinct purpose: single transcript, batch transcript, search, and diagnostics. The count feels appropriate for a focused transcript service.
The tool set covers the core workflow completely: search for videos, retrieve a single transcript, retrieve multiple transcripts, and check server capabilities. No obvious gaps exist for a transcript-focused server.