youtube-studio-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YOUTUBE_CLIENT_ID | Yes | Google OAuth 2.0 Client ID from Google Cloud Console. | |
| YOUTUBE_CLIENT_SECRET | Yes | Google OAuth 2.0 Client Secret from Google Cloud Console. | |
| YOUTUBE_REFRESH_TOKEN | Yes | OAuth Refresh Token, written automatically by run_auth.py. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_channel_overviewA | Fetches high-level metadata and lifetime statistics for your YouTube channel. Returns channel title, handle, subscriber count, total lifetime views, video count, creation date, topic categories, and channel description. |
| get_channel_analyticsA | Queries core YouTube Studio channel analytics for a specified timeframe. Args: time_period: Preset time period ('7d', '28d', '90d', '365d', 'last_month'). Defaults to '28d'. start_date: Explicit start date in YYYY-MM-DD format (overrides time_period if both start & end are provided). end_date: Explicit end date in YYYY-MM-DD format. dimensions: Dimension to group by, e.g. 'day' (default) or None for a single aggregate row. Returns: Summary metrics (total views, watch time hours, avg view duration, subscribers gained/lost, net growth, likes, shares, comments, impressions, CTR) and daily time-series data points. |
| get_analytics_by_dimensionA | Fetches channel analytics broken down by a specific dimension. Args: dimension: The dimension to analyze. Supported values: - 'trafficSource' (YouTube search, suggested videos, browse features, external, etc.) - 'deviceType' (mobile phone, computer, TV, tablet) - 'country' (top geographic viewer locations) - 'ageGroup' (demographics: 18-24, 25-34, 35-44, etc.) - 'gender' (viewer gender percentage) - 'operatingSystem' (Android, Windows, iOS, etc.) - 'day' or 'month' time_period: Preset time period ('7d', '28d', '90d', '365d', 'last_month'). Defaults to '28d'. start_date: Optional explicit start date (YYYY-MM-DD). end_date: Optional explicit end date (YYYY-MM-DD). max_results: Maximum number of rows to return (default: 20). Returns: A ranked list of metrics for each dimension value. |
| get_top_performing_videosA | Identifies and ranks your top-performing videos within a time period. Args: time_period: Preset time period ('7d', '28d', '90d', '365d', 'last_month'). Defaults to '28d'. start_date: Optional explicit start date (YYYY-MM-DD). end_date: Optional explicit end date (YYYY-MM-DD). order_by: Metric to rank by: 'views', 'estimatedMinutesWatched', 'subscribersGained', or 'likes'. max_results: Number of top videos to return (default: 10). Returns: Ranked list of videos with title, duration, period views, watch time, subscribers gained, and lifetime views. |
| get_video_analyticsA | Performs deep-dive analytics on a single specific video. Args: video_id: The 11-character YouTube video ID (e.g. 'dQw4w9WgXcQ'). time_period: Preset time period ('7d', '28d', '90d', '365d', 'last_month'). Defaults to '28d'. start_date: Optional explicit start date (YYYY-MM-DD). end_date: Optional explicit end date (YYYY-MM-DD). Returns: Video metadata, daily trajectory, total period views & watch time, and traffic source breakdown for this specific video. |
| list_channel_videosA | Lists your channel's uploaded videos in reverse chronological order. Args: max_results: Number of videos to retrieve (max 50 per page). page_token: Optional page token for pagination. Returns: List of videos with video ID, title, publish date, duration, views, likes, comments, and privacy status. |
| get_video_detailsA | Fetches full metadata, description, tags, and statistics for specified video IDs. Args: video_ids: Comma-separated list of YouTube video IDs (e.g. 'vid1,vid2'). Returns: Complete video details including title, description, tags, topic categories, view/like/comment counts, duration, and content settings. |
| get_video_commentsA | Fetches comment threads and audience discussions for a video or the whole channel. Args: video_id: Optional specific YouTube video ID. If omitted, retrieves recent comments across the channel. max_results: Number of comment threads to fetch (max 100). order: Sort order: 'relevance' (top comments) or 'time' (newest first). Returns: List of comments with author, comment text, likes, timestamp, and sample replies. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
There are several analytics tools with overlapping parameters and outputs: get_channel_analytics can group by day, which overlaps with get_analytics_by_dimension, and get_top_performing_videos overlaps with list_channel_videos in returning video statistics. However, each tool's detailed description clarifies the intended focus (summary vs dimension vs ranked list), so agents can generally disambiguate.
All tools use snake_case and nearly all start with get_, with list_channel_videos as the only list_ exception. The pattern is easily predictable, though get_top_performing_videos and get_analytics_by_dimension are phrase-style names rather than clean verb_noun resource names.
Eight tools is a well-scoped size for a YouTube Studio analytics server; each tool covers a distinct reporting need without redundancy or bloat. This is within the ideal range and doesn't overwhelm an agent.
The toolset provides solid read-only coverage of channel analytics, video metadata/performance, and comments, supporting common creator reporting workflows. Notable gaps exist for video-level dimension breakdowns beyond traffic source and any management actions, but given the analytics-focused descriptions, these are minor.