{"name":"io.github.mrsknetwork/ytmcp","slug":"mrsknetwork-ytmcp","title":"YouTube MCP","description":"Interact with YouTube data via the official Data API v3","url":"https://mcp.market/server/mrsknetwork-ytmcp","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":30,"stars":6,"forks":1,"downloads_week":48,"last_push_at":"2026-07-23T10:47:14.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/mrsknetwork/ytmcp.git","website":"https://github.com/mrsknetwork/ytmcp","version":"1.0.14","remotes":[],"packages":[{"registryType":"npm","identifier":"@mrsknetwork/ytmcp","version":"1.0.14","transport":{"type":"stdio"}}],"tools":[{"name":"get_channel_metadata","description":"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').","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_video_metadata","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_video_transcript","description":"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","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_channel_activities","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_channel_members","description":"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).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_channel_sections","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_comment_replies","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_membership_levels","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_playlist_items","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_playlists","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_subscriptions","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_supported_languages","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_supported_regions","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_trending_videos","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_video_captions","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_video_categories","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_video_comments","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"revoke_oauth_token","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_content","description":"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.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-25T12:09:23.582Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T12:09:23.530Z","components":{"code":{"score":25,"max":25,"notes":["11 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 64 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@mrsknetwork/ytmcp","version":"1.0.14","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":6,"publishedAt":"2026-07-23T10:47:32.296Z","repositoryUrl":"git+https://github.com/mrsknetwork/ytmcp.git","weeklyDownloads":48}],"repo":{"found":true,"owner":"mrsknetwork","repo":"ytmcp","archived":false,"pushedAt":"2026-07-23T10:47:14Z","stars":6,"forks":1,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/101032296?v=4","ownerCreatedAt":"2022-03-06T04:41:26Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/101032296?v=4&s=128","source":"github"},"presence":{"stars":6,"forks":1,"downloadsWeek":48,"license":"MIT","lastPushAt":"2026-07-23T10:47:14.000Z","score":30}}}},"grade_history":[],"reviews":[]}