YouTube Transcript MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Optional HTTP server port. Must be an integer from 1 through 65535. | |
| COOKIE | No | Legacy environment variable fallback for the YouTube session cookie. | |
| YT_COOKIE | No | Legacy environment variable fallback for the YouTube session cookie. | |
| MCP_AUTH_TOKEN | No | Optional bearer token. When set, every HTTP endpoint except CORS preflight requires Authorization: Bearer <token>. | |
| YOUTUBE_COOKIE | No | Optional YouTube session cookie read only from the server-side environment variable. |
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_youtube_transcriptA | Fetches and returns publicly available YouTube caption tracks; it does not transcribe audio. Accepts allowed YouTube URLs or raw video IDs, exact ISO 639-1/BCP-47 language codes such as pt-BR, es-419, and zh-Hans, and formats items into timestamped lines. If the requested track is unavailable, returns an error rather than another language. |
| summarize_youtube_transcriptA | Fetches a publicly available YouTube caption track and returns it to the calling AI for summarization. This server does not transcribe audio, run an LLM, or require an API key; it relies on ChatGPT or the connected MCP client to summarize the returned captions. |
| list_youtube_transcript_languagesA | Lists the caption languages currently exposed by YouTube for a video, including each language code, display name, and whether it is auto-generated. Call this before get_youtube_transcript when the user wants a specific language. |
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 3 tools
get_youtube_transcript and summarize_youtube_transcript both fetch a publicly available caption track, and the latter does not actually summarize internally, making their boundary unclear. list_youtube_transcript_languages is distinct, but the two fetch tools overlap significantly.
All tools use a consistent snake_case verb_youtube_transcript... pattern: get, summarize, and list. The convention is predictable despite the semantic inaccuracy of 'summarize'.
Three tools is a reasonable, well-scoped count for a narrow transcript retrieval server. However, summarize_youtube_transcript is largely redundant with get_youtube_transcript, so not every tool clearly earns its place.
The server covers the core read-only transcript workflow: discovering available languages and fetching captions. Minor gaps remain, such as no server-side summarization or explicit plain-text transcript retrieval, but the main operations are present.