Fetch MCP Server
Fetches web pages and returns them as HTML, Markdown, plain text, JSON, article text or YouTube transcripts
Read-only YouTube lookups: videos, channels, playlists and transcripts via the Data API
By Zubeid Hendricks (individual) TypeScript Local · stdio MediaData and analytics
60 popularity score ★ 595 ↓ 355/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs YOUTUBE_API_KEY. Replace each <NAME> with your value.
claude mcp add youtube -e YOUTUBE_API_KEY=<YOUTUBE_API_KEY> -- npx -y zubeid-youtube-mcp-server{
"mcpServers": {
"youtube": {
"command": "npx",
"args": [
"-y",
"zubeid-youtube-mcp-server"
],
"env": {
"YOUTUBE_API_KEY": "<YOUTUBE_API_KEY>"
}
}
}
}{
"mcpServers": {
"youtube": {
"command": "npx",
"args": [
"-y",
"zubeid-youtube-mcp-server"
],
"env": {
"YOUTUBE_API_KEY": "<YOUTUBE_API_KEY>"
}
}
}
}{
"servers": {
"youtube": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"zubeid-youtube-mcp-server"
],
"env": {
"YOUTUBE_API_KEY": "<YOUTUBE_API_KEY>"
}
}
}
}[mcp_servers.youtube]
command = "npx"
args = ["-y", "zubeid-youtube-mcp-server"]
[mcp_servers.youtube.env]
YOUTUBE_API_KEY = "<YOUTUBE_API_KEY>"gemini mcp add --scope user -e YOUTUBE_API_KEY=<YOUTUBE_API_KEY> youtube npx -- -y zubeid-youtube-mcp-serverYOUTUBE_API_KEY |
Required: YouTube Data API v3 key. One of YOUTUBE_API_KEY, YOUTUBE_API_KEY2 or YOUTUBE_API_KEY3 must be set. |
|---|---|
YOUTUBE_API_KEY2 |
Optional: Second key, tried when the first one's quota is used up. |
YOUTUBE_API_KEY3 |
Optional: Third key, tried after the second. |
YOUTUBE_TRANSCRIPT_LANG |
Optional: Default transcript language; en if unset. |
MCP_TRANSPORT |
Optional: stdio (default) or http. |
MCP_HOST |
Optional: Address the HTTP mode binds to; 0.0.0.0 by default. |
MCP_PORT |
Optional: Port for HTTP mode; 8088 by default. |
YouTube MCP Server is a community-built Node.js server that gives an assistant read access to public YouTube data. It looks up video details, searches videos and channels, lists a channel's uploads, reads playlists and their items, and fetches a video's transcript in a chosen language.
A good part of the tool set is aimed at finding creators. Video and channel searches can be filtered by the channel's subscriber count and the date of its latest upload, limited to channels it guesses are individual creators rather than brands, and sorted by subscribers or recent activity. Channel lookups add normalised metadata such as country, join date, custom URL and any contact links or email addresses found in the channel description.
The repository description mentions video management and Shorts creation, but the published version 1.0.2 has neither: its server.js registers exactly 10 tools, and every one only reads. Search returns 10 results by default unless maxResults is given (dist/services/video.js). Transcripts are fetched through the youtube-transcript library without using the API key, and the language falls back to YOUTUBE_TRANSCRIPT_LANG, then en.
It runs over stdio by default. Setting MCP_TRANSPORT=http starts an HTTP endpoint at /mcp instead, which is what the repository's Docker image does.
| Runtime | Node.js |
|---|
Node.js with npm (npx). A Google Cloud project with the YouTube Data API v3 enabled and at least one API key from it. Usage counts against that key's daily YouTube API quota. The Docker image is built from the repository, not pulled from a registry, and serves HTTP on port 8088.
No write access: it cannot upload, edit, delete, comment or manage playlists, whatever the repository description says. It reads public data only, not a signed-in user's private videos or analytics. The API key is checked only when a tool is called, not at start, so a missing key shows up as a tool error. When a key runs out of quota it retries with YOUTUBE_API_KEY2, then YOUTUBE_API_KEY3. Transcripts depend on scraping YouTube's caption data and fail for videos with no captions in the requested language. The Docker build copies .env into the image, so any keys in it end up baked into the image.
Suits researchers, marketers and developers who want an assistant to search YouTube, read video and channel statistics or pull transcripts, and especially anyone scouting creator channels by size and activity. Because it only reads and needs no Google sign-in beyond an API key, it is simple to set up. Pick something else if you need to upload or manage videos on your own channel, or read your private channel analytics: this server has no OAuth and no write tools. It is a community project, not Google's.
videos_getVideovideos_searchVideostranscripts_getTranscriptchannels_getChannelchannels_getChannelschannels_searchChannelschannels_findCreatorschannels_listVideosplaylists_getPlaylistplaylists_getPlaylistItems