MCP.Market

YouTube MCP server

by mrsknetwork·io.github.mrsknetwork/ytmcp·v1.0.14·6 stars

Interact with YouTube data via the official Data API v3

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
Growing

6 stars48 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • get_channel_metadata

    Fetch 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_metadata

    Fetch 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_transcript

    Download 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_activities

    Get 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_members

    List 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_sections

    Get 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_replies

    Fetch 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_levels

    List 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_items

    List 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_playlists

    List 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_subscriptions

    List 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_languages

    List 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_regions

    List 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_videos

    Fetch 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_captions

    List 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_categories

    List 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_comments

    Fetch 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_token

    Revoke 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_content

    Search 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

no findings
  • 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
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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

  1. Open the Google Cloud Console.
  2. Enable YouTube Data API v3 for your project.
  3. 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

  1. Open the Google Cloud Console.
  2. Enable YouTube Data API v3 for your project.
  3. Go to Credentials > Create Credentials > OAuth 2.0 Client ID.
  4. Set Application type to Web application.
  5. Add this exact Redirect URI: http://localhost:31415/oauth2callback.
  6. 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.

  • Openshorts
    Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.
    A
  • Youtube Transcript
    This is an MCP server that allows you to directly download transcripts of YouTube videos.
    B
  • YouTube Data
    YouTube MCP server for token-optimized, structured data using the YouTube Data API v3.
    B
  • Youtube Transcript
    An MCP server retrieving transcripts of YouTube videos
    A
  • TokPortal
    Managed TikTok/Instagram/YouTube accounts + video posting at scale, operated by human managers.
    A