mrsknetwork avatar

YouTube MCP

mrsknetwork/ytmcp

A straightforward bridge to YouTube's Data API v3 that covers the full spectrum from zero-config transcript extraction to OAuth-gated membership data. The transcript tool uses yt-dlp and works immediately with no credentials. Add an API key and you unlock search with filtering by date, duration, and region, plus metadata, comments, trending videos, and caption tracks. OAuth adds private subscriptions and channel membership rosters. The tool list is comprehensive: 20+ operations including handle-based channel lookup, playlist enumeration, activity feeds, and category discovery across regions. If you're building workflows that need to pull YouTube data into Claude without writing API client code, this does the plumbing.

tools
16
transport
STDIO
last updated
Jul 23, 2026

Tools

16 tools

Public tool metadata for what this MCP can expose to an agent.

YOUTUBE_GET_CHANNEL_ACTIVITIESGets recent activities from a YouTube channel including video uploads, playlist additions, likes, and other channel events.6 params

Gets recent activities from a YouTube channel including video uploads, playlist additions, likes, and other channel events.

Parameters* required
channelIdstring
The YouTube channel ID to retrieve activities for. Channel IDs typically start with 'UC'.
maxResultsinteger
Maximum number of activities to return.default: 25
pageTokenstring
Pagination token from a previous response to get the next page of results.
partstring
Comma-separated list of activity resource properties to include (e.g., 'snippet', 'contentDetails', 'id').default: snippet,contentDetails
publishedAfterstring
Return activities published after this date-time (RFC 3339 format: YYYY-MM-DDTHH:MM:SSZ).
publishedBeforestring
Return activities published before this date-time (RFC 3339 format: YYYY-MM-DDTHH:MM:SSZ).
YOUTUBE_GET_CHANNEL_ID_BY_HANDLERetrieves the YouTube Channel ID for a specific YouTube channel handle.1 params

Retrieves the YouTube Channel ID for a specific YouTube channel handle.

Parameters* required
channel_handlestring
The YouTube channel handle (e.g., @Google) for which to retrieve the corresponding channel ID. This handle must start with an '@' symbol.
YOUTUBE_GET_CHANNEL_STATISTICSGets detailed statistics for YouTube channels including subscriber counts, view counts, and video counts.2 params

Gets detailed statistics for YouTube channels including subscriber counts, view counts, and video counts.

Parameters* required
idstring
Comma-separated list of YouTube channel IDs. Channel IDs typically start with 'UC'. This is a required field and must be non-empty
partstring
Comma-separated list of channel resource properties to include. Use 'statistics' for subscriber count.default: statistics
YOUTUBE_GET_VIDEO_DETAILS_BATCHRetrieves multiple YouTube video resource parts in a single batch call. Use when you need cohort-level metrics for many videos to reduce quota usage and latency.3 params

Retrieves multiple YouTube video resource parts in a single batch call. Use when you need cohort-level metrics for many videos to reduce quota usage and latency.

Parameters* required
hlstring
Language for localized metadata (snippet.localized); IETF language tag, e.g., 'en'.
idarray
List of YouTube video IDs to retrieve (comma-separated in request).
partsarray
Comma-separated list of video resource properties to include. Valid parts can be one or more of: snippet, contentDetails, statistics, status, player, topicDetails, recordingDetails, fileDetails, pr...
YOUTUBE_LIST_CAPTION_TRACKRetrieves a list of caption tracks for a YouTube video, returning an empty list if no captions exist or failing if the video ID is invalid or not found.2 params

Retrieves a list of caption tracks for a YouTube video, returning an empty list if no captions exist or failing if the video ID is invalid or not found.

Parameters* required
partstring
Specifies a comma-separated list of one or more caption resource parts that the API response will include. Valid parts are 'id' and 'snippet'.default: snippet
videoIdstring
The YouTube video ID for which the API should return caption tracks.
YOUTUBE_LIST_CHANNEL_VIDEOSLists videos from a specified YouTube channel, ensuring results are of `type: 'video'`.4 params

Lists videos from a specified YouTube channel, ensuring results are of `type: 'video'`.

Parameters* required
channelIdstring
The unique ID of the YouTube channel for which videos are to be retrieved.
maxResultsinteger
The maximum number of videos to return per page.default: 5
pageTokenstring
Token for pagination; use `nextPageToken` from a previous response for the next page, or `prevPageToken` for the previous page.
partstring
Specifies `search` resource properties to include; it must be `snippet` for this action. The `snippet` includes basic video details like ID, title, description, and thumbnails.default: snippet
YOUTUBE_LIST_PLAYLIST_ITEMSTool to list videos in a playlist, with pagination support. Use when walking through a channel's uploads playlist to enumerate all videos.7 params

Tool to list videos in a playlist, with pagination support. Use when walking through a channel's uploads playlist to enumerate all videos.

Parameters* required
fieldsstring
Selector specifying which fields to include in a partial response.
maxResultsinteger
The maximum number of items to return per page. Must be between 0 and 50.default: 50
onBehalfOfContentOwnerstring
Note: For YouTube content partners. Authorize using a properly scoped account.
pageTokenstring
The token for the page of results to retrieve. Obtained from a previous call's nextPageToken.
partstring
Comma-separated list of playlistItem resource parts to include in the response. Valid values: 'snippet', 'contentDetails', 'id', 'status'.default: snippet,contentDetails
playlistIdstring
The ID of the playlist for which to retrieve items. Typically a channel's uploads playlist ID.
videoIdstring
Filter results to only those containing the specified video ID.
YOUTUBE_LIST_USER_PLAYLISTSRetrieves playlists owned by the authenticated user, implicitly using mine=True.3 params

Retrieves playlists owned by the authenticated user, implicitly using mine=True.

Parameters* required
maxResultsinteger
Maximum number of playlists to return.default: 5
pageTokenstring
Token for pagination to retrieve a specific page of results.
partstring
Specifies a comma-separated list of one or more playlist resource properties to include in the response. Common values are 'snippet', 'id', and 'contentDetails'.default: snippet
YOUTUBE_LIST_USER_SUBSCRIPTIONSRetrieves the authenticated user's YouTube channel subscriptions, allowing specification of response parts and pagination.3 params

Retrieves the authenticated user's YouTube channel subscriptions, allowing specification of response parts and pagination.

Parameters* required
maxResultsinteger
Maximum number of subscription items to return per page.default: 5
pageTokenstring
Token for a specific page of results, obtained from a previous response. Omit for the first page.
partstring
Specifies the comma-separated subscription resource parts to include. Valid parts are `id`, `snippet`, `contentDetails`, and `subscriberSnippet`.default: snippet,contentDetails
YOUTUBE_LOAD_CAPTIONSDownloads a specific YouTube caption track, which must be owned by the authenticated user, and returns its content as text. Note: This action requires you to own the video (YouTube Data API v3 restriction). Non-owned videos will return 403 Forbidden errors, including many auto...2 params

Downloads a specific YouTube caption track, which must be owned by the authenticated user, and returns its content as text. Note: This action requires you to own the video (YouTube Data API v3 restriction). Non-owned videos will return 403 Forbidden errors, including many auto...

Parameters* required
idstring
Unique YouTube-assigned ID of the caption track to download.
tfmtstring
Desired format for the caption track. Supported formats: 'srt' (SubRip), 'sbv' (SubViewer), 'vtt' (WebVTT).default: srt
YOUTUBE_SEARCH_YOU_TUBESearches YouTube for videos, channels, or playlists using a query term, returning the raw API response.5 params

Searches YouTube for videos, channels, or playlists using a query term, returning the raw API response.

Parameters* required
maxResultsinteger
Maximum number of items to return per page.default: 5
pageTokenstring
Pagination token from a previous response's 'nextPageToken' or 'prevPageToken', used to retrieve a specific page of results.
partstring
Comma-separated list of search resource properties (e.g., 'id', 'snippet') to include in the API response.default: snippet
qstring
Search query term. Supports: - Basic text: 'machine learning' - Exact phrases: '"exact phrase"' - Exclusions: 'python -snake' - Multiple terms: 'AI OR ML' - Channel search: '@channelhandle' or chan...
typestring
Restricts search to 'video', 'channel', or 'playlist'; comma-separate for multiple types (e.g., 'video,channel').default: video
YOUTUBE_SUBSCRIBE_CHANNELSubscribes the authenticated user to a specified YouTube channel, identified by its unique `channelId` which must be valid and existing.1 params

Subscribes the authenticated user to a specified YouTube channel, identified by its unique `channelId` which must be valid and existing.

Parameters* required
channelIdstring
Unique identifier (ID) of the YouTube channel to subscribe to (typically starts with 'UC').
YOUTUBE_UPDATE_THUMBNAILSets the custom thumbnail for a YouTube video using an image from thumbnailUrl; the authenticated user must have permission to edit the video.2 params

Sets the custom thumbnail for a YouTube video using an image from thumbnailUrl; the authenticated user must have permission to edit the video.

Parameters* required
thumbnailUrlstring
Publicly accessible URL of the new thumbnail image. Must be JPG, GIF, or PNG; under 2MB. Recommended: 16:9 aspect ratio, 1280x720 resolution (minimum 640px width).
videoIdstring
Identifier of the YouTube video for which to update the thumbnail.
YOUTUBE_UPDATE_VIDEOUpdates metadata for a YouTube video identified by videoId, which must exist; an empty list for tags removes all existing tags.6 params

Updates metadata for a YouTube video identified by videoId, which must exist; an empty list for tags removes all existing tags.

Parameters* required
categoryIdstring
New YouTube category ID. No change if omitted or `None`.
descriptionstring
New video description. No change if omitted or `None`.
privacyStatusstring
New privacy status ('public', 'private', or 'unlisted'). No change if omitted or `None`.
tagsarray
New tags, replacing all existing. An empty list removes all. No change if omitted or `None`.
titlestring
New video title. No change if omitted or `None`.
videoIdstring
The video's unique YouTube ID, typically found in its URL.
YOUTUBE_UPLOAD_VIDEOUploads a video from a local file path to a YouTube channel; the video file must be in a YouTube-supported format.6 params

Uploads a video from a local file path to a YouTube channel; the video file must be in a YouTube-supported format.

Parameters* required
categoryIdstring
YouTube category ID (e.g., '22' for People & Blogs). See YouTube Data API docs for a full list of category IDs.
descriptionstring
Detailed description of the video content, optionally including keywords and context.
privacyStatusstring
Privacy status: 'public', 'private' (uploader/specified users only), or 'unlisted' (link accessible, not publicly listed).
tagsarray
List of keyword tags (strings) for the video, used to improve discoverability.
titlestring
The title for the video.
videoFilePathstring
Video file to upload. Provide a FileUploadable object with valid s3key, mimetype, and name.
YOUTUBE_VIDEO_DETAILSRetrieves specified information parts (e.g., snippet, contentDetails, statistics) for a YouTube video, identified by its ID.2 params

Retrieves specified information parts (e.g., snippet, contentDetails, statistics) for a YouTube video, identified by its ID.

Parameters* required
idstring
The YouTube video ID (typically an 11-character string) for which details are to be retrieved.
partstring
Comma-separated list of video resource parts that the API response will include. Valid parts: 'snippet' (title, description, thumbnails), 'contentDetails' (duration, definition, dimension), 'statis...default: snippet,contentDetails,statistics

Sponsors

Readme

YouTube MCP

Connect AI assistants to YouTube: search, transcripts, metadata, and more.

npm Downloads Socket Badge MIT MCP


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.


View the full README on GitHub

Details

Repository
github.com/mrsknetwork/ytmcp
Website
github.com/mrsknetwork/ytmcp
Categories
Data & Analytics, Media & Entertainment
Package
@mrsknetwork/ytmcp
Transport
STDIO
Registry
MCP registry, active

Related Data & Analytics MCP servers

View all
1r3352 avatarRedact MCPr3352/redact-mcpAuto-detects and obfuscates PII (IPs, emails, API keys, names) so Claude never sees real client data6stars
2sowiedu avatarEdictsowiedu/edictAI-agent programming language. JSON AST in, WASM out. Typed, effect-tracked, Z3-verified.6stars
3yyordanov-tradu avatarStock Scanner Mcpyyordanov-tradu/stock-scanner-mcpStock and crypto market data — 49 tools for quotes, technicals, options, SEC filings, and more.6stars
4leandrogavidia avatarLeandrogavidia Vechain Mcp Serverleandrogavidia/vechain-mcp-serverSearch VeChain documentation, query on-chain data, and fetch fee suggestions with direct links to…5stars
5anthonypuggs avatarAustralian Economic Data (ABS, RBA & APRA)anthonypuggs/ausecon-mcp-serverAustralian economic data from the ABS, RBA, and APRA: CPI, GDP, cash rate, labour, and more.5stars
6hasdata avatarHasData Binghasdata/bing-mcpBing search results with the ad block and Copilot answer, geo and market targeting, as JSON.5stars