Skip to main content
The youtube MCP adapter connects to the YouTube Data API v3. Search and list videos, resolve channel IDs, read RSS feeds without quota, manage comments and subscriptions, and call raw API endpoints — for content monitoring, publishing workflows, and media research.

Prerequisites

  • A Google Cloud project with YouTube Data API v3 enabled
  • For authenticated tools (comments, subscriptions, ratings): OAuth access token with appropriate scopes
  • For public read-only tools (youtube_list_channel_videos_rss, youtube_resolve_channel_id): no token required
  • project_contributor access in AgentRuntime

Connect in AgentRuntime

1

Enable YouTube Data API

In Google Cloud Console, enable YouTube Data API v3 for your project.
2

Obtain credentials

For public RSS and search tools, you may omit AccessToken. For write operations and authenticated reads, complete OAuth and store a refreshable access token.
3

Create a connection

Go to Connections and click New custom connection. Add AccessToken when using authenticated tools. Optionally set APIBase, UserAgent, and TimeoutSec.
4

Add youtube MCP instance

Go to MCP, click Add instance for youtube, wire your connection on Instance config, set the profile active, and save.
5

Test public access

Run mcp_callyoutube_list_channel_videos_rss with a channel handle to verify without OAuth.
See Authentication for binding connections to MCP instances.
youtube_list_channel_videos_rss uses the public RSS feed and does not consume YouTube Data API quota. Prefer it for simple “latest videos” monitoring when OAuth is not configured.

What you can build

  • Channel digestyoutube_list_channel_videos_rss on competitor channels → LLM weekly summary → email or Notion.
  • Comment moderationyoutube_get_comment_threads → LLM flags spam → human_taskyoutube_reply_comment or hide via custom API call.
  • Playlist curationyoutube_search → filter → add items to internal tracking sheet.
  • Subscription syncyoutube_subscriptions_list → compare to CRM list → youtube_subscriptions_insert for new channels.

Tools

ToolDescription
youtube_resolve_channel_idResolve channel ID from ID, @handle, or URL (no Data API)
youtube_list_channel_videos_rssRecent videos via public RSS feed (no Data API quota)
youtube_get_channelChannel by ID, username, or mine=true
youtube_get_videoSingle video by ID
youtube_list_videosMultiple videos by ID (up to 50)
youtube_searchSearch videos, channels, or playlists
youtube_list_channel_videosChannel videos via search.list
youtube_list_playlistsPlaylists for a channel or authenticated user
youtube_list_playlist_itemsEntries in a playlist
youtube_get_comment_threadsComment threads on a video or channel
youtube_insert_commentTop-level comment on a video
youtube_reply_commentReply to an existing comment
youtube_subscriptions_listList subscriptions
youtube_subscriptions_insertSubscribe to a channel
youtube_subscriptions_deleteUnsubscribe by subscription ID
youtube_rate_videoLike, dislike, or clear rating
youtube_custom_api_callRaw YouTube Data API v3 request

Example

Fetch the latest videos from a channel via RSS:
{
  "id": "youtube-rss",
  "type": "mcp_call",
  "name": "Latest channel videos",
  "tool_name": "youtube_list_channel_videos_rss",
  "tool_args": {
    "channel_identifier": "@GoogleDevelopers",
    "limit": 5
  },
  "timeout_s": 30
}

Configuration

KeyRequiredDescription
AccessTokenNoOAuth access token; required for authenticated tools only
APIBaseNoYouTube Data API base URL
UserAgentNoHTTP User-Agent for RSS and fetch helpers
TimeoutSecNoHTTP timeout in seconds

Troubleshooting

IssueFix
Quota exceededPrefer RSS tool for latest videos; cache results; request quota increase in Google Cloud
403 on commentsToken needs youtube.force-ssl scope; channel must allow comments
Channel not resolvedTry @handle, full channel URL, or UC… channel ID
Empty search resultsCheck type, order, and query encoding; verify API key or token