YouTube MCP server
io.github.mrsknetwork/ytmcp·v1.0.14·6 starsInteract with YouTube data via the official Data API v3
6 stars48 downloads/wk
Reviews
Write oneNobody has reviewed YouTube MCP yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
YouTube MCP tools (19)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
get_channel_metadataFetch channel profile, statistics, and content details by channel ID or @handle. Returns snippet (title, description, country, thumbnails), statistics (subscriberCount, videoCount, viewCount), and contentDetails (uploads playlist ID - use with list_playlist_items to browse all channel videos). Accepts either channel_ids (comma-separated) or handle (e.g., '@MrBeast').
get_video_metadataFetch full metadata for one or more YouTube videos by ID, or retrieve the most popular videos chart. Returns snippet (title, description, channelId, tags, publishedAt), contentDetails (duration in ISO 8601, definition, caption), and statistics (viewCount, likeCount, commentCount). Provide comma-separated video_ids for lookup, or chart_type='mostPopular' for trending videos.
get_video_transcriptDownload the full spoken transcript of a YouTube video as clean plain text using yt-dlp - no API credentials required. Tries manual English captions first (or specified language_code), then auto-generated, then falls back to the first available language. Returns concatenated plain text plus metadata about which language and caption type was used. Ideal for content research without consuming YouTub
list_channel_activitiesGet a chronological feed of a channel's recent actions such as uploads, playlist additions, and recommendations. Returns snippet (type, publishedAt, title) and contentDetails (upload.videoId, playlist.playlistId). Useful for tracking what a channel has posted recently. Use page_token to paginate.
list_channel_membersList current paying members of the authenticated user's channel. Requires OAuth with the YouTube channel membership scope and an active memberships program on the channel. Returns snippet (memberDetails.channelId, creatorChannelId, membershipsDetails.highestActiveLevel.displayName).
list_channel_sectionsGet the shelf and section layout of a YouTube channel page (e.g., 'Featured Videos', 'Popular Uploads', 'Single Playlist'). Returns snippet (title, type, style, position) and contentDetails (playlists[], channels[]). Useful for understanding how a channel organizes and surfaces its content.
list_comment_repliesFetch replies to a specific comment thread using parent_comment_id, or fetch individual comments by comma-separated comment_ids. Returns snippet (textDisplay, authorDisplayName, likeCount, publishedAt, parentId). Use page_token to paginate through large reply threads.
list_membership_levelsList the membership tier pricing levels configured for the authenticated user's channel. Requires OAuth. Returns items[].snippet.levelDetails.displayName for each tier (e.g., 'Member', 'Super Fan'). Use alongside list_channel_members to understand which tier each member belongs to.
list_playlist_itemsList video entries inside a YouTube playlist in order. Returns snippet (title, description, position, videoOwnerChannelTitle, thumbnails) and contentDetails (videoId). Use the videoId values with get_video_metadata or get_video_transcript for further detail. Use page_token to walk through all items.
list_playlistsList playlists belonging to a channel or fetch specific playlists by ID. Returns snippet (title, description, channelId, thumbnails) and contentDetails (itemCount). Use list_playlist_items with the returned playlist id to browse all videos inside a playlist. Use page_token to paginate.
list_subscriptionsList a channel's public subscriptions by channel_id (requires API Key), or list your own subscriptions with mine=true (requires OAuth). Returns snippet (title, description, resourceId.channelId) and contentDetails (totalItemCount, newItemCount). Use for_channel_id to check if a channel is subscribed to specific channels. Use page_token to paginate.
list_supported_languagesList all languages supported by YouTube (e.g., for caption and UI localization). Returns items[].snippet.hl (language code) and items[].snippet.name (human-readable name). Optionally pass language_code to get names localized in that language.
list_supported_regionsList all geographic regions supported by YouTube content targeting. Returns items[].snippet.gl (region code, e.g., 'US') and items[].snippet.name. Use region codes with list_video_categories or search_content to geo-filter results.
list_trending_videosFetch the currently most popular videos on YouTube for a given region and optional category. Returns snippet (title, channelTitle, publishedAt), contentDetails (duration), and statistics (viewCount, likeCount, commentCount) for each video. Use list_video_categories to discover valid category_id values for your region. Use page_token to paginate.
list_video_captionsList available caption track metadata for a video (requires API Key or OAuth). Returns items[].snippet with language (e.g., 'en'), name, trackKind ('standard', 'asr' for auto-generated, 'forced'), and lastUpdated. Use this to discover what caption languages exist for a video; use get_video_transcript to download the actual text.
list_video_categoriesList standard YouTube video category names and IDs for a given region (e.g., 'US', 'IN'). Returns items[].id and items[].snippet.title. Use the returned category IDs with search_content or list_trending_videos to filter content by category.
list_video_commentsFetch top-level comment threads for a video or all comments on a channel. Returns snippet.topLevelComment (authorDisplayName, textDisplay, likeCount, publishedAt) and replies.comments[] for threaded replies. Use search_terms to filter comments containing a specific phrase. Use page_token to paginate.
revoke_oauth_tokenRevoke the stored OAuth token and sign the user out of the YouTube MCP server. Calls Google's token revocation endpoint, deletes the local token file (~/.ytmcp_tokens.json), and clears the in-process auth cache. After revoking, any tool that requires OAuth will prompt the user to re-authenticate. Requires OAuth.
search_contentSearch YouTube for videos, channels, or playlists. Returns items[].id (videoId/channelId/playlistId) and items[].snippet (title, description, thumbnails, channelTitle, publishedAt). Use content_type to filter by resource type. Use page_token from a previous response to paginate additional pages.
Public scan report
scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it
- Code scan11 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 64 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How YouTube MCP compares
Against every graded Media MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 88/100
- higher than 78% of 1,337 Media servers
- Tools
- 19
- the typical Media server has 7
- Tools that change things
- 0%
- typical: 4%. Fewer write tools means less an agent can break
- GitHub stars
- 6
- more than 83% of 715 Media servers
- Downloads a week
- 48
- more than 34% of 365 Media servers with a package
What its tools let an agent do: 18 read · 1 delete
Install YouTube MCP in Claude Code, Cursor or VS Code
Runs npx -y @mrsknetwork/ytmcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add ytmcp -- npx -y @mrsknetwork/ytmcp
What the publisher says
From the YouTube MCP repository's README, as published. We do not edit it. Read it on GitHub
YouTube MCP
Connect AI assistants to YouTube: search, transcripts, metadata, and more.
What can it do?
Once connected, your AI can:
- Extract clean, word-for-word video transcripts. No credentials required.
- Search YouTube by keyword, date range, duration, quality, and region.
- Fetch trending videos for any country and category.
- Retrieve video stats, metadata, comments, captions, and channel details.
- Look up channels by @handle (e.g. @MrBeast).
- Access your own subscriptions, members, and membership tiers via OAuth.
Getting Started
The server supports three access tiers. Pick the one that fits your use case.
Guest Mode (No Setup)
Works out of the box. The getvideotranscript tool uses yt-dlp to extract transcripts without any API credentials.
{
"mcpServers": {
"youtube-mcp": {
"command": "npx",
"args": ["-y", "@mrsknetwork/ytmcp@latest"]
}
}
}API Key (Recommended)
Unlocks all public data tools. Best for search, metadata, comments, trending videos, and transcripts.
1. Get a Google API Key
- Open the Google Cloud Console.
- Enable YouTube Data API v3 for your project.
- Go to Credentials and create an API Key.
2. Add to your MCP client config or .env file
Pass GOOGLEAPIKEY via env in your MCP client config, or place GOOGLEAPIKEY=YOUR_KEY inside a .env file in the project directory.
{
"mcpServers": {
"youtube-mcp": {
"command": "npx",
"args": ["-y", "@mrsknetwork/ytmcp@latest"],
"env": {
"GOOGLE_API_KEY": "YOUR_GOOGLE_API_KEY"
}
}
}
}OAuth 2.0
Required for private subscriptions, memberships, and account activity.
1. Create an OAuth 2.0 Client
- Open the Google Cloud Console.
- Enable YouTube Data API v3 for your project.
- Go to Credentials > Create Credentials > OAuth 2.0 Client ID.
- Set Application type to Web application.
- Add this exact Redirect URI: http://localhost:31415/oauth2callback.
- Go to OAuth Consent Screen > Test Users and add your Gmail address.
2. Add to your MCP client config
Credentials are passed securely via environment variables in the MCP config. They are never stored in files.
{
"mcpServers": {
"youtube-mcp": {
"command": "npx",
"args": ["-y", "@mrsknetwork/ytmcp@latest"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}3. First-time login
On your first tool call, the AI will share a login link. Click it, authorize the app in your browser, then tell the AI you are done. Your session is saved. You will not need to log in again unless you revoke access.
4. Signing out
Ask your AI to call revokeoauthtoken to sign out and delete your stored credentials at any time.
Available Tools
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
YouTube MCP: common questions
- Is YouTube MCP server safe?
- Yes, by our scan: it is graded A (88/100). Read the YouTube MCP safety report
- How do I install YouTube MCP?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does YouTube MCP need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is YouTube MCP maintained?
- The last commit was 104 days ago (2026-07-23). The latest release is v1.0.14.
- What can I use instead of YouTube MCP?
- Servers from other publishers that do the same job: Openshorts MCP server, Youtube Transcript MCP server and YouTube Data MCP server.
- How does YouTube MCP compare with other Media MCP servers?
- safety score 88/100 (higher than 78% of 1,337 Media servers); tools 19 (the typical Media server has 7); tools that change things 0% (typical: 4%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to YouTube MCP
Same job from other publishers: the closest match first, then the best rated.
OpenshortsTurn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.not reviewedEstablishedA- Youtube TranscriptThis is an MCP server that allows you to directly download transcripts of YouTube videos.not reviewedEstablishedB
- YouTube DataYouTube MCP server for token-optimized, structured data using the YouTube Data API v3.not reviewedGrowingB
- Youtube TranscriptAn MCP server retrieving transcripts of YouTube videosnot reviewedGrowingA
TokPortalManaged TikTok/Instagram/YouTube accounts + video posting at scale, operated by human managers.not reviewedGrowingA