YouTube MCP AIO
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_PATH | No | Streamable HTTP path | /mcp |
| HEALTH_PATH | No | Public health path | /healthz |
| YT_DLP_PATH | No | Local executable path for yt-dlp; image uses /opt/yt-dlp/bin/yt-dlp | yt-dlp |
| MCP_TRANSPORT | No | Stdio locally, HTTP on Cloud Run; CLI flag wins | auto |
| PUBLIC_BASE_URL | No | Stable HTTPS URL used for Host validation | |
| YOUTUBE_API_KEY | No | Enables official public Data API operations | |
| MCP_ACCESS_TOKEN | No | Required fixed bearer in HTTP mode | |
| MCP_ALLOWED_HOSTS | No | Additional exact candidate/stable hosts | |
| HTTP_MAX_BODY_BYTES | No | Maximum request body (2 MiB) | 2097152 |
| YOUTUBE_QUOTA_STORE | No | Quota store type; cloud deployment sets firestore | memory |
| GOOGLE_CLOUD_PROJECT | No | Required by the Firestore quota adapter | |
| YOUTUBE_CURSOR_SECRET | No | Cursor-signing secret; defaults to bearer fallback | |
| YOUTUBE_PROVIDER_MODE | No | Provider mode: hybrid, official, or unofficial | hybrid |
| YOUTUBE_DEFAULT_REGION | No | Default trending region | KR |
| HTTP_REQUEST_TIMEOUT_MS | No | Node request timeout aligned with Cloud Run | 300000 |
| YOUTUBE_API_DAILY_BUDGET | No | Conservative ordinary Data API guard | 9000 |
| YOUTUBE_DEFAULT_LANGUAGE | No | Preferred transcript/result language | ko |
| YOUTUBE_MAX_RESULT_BYTES | No | Default result limit; hard maximum 32,768 | 12288 |
| YOUTUBE_CACHE_TTL_SECONDS | No | Bounded process-local cache freshness | 900 |
| YOUTUBE_CURSOR_TTL_SECONDS | No | Cursor validity | 86400 |
| YOUTUBE_SEARCH_DAILY_BUDGET | No | Conservative search-call guard | 90 |
| YOUTUBE_TRANSCRIPT_PROVIDERS | No | Transcript fallback order | yt-dlp,youtubejs |
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
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| youtube_video_getA | Get one video's metadata, transcript page, or comments page. |
| youtube_searchA | Search globally, within a channel or transcript, or get trending videos. |
| youtube_channel_getC | Resolve and get one YouTube channel profile. |
| youtube_playlist_getB | Get playlist metadata or one signed page of playlist items. |
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
Each tool targets a distinct primary resource or action: video, search, channel, and playlist. The descriptions make it clear which resource to use, and there is little overlap in their intended purposes.
Three tools follow the youtube_<resource>_get pattern, while youtube_search uses a verb-style name. The shared youtube_ prefix and clear resource naming keep the set mostly consistent and predictable.
Four tools is on the smaller side for a self-described all-in-one YouTube server, but each tool is broad enough to earn its place. The count is reasonable for a read-only YouTube access tool.
Core read-only YouTube workflows are covered: video details, transcripts, comments, search, channel profiles, and playlist items. There are minor gaps such as explicit comment listing or channel upload feeds, but these can be worked around via search and video_get.