YouTube MCP Servers Compared: 20 Public Servers, Verified
Twenty public MCP servers connect an AI client to YouTube. Eighteen fetch transcripts of videos that already exist, fourteen return metadata, nine list channel videos, eight return comments. Every server that reads YouTube data takes a video ID or a URL, so none reviews a script before it is recorded.
An MCP server is a process or an HTTP endpoint that exposes tools to an AI client over the Model Context Protocol. The client lists the tools, chooses one, and passes arguments. A YouTube server adds tools that take a video ID, a channel handle, or a watch URL.
Two transports dominate. A stdio server runs as a child process on your machine and dies when the client exits. A Streamable HTTP server runs elsewhere and is reached by URL. Eight of the twenty servers below offer HTTP. Twelve are stdio only. A stdio transcript server reads the caption path from your own IP address; a hosted one sees every URL you send it.
Every public YouTube MCP server, verified
The twenty rows below are the most-starred repositories returned by a GitHub search for youtube mcp on 19 September 2026, filtered to projects that expose an MCP server. One hosted-only server is included because it publishes its identity in a public registry. Stars and commit dates were read from the GitHub API the same day, and last commit means the newest commit on the default branch.
| Server | Repository | What it exposes | Transport | API key | Last commit | Stars |
|---|---|---|---|---|---|---|
| yutu | eat-pray-ai/yutu | Channel management for the account you sign in with: uploads, playlists, comments, caption download and insert, channel branding, analytics | stdio and HTTP | Yes, Google OAuth client secret and token | 2026-09-14 | 637 |
| mcp-server-youtube-transcript | kimtaeyoon83/mcp-server-youtube-transcript | get_transcript, plus an optional analyze_video that sends a direct video URL to TwelveLabs | stdio | No. A TwelveLabs key is needed only for analyze_video | 2026-07-21 | 595 |
| youtube-mcp-server | ZubeidHendricks/youtube-mcp-server | 10 tools: videos_getVideo, videos_searchVideos, transcripts_getTranscript, channel lookup and creator search, playlists | stdio | Yes, Data API key. Up to three keys rotate when one exhausts quota | 2026-08-08 | 574 |
| mcp-youtube | anaisbetts/mcp-youtube | One tool, download_youtube_url, which returns subtitles through yt-dlp | stdio | No, but yt-dlp has to be installed | 2026-08-16 | 546 |
| mcp-youtube-transcript | jkawamoto/mcp-youtube-transcript | 4 tools: get_transcript, get_timed_transcript with a next_cursor, get_video_info, get_available_languages | stdio | No | 2026-09-17 | 481 |
| mcptube | 0xchamin/mcptube | 25 or more tools over a local knowledge base: add_video, wiki_search, wiki_ask, get_frame, classify_video | stdio and Streamable HTTP on 127.0.0.1:9093 | No. LLM keys are needed only for the CLI agent mode | 2026-04-13 | 158 |
| fetch-mcp | egoist/fetch-mcp | Two tools: fetch_url for pages, fetch_youtube_transcript for captions | stdio, SSE and Streamable HTTP | No | 2025-04-04 | 156 |
| ytt-mcp | cottongeeks/ytt-mcp | One tool, get_youtube_transcript | stdio | No | 2025-10-15 | 74 |
| youtube-connector-mcp | ShellyDeng08/youtube-connector-mcp | 7 tools: youtube_search, youtube_get_video, youtube_get_channel, youtube_get_transcript, youtube_get_comments, playlist reads | stdio | Yes, Data API key | 2026-03-17 | 71 |
| mcp-video-analyzer | guimatheus92/mcp-video-analyzer | 8 tools: transcript, metadata, key frames, OCR text, moment analysis. Reads YouTube, Instagram, TikTok, Loom, X, Vimeo and local files | stdio | No. An OpenAI key is needed only for the Whisper API transcription path | 2026-09-13 | 67 |
| mcp | supadata-ai/mcp | 10 tools: supadata_transcript, supadata_metadata, supadata_extract, supadata_scrape, supadata_map, supadata_crawl, plus status checks | stdio and hosted Streamable HTTP | Yes, Supadata key | 2026-09-15 | 63 |
| mcp-youtube-intelligence | JangHyuckYun/mcp-youtube-intelligence | 9 tools: get_video, get_transcript, get_comments with sentiment, monitor_channel, search_transcripts, topic and entity extraction | stdio | No. LLM provider keys are optional | 2026-09-08 | 52 |
| mcp-youtube | adhikasp/mcp-youtube | One tool: transcripts with timestamps | stdio | No | 2025-12-02 | 50 |
| youtube-mcp-server | pauling-ai/youtube-mcp-server | 40 tools across the Data API, Analytics API and Reporting API: uploads, thumbnails, comments, transcripts, audience, revenue, retention | stdio | Yes, Google OAuth plus a Data API key | 2026-09-04 | 21 |
| transcriptor-mcp | samson-art/transcriptor-mcp | 8 tools: transcript, raw subtitles as SRT or VTT, chapters, frames, playlist transcripts, search. Accepts links from 11 platforms | stdio and Streamable HTTP | No. Whisper is optional for videos with no captions | 2026-09-17 | 21 |
| youtube-mcp-server | coyaSONG/youtube-mcp-server | research-video and research-videos return timestamp-linked quotable evidence, plus transcript search, segments, key moments, comments, stats | stdio and Streamable HTTP at /mcp | No for transcripts. A Data API key enables search, comments and stats | 2026-07-17 | 20 |
| claude-code-youtube-mcp | wynandw87/claude-code-youtube-mcp | 15 tools: transcript, transcript search, chapters, most-replayed, SponsorBlock clean transcript, comments, engagement, trending | stdio | Yes for 10 of the 15 tools, Data API key | 2026-03-28 | 12 |
| youtube-research-mcp | lee-s-dev/youtube-research-mcp | 9 tools: get_transcript, analyze_videos, analyze_channel, comment collection, search, quota readout | stdio | No for transcripts. A Data API key enables comments and search | 2026-05-19 | 9 |
| youtube-mcp | HasData/youtube-mcp | 4 hosted tools: search results, video data, channel data, transcript, all served from one endpoint | Streamable HTTP, with an npm and PyPI stdio launcher | Yes, HasData key. Each call costs 10 credits | 2026-09-14 | 6 |
| script-audit | prepublish.ai/mcp | 6 tools that take script text rather than a video: audit_script, get_audit, audit_hook, check_authenticity, policy_preflight, script_runtime | Streamable HTTP and an npx prepublish-mcp bridge | No. Anonymous audits need an email address for the free result | Private source | Not applicable |
Two rows carry a qualification. yutu's caption tools are the Data API caption resource, which operates on videos the signed-in account owns, so it is not a public transcript fetcher. The script-audit row has no transcript tool, so it does not substitute for any other row.
Tool counts are each README's own account of what a server exposes. I installed none of these servers and called none of their tools, so a count is a documentation claim rather than a runtime measurement. The exception is the script-audit row, whose six tool names came from a tools/list call to its live endpoint on 19 September 2026 and match prepublish-fe/lib/mcp/tools.ts.
Which YouTube MCP servers need an API key
Eleven of the twenty require no credential. Six require a key or an OAuth grant before any tool runs: yutu, ZubeidHendricks's youtube-mcp-server, youtube-connector-mcp, supadata-ai/mcp, pauling-ai's youtube-mcp-server and HasData's youtube-mcp. Three more, coyaSONG's youtube-mcp-server, claude-code-youtube-mcp and youtube-research-mcp, work without a key for transcripts and need one for search, comments or statistics.
The credential carries Google's quota. A Data API key is tied to a Cloud project, and Google publishes the default allocation: 100 search.list calls, 100 videos.insert calls, and 10,000 units per day combined for all other endpoints. One search costs 100 units, so the search cap binds first. That is why two servers here ship multi-key rotation.
Transcripts sit outside that system. Measured on 18 September 2026: fetching captionTracks[].baseUrl returned HTTP 200 with a body of length 0, and so did the same URL fetched from the page's own origin with cookies. The player's own request carries a proof-of-origin token, and refetching it with &fmt=json3 returned 46,010 bytes on a 19-minute video. Any server advertising keyless transcripts reads the player's captured request, calls a downloader such as yt-dlp, or pays a vendor to do one of those. The transcript path breaks whenever YouTube changes that token, which is why the last commit date matters more here than the star count.
Where the category clusters
Six capabilities separate these servers. Five of the six are crowded.
| Capability | Servers with it | Which ones |
|---|---|---|
| Transcript fetch | 18 of 20 | Every row except yutu, whose caption tools serve the account's own videos, and the script-audit row, which has none |
| Video metadata | 14 of 20 | yutu, ZubeidHendricks, jkawamoto, mcptube, ShellyDeng08, guimatheus92, supadata-ai, JangHyuckYun, pauling-ai, samson-art, coyaSONG, wynandw87, lee-s-dev, HasData |
| Channel video listing | 9 of 20 | yutu, ZubeidHendricks, ShellyDeng08, JangHyuckYun, pauling-ai, coyaSONG, wynandw87, lee-s-dev, HasData |
| Comments | 8 of 20 | yutu, ShellyDeng08, guimatheus92, JangHyuckYun, pauling-ai, coyaSONG, wynandw87, lee-s-dev |
| Script analysis before recording | 1 of 20 | script-audit |
| Published-policy check on a script | 1 of 20 | script-audit |
Read the transcript row against the script row. Eighteen projects compete on one job, and the differences between them are mechanical: pagination, timestamps, language selection, frames, caching, transport. They share an input. Every one needs a video that already exists, which makes the category a review tool for something published.
The job nothing in the category does
GitHub repository search is a rough instrument, but it shows the shape of the supply. On 19 September 2026, youtube transcript mcp returned 415 repositories, youtube script analysis mcp returned 1, and youtube policy check mcp returned 0. The single script-analysis hit, Mohit-5899/mindframe, lists its MCP server as an unchecked phase in its own README, so it is a plan rather than a server. The search matches names and descriptions, so it misses servers that describe themselves differently and includes projects that are not servers. It is a screen, not a census.
The gap it points at is the draft. A script exists before a video does. The checks worth running then are not transcript checks: hook strength, whether the script delivers the title's promise, where attention is most likely to leak, whether the script touches an advertiser-friendly policy category, and how long the narration will run.
The six tools that take script text are audit_script, audit_hook, check_authenticity, policy_preflight, script_runtime and get_audit. The server states its own limit inside every result. It is a text-only check of an unrecorded script that maps relative attention risk inside the draft. It does not measure or predict published retention, and it cannot account for delivery, editing, thumbnail, topic or distribution.
Nothing in the table covers the other direction either. No server here verifies the language of the transcript it returns. None of the eighteen READMEs I read mentions tlang, a proof-of-origin token, or TLS impersonation, and those three decide whether a pull returns the right language at all.
How to choose a YouTube MCP server
Match the server to the job, then check the last commit date.
- •A transcript in the chat, no setup. jkawamoto/mcp-youtube-transcript, kimtaeyoon83/mcp-server-youtube-transcript, cottongeeks/ytt-mcp or adhikasp/mcp-youtube. All keyless.
- •Long videos that exceed the context window. jkawamoto's
get_timed_transcriptpaginates with a cursor, which the single-tool servers cannot do. - •Frames and on-screen text as well as speech. guimatheus92/mcp-video-analyzer or samson-art/transcriptor-mcp. Both extract frames and OCR text from platforms other than YouTube.
- •A local library you can search later. 0xchamin/mcptube builds an FTS5 index over ingested videos instead of re-reading each one.
- •Comments and channel data. ShellyDeng08/youtube-connector-mcp, lee-s-dev/youtube-research-mcp or coyaSONG/youtube-mcp-server. All three need a Data API key.
- •Your own channel's analytics, uploads and comment replies. pauling-ai/youtube-mcp-server or eat-pray-ai/yutu. Both need OAuth, the right credential for anything that writes.
- •A hosted server with no local process. HasData/youtube-mcp or supadata-ai/mcp. Both charge per call and hold your key server-side.
- •A script you have not recorded yet. The script-audit row. The hook check scores an opening paragraph, and the full audit takes a finished draft.
What to check before installing any MCP server
- •Where the process runs. A stdio server runs on your machine as your user, with your file permissions. An HTTP server receives whatever you send it. Read a stdio server's source first, and read the vendor's own current privacy policy before sending a hosted server a private video URL.
- •What the tool list actually contains. The README is marketing. The
tools/listresponse is the surface your model can call. MCP tool annotations include a destructive hint, worth checking on any server that can write to your channel. - •What the credential can do. A Data API key reads public data. An OAuth token on a channel-management server can upload, edit and delete. Scope a key to the YouTube Data API in the Cloud console, and treat a stored refresh token as a write credential.
- •The maintenance signal. yt-dlp's fifteen most recent PyPI releases had a median gap of 1.5 days (PyPI release index, read 18 September 2026), and a caption path can break between releases. A server whose last commit is a year old is not tracking that. Three servers in the table were last committed to in 2025.
- •What it stores, and how it reports failure. A server that caches transcripts has a retention question as well as a privacy one, and the answer should be a sentence in the documentation. The useful failure signal is a server that reports a caption pull of zero characters instead of returning an empty transcript as success.
Limits of this survey
I verified the repositories, not the runtime behaviour. Star counts and commit dates are single-day readings from 19 September 2026 and will move. Tool counts come from each README, so a server may expose more than it documents or fail to deliver what it documents. Two servers looked unmaintained, and I kept them because the survey is about what is public rather than what is good.
The capability matrix records what a server advertises, not what it returns correctly. On 19 September 2026, one video carried 31 caption tracks, and the player listed them alphabetically rather than by spoken language. A viewer whose interface language was Turkish was served English >> Turkish. That request keeps lang=en and adds tlang=tr, so the body is Turkish while the language field says English. I did not test each server for that behaviour, so treat every transcript language field as unverified until you read the text.
FAQ
What is a YouTube MCP server?
A YouTube MCP server exposes YouTube tools to an AI client over the Model Context Protocol. The client lists the tools and calls them with a video ID or a channel handle. Most servers here wrap one of three data paths: the YouTube Data API, a downloader such as yt-dlp, or a vendor scraping API.
Do YouTube MCP servers need an API key?
Six of the 20 servers here need a key or an OAuth grant before any tool runs, three need one only for search, comments or analytics, and eleven need no credential. The split follows the data path. Transcripts come from the player or a downloader. Metadata, comments and uploads come from the YouTube Data API, which needs a Cloud project and a key.
Can a YouTube MCP server fetch a transcript without an API key?
Yes, and eighteen of the 20 servers in the table do that. Transcript fetching does not use the YouTube Data API, whose captions endpoints serve videos the caller owns. Public transcripts come from the player's caption tracks or from a downloader. That path is fragile: YouTube serves caption bodies only to requests carrying a proof-of-origin token minted inside the player.
Is there an official YouTube MCP server?
No. Google publishes a list of its official MCP servers at github.com/google/mcp, covering BigQuery, Cloud Run, Google Maps and Workspace, and YouTube is not on it. Every YouTube MCP server in the table is a community or vendor project. The ones returning metadata and comments wrap the official YouTube Data API v3.
Can an MCP server read YouTube comments?
Eight of the 20 servers return comments. Five need a Data API key or an OAuth grant for that tool, which brings the quota with it, 10,000 units per day combined for all endpoints other than search.list and videos.insert. Two read comments through a downloader with no Google credential, mcp-video-analyzer and mcp-youtube-intelligence. yutu uses OAuth because it manages the account's own channel.
Can a YouTube MCP server review a script before I record it?
One of the 20 does. The script-audit server listed last in the table has six tools that take script text rather than a video ID. GitHub repository search on 19 September 2026 returned one repository for youtube script analysis mcp, and that project lists its MCP server as an unfinished phase. The other nineteen servers need a video that already exists.
Which YouTube MCP server should I use?
Match the server to the job rather than the star count. For a transcript with no setup, mcp-youtube-transcript returns timestamps and paginates long videos. For frames and on-screen text as well as speech, mcp-video-analyzer or transcriptor-mcp. For a searchable local library, mcptube. For comments and channel data, youtube-connector-mcp. For your own channel's analytics and uploads, pauling-ai's youtube-mcp-server or yutu.
Try it on your own script
Paste your draft below. You get your hook, structure, and pacing scores, a script-level attention-risk map, and the single biggest issue quoted from your own lines. Free, no login.
Free · No login · See a sample audit first if you prefer.
Frequently asked questions
What is a YouTube MCP server?
A YouTube MCP server exposes YouTube tools to an AI client over the Model Context Protocol. The client lists the tools and calls them with a video ID or a channel handle. Most servers here wrap one of three data paths: the YouTube Data API, a downloader such as yt-dlp, or a vendor scraping API.
Do YouTube MCP servers need an API key?
Six of the 20 servers here need a key or an OAuth grant before any tool runs, three need one only for search, comments or analytics, and eleven need no credential. The split follows the data path. Transcripts come from the player or a downloader. Metadata, comments and uploads come from the YouTube Data API, which needs a Cloud project and a key.
Can a YouTube MCP server fetch a transcript without an API key?
Yes, and eighteen of the 20 servers in the table do that. Transcript fetching does not use the YouTube Data API, whose captions endpoints serve videos the caller owns. Public transcripts come from the player's caption tracks or from a downloader. That path is the fragile one, because YouTube serves caption bodies only to requests carrying a proof-of-origin token minted inside the player, and a direct fetch of the caption URL returns an empty body.
Is there an official YouTube MCP server?
No. Google publishes a list of its official MCP servers at github.com/google/mcp, covering BigQuery, Cloud Run, Google Maps and Workspace, and YouTube is not on it. Every YouTube MCP server in the table is a community or vendor project. The ones returning metadata and comments wrap the official YouTube Data API v3.
Can an MCP server read YouTube comments?
Eight of the 20 servers return comments. Five need a Data API key or an OAuth grant for that tool, which brings the quota with it, 10,000 units per day combined for all endpoints other than search.list and videos.insert. Two read comments through a downloader with no Google credential, mcp-video-analyzer and mcp-youtube-intelligence. yutu uses OAuth because it manages the account's own channel.
Can a YouTube MCP server review a script before I record it?
One of the 20 does. The script-audit server listed last in the table has six tools that take script text rather than a video ID. GitHub repository search on 19 September 2026 returned one repository for "youtube script analysis mcp", and that project's README lists its MCP server as an unfinished phase. The other nineteen servers in the table need a video that already exists.
Which YouTube MCP server should I use?
Match the server to the job rather than the star count. For a transcript with no setup, mcp-youtube-transcript returns timestamps and paginates long videos. For frames and on-screen text as well as speech, mcp-video-analyzer or transcriptor-mcp. For a searchable local library, mcptube. For comments and channel data, youtube-connector-mcp. For your own channel's analytics and uploads, pauling-ai's youtube-mcp-server or yutu.
Related Articles
YouTube Transcript Extensions Compared: 15 Listings, Verified
The YouTube transcript extension category splits in two. Summarisers send the caption text to a server and return a digest, which needs an account and a provider that holds your text. Extractors read the caption track YouTube already served to your player and hand you the text.
Local-First YouTube Transcript Extension: What It Can See
An extension that handles YouTube transcripts locally reads the video page you have open, refetches the caption track from YouTube with your own session, and computes counts in your browser. Whether a given extension actually does that is decided by its manifest and its code, and the install dialog shows you only part of the manifest.
What Is Inside a Generated Agent Skill File: A Real One
A generated agent skill file is a folder holding SKILL.md and a references directory, and the run torn down here produced 8,827 bytes of SKILL.md from 12 public uploads and 11 transcripts. The brief is worth reading, but two of its sections describe things the writer never received.
Free tools to put this into practice
Want to analyze your own scripts?
Start Script Analysis