youtube-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YT_DLP_PATH | No | Path to yt-dlp executable, if not on PATH. | |
| YOUTUBE_API_KEY | Yes | A restricted YouTube Data API key. | |
| YOUTUBE_CLIENT_ID | No | Google OAuth desktop client ID. | |
| YOUTUBE_SMOKE_URL | No | URL for smoke test (default public video if not set). | |
| YOUTUBE_REDIRECT_URI | No | Loopback redirect URI configured in Google OAuth client. | http://127.0.0.1:8787/callback |
| YOUTUBE_CLIENT_SECRET | No | Google OAuth client secret (optional). | |
| YOUTUBE_SMOKE_COMMENTS_URL | No | URL for comments smoke test. | |
| YOUTUBE_SMOKE_TRANSCRIPT_URL | No | URL for transcript smoke test. | |
| YOUTUBE_SMOKE_OWNED_PLAYLIST_URL | No | Private test playlist URL for ownership smoke check. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| youtube_get_authenticated_channelA | Gets the YouTube channel attached to the local OAuth session. |
| youtube_list_owned_playlistsA | Gets one explicit page of playlists owned by the authenticated channel. |
| youtube_get_owned_playlist_itemsA | Gets one explicit item page from a playlist owned by the authenticated channel. |
| youtube_create_playlistB | Creates a playlist owned by the authenticated channel. New playlists default to private. |
| youtube_update_playlistB | Updates metadata on a playlist owned by the authenticated channel. |
| youtube_add_playlist_videoC | Adds a public video to a playlist owned by the authenticated channel. |
| youtube_remove_playlist_itemA | Removes one exact item from an owned playlist. Requires confirm: true. |
| youtube_reorder_playlist_itemA | Moves one exact item in an owned playlist. Requires confirm: true. |
| youtube_get_videoA | Gets normalized public metadata for a YouTube video URL. |
| youtube_search_videosA | Searches one explicit page of public YouTube videos and returns normalized metadata. |
| youtube_get_playlist_itemsA | Gets one explicit page of a public YouTube playlist, including item IDs and positions. |
| youtube_list_transcript_languagesB | Lists creator and automatic caption tracks exposed for a YouTube video. |
| youtube_get_transcriptB | Gets one explicit page of timestamped creator or automatic YouTube caption segments. |
| youtube_get_channelA | Gets normalized public metadata for a YouTube channel URL using /channel/CHANNEL_ID or /@handle. |
| youtube_get_channel_videosB | Gets one explicit page of recent public uploads from a YouTube channel URL. |
| youtube_find_commentsA | Finds literal terms across an explicit bounded number of comment pages. Results always describe retrieved pages only, never every comment on the video. |
| youtube_get_commentsC | Gets one explicit page of public YouTube comment threads. matchTerms only filters the retrieved page, not every comment on the video. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/EthanDM/youtube-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server