YouTube MCP (Zubeid)
Zubeid YouTube MCP Server
YouTube MCP on a Data API key: an agent searches videos and channels with a subscriber-count filter and reads playlists, statistics and transcripts
- 588 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Every request spends the daily quota of your Google Cloud project's YouTube Data API keys
- Channel replies include found email addresses and contact links: public data, but people's contact details
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/zubeid-youtube-mcp-serverDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Every request spends the daily quota of your Google Cloud project's YouTube Data API keys
- Channel replies include found email addresses and contact links: public data, but people's contact details
This is third-party code. Review the repository files before installing.
What it does
YouTube MCP by the author Zubeid Hendricks gives an agent ten read tools over YouTube data. The server installs as the npm package `zubeid-youtube-mcp-server` and starts with `npx -y zubeid-youtube-mcp-server`. It needs at least one YouTube Data API key in the `YOUTUBE_API_KEY`, `YOUTUBE_API_KEY2` or `YOUTUBE_API_KEY3` variables. When a key runs out of quota the server repeats the request with the next one. For videos there are `videos_getVideo` and `videos_searchVideos` with filters by date, channel and the channel's subscriber count. For channels there are `channels_getChannel`, `channels_getChannels`, `channels_searchChannels` and `channels_listVideos`. The `channels_findCreators` tool finds channels by mentions in videos and selects them by audience size, last upload date and a creator-or-brand heuristic. For playlists there are `playlists_getPlaylist` and `playlists_getPlaylistItems`. `transcripts_getTranscript` returns a video's transcript; the language comes from a parameter or from `YOUTUBE_TRANSCRIPT_LANG`, English by default. A channel reply adds the last upload date and normalized data: country, default language, creation date, found email addresses and contact links. The Docker image starts the same server over HTTP on port 8088.
Who it is for. For marketers, producers and researchers who search YouTube through Claude Desktop or VS Code for videos, creators to work with and transcripts for notes, and for developers who need a simple server on a Data API key.
Good fit when
- You need to find small channels on a topic and pick them by subscriber count and last upload date
- An agent has to collect statistics for a video, channel or playlist and put it in a table
- A video transcript is needed in a chosen language for a short summary or notes
- Video search needs filters: publication date, channel, the channel's subscriber range
- The server has to run as an HTTP service in a container with clients connecting to the /mcp address
Not a fit when
- You need to upload videos, create Shorts or view your own channel analytics: all ten tools only read public data
- You have no YouTube Data API key and do not want to get one: without a key only the transcript works
- You only need transcripts: the youtube-transcript-mcp-server entry is simpler and asks for no key
- You need replies compressed in tokens with a request cache: the youtube-data-mcp-server-kirbah entry describes those properties
Example request
Find videos about a home coffee shop from the last three months, keep channels under 50 thousand subscribers and send a table with titles, views and last upload dateMCP
- Transport
- stdio, http
- Authentication
- API key
Environment variables
YOUTUBE_API_KEYrequired, secret- Primary YouTube Data API key
YOUTUBE_API_KEY2secret- Fallback key for when the quota is exhausted
YOUTUBE_API_KEY3secret- Third fallback key
YOUTUBE_TRANSCRIPT_LANG- Default transcript language, en by default
Limitations
- The server is unofficial: YouTube and Google did not release it.
- The server spends Data API key quota on every request except transcripts. For that it holds up to three keys and moves to the next when the current one runs out.
- The `creatorOnly` flag rests on a heuristic, not on YouTube data, so creator selection can be wrong.
- Building the Docker image copies the `.env` file into the final image, and the keys stay inside it. Such an image must not be published.
- The image listens on `0.0.0.0:8088` over stateless HTTP, and the documentation does not describe access control for the `/mcp` address.
- Transcripts are requested in English by default: set another language with the `language` parameter or the `YOUTUBE_TRANSCRIPT_LANG` variable.
- The license is MIT.
How to disable. Remove the youtube entry from the client config and restart the app. If you no longer need the keys, disable or delete them in the Google Cloud Console under the project's credentials.
FAQ
How do I connect YouTube MCP to Claude Desktop?
In `claude_desktop_config.json` add an `mcpServers` entry with the `npx` command, the arguments `-y` and `zubeid-youtube-mcp-server` and a `YOUTUBE_API_KEY` variable with your key. For installing without hand-editing the author offers `npx -y @smithery/cli install @ZubeidHendricks/youtube --client claude`.
What can YouTube MCP do: only read, or upload videos too?
Only read. The ten tools search for and describe videos, channels and playlists and return transcripts. Video upload, Shorts creation and channel analytics are not among them.
Do I need a key to get a video transcript?
For transcripts the server uses the `youtube-transcript` package, and the code of that tool does not check a key. All other tools need at least one YouTube Data API key.
What happens when a key runs out of quota?
The server repeats the same request with the next key from `YOUTUBE_API_KEY2` and `YOUTUBE_API_KEY3`. If all three are exhausted, the request fails until the quota resets.
How do I find YouTube creators to work with through MCP?
Call `channels_findCreators` with a topic or mention, set the subscriber bounds `channelMinSubscribers` and `channelMaxSubscribers` and the last upload date. The `sampleVideosPerChannel` parameter shows sample matching videos, and `creatorOnly` keeps channels the server judged to be creators.
How do I run the server over HTTP?
Build the image with `docker build -t youtube-mcp-server .` and run `docker run --rm -p 8088:8088 youtube-mcp-server`. The server address is `http://localhost:8088/mcp` and the readiness check is `/ready`. Keys come from the `.env` file that was present at build time.
Discussion
No questions or reviews yet.
Related
MCP serversYouTube Data MCP (kirbah)
YouTube Data MCP Server (kirbah)
YouTube MCP with trimmed replies: transcripts without a key, video and channel statistics, trends, comments, a MongoDB cache and growing-channel search
MCP server for YouTube transcripts: an agent gets a video transcript by URL, with timestamps and metadata
yutu runs a YouTube channel from the terminal: videos, playlists, comments. Has an MCP server, a built-in agent and a skill for Claude Code and Codex
Claude Video Vision
claude-video-vision
An MCP server and Claude Code plugin that let the agent watch video: frames via ffmpeg and audio transcription via Gemini, local Whisper or OpenAI
MCP Music Forge: track download and processing
MCP Music Forge
A Redis-backed queue MCP server that downloads tracks from SoundCloud, YouTube, Yandex Music and Spotify, transcodes them and tags them with cover art
Yandex Music MCP server with genre analysis
Yandex Music MCP Server
An unofficial Yandex Music MCP server: likes, genre analysis, search and playlist management over HTTP or stdio
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| YouTube MCP (Zubeid) (this entry) | no | API key | 588 | |
| YouTube Data MCP (kirbah) | no | key is optional | 32 | another Data API server: replies compressed in tokens, with a MongoDB cache, trends, comments and outlier channel search |
| YouTube Transcript MCP Server | no | not required | 492 | transcripts only: plain text, a timestamped variant, metadata and a language list, with no YouTube key |
| yutu | no | 703 | a command-line program for managing your own channel: videos, playlists, comments and captions, with an MCP server |
README in short
The documentation opens with a table of ten tools with required and optional parameters and a detailed description of each. Next come installation as a global package, through `npx` and Smithery, the list of environment variables, VS Code setup that asks for the key at launch, development commands and a Docker run with the `/mcp` and `/ready` addresses. The repository has a smoke test, an `llms.txt` file, a `.mcp.json` example, a Smithery configuration and a project page.