Labsco
MCP SERVER

YouTube Data and Analytics

by vamsi-kodimela

Run a YouTube channel from your client: upload and schedule videos, moderate the comments, reorder playlists, set the branding, and read the analytics behind all of it.

Social Media Accounts & PostingVerified
Summary
Named profiles are the organising idea.

Youtube_account_add stores each connected channel under a name, a channel argument sends a call to that profile, and youtube_account_remove refuses to remove the last one. The destructive calls are gated the same way throughout — youtube_video_delete, youtube_playlist_delete and youtube_account_remove each require confirm: true — and youtube_comment_delete is honest about its limit, working only on comments the authenticated account owns. Analytics is split into narrow queries rather than a single dashboard call, which is what makes a monthly report assemblable: per-video metrics, channel metrics, top videos by a chosen metric, the audience-retention curve, and revenue split into estimated, ad and gross. One detail that will bite during playlist work: youtube_playlist_item_remove takes the playlistItem ID, not the video ID it points at.

What it is

A YouTube channel-management server covering uploads and scheduling, video metadata, playlists, comment moderation, channel branding and YouTube Analytics, with named profiles so a single server can act on more than one channel.

What you get
  • Uploads with the publishing decision attached: youtube_video_upload takes filePath, title, description, tags, categoryId, language, privacyStatus, notifySubscribers and thumbnailPath; youtube_video_schedule_publish sets an ISO8601 publishAt; youtube_video_set_premiere configures a premiere date with a countdown.
  • Edits after the fact: youtube_video_update changes title, description, tags and category, youtube_video_set_privacy switches between public, private and unlisted, youtube_video_set_thumbnail replaces the thumbnail, and youtube_video_rate applies or clears a like or dislike.
  • Analytics as specific queries rather than one dashboard: youtube_analytics_video_metrics returns views, watch time, retention and CTR for a video over a date range with chosen dimensions; youtube_analytics_channel_metrics covers views, subscribers, watch time and revenue; youtube_analytics_top_videos ranks by a chosen metric; youtube_analytics_audience_retention returns the retention curve; youtube_analytics_revenue_report returns estimated, ad and gross revenue.
  • Comment work including moderation: youtube_comment_list pages threads with searchTerms and ordering, youtube_comment_thread_get returns a thread with its replies, youtube_comment_reply posts under a parentCommentId, youtube_comment_moderate publishes, holds or rejects a comment and can ban its author, and youtube_comment_delete removes comments owned by the authenticated account.
  • Playlists as ordered objects: youtube_playlist_create, youtube_playlist_update, youtube_playlist_get and youtube_playlist_list handle the playlist itself; youtube_playlist_item_add inserts at a position, youtube_playlist_item_reorder moves an item to a newPosition, and youtube_playlist_item_remove takes the playlistItem ID rather than the video ID.
  • Channel presentation: youtube_channel_update sets title, description, keywords, country and default language; youtube_channel_branding_update sets banner, profile image and featured channels; youtube_channel_watermark_set places a watermark with position and timing across the channel's videos and youtube_channel_watermark_unset removes it; the youtube_channel_section calls build, list and delete homepage sections.
  • Named channel profiles: youtube_account_add runs the OAuth flow and saves a channel under a name, youtube_account_switch changes the active profile, youtube_account_list and youtube_account_current report the state, and a channel argument sends an individual call to a specific profile.
  • Deletions behind an explicit confirmation: youtube_video_delete, youtube_playlist_delete and youtube_account_remove each require confirm set to true.
Requirements

An OAuth client for YouTube — YOUTUBE_CLIENT_ID and YOUTUBE_CLIENT_SECRET — and a channel connected through youtube_account_add, which runs the OAuth flow and stores the channel under a named profile.

Setup effort

One command plus a key — npx maagpi-youtube-mcp, then supply credentials