Skip to main content
Glama
Dhananjayrbiraris

youtube-studio-mcp

YouTube Studio & Channel Analytics MCP Server

A Production-Grade Model Context Protocol (MCP) Server for YouTube Studio & Channel Intelligence

License: MIT Python: 3.11+ Managed by: uv MCP Compatible

Empower AI assistants (Claude, Cursor, Antigravity, etc.) to analyze your YouTube channel, track video metrics, deep-dive into YouTube Studio analytics, discover audience traffic sources, and analyze community sentiment — configured entirely through .env.


🚀 Features & MCP Tool Suite

YouTube Studio MCP provides 8 specialized tools:

Tool

Category

Description

get_channel_overview

Channel Stats

Returns channel title, handle, subscriber count, total lifetime views, video count, topic categories, and description.

get_channel_analytics

Studio Analytics

Queries core Studio metrics (views, watch time hours, average view duration, subscribers gained/lost, likes, shares, comments, impressions, CTR) over any timeframe (7d, 28d, 90d, 365d, last_month, or custom dates).

get_analytics_by_dimension

Demographics & Traffic

Detailed breakdowns by dimension: trafficSource (YouTube search, suggested, browse), deviceType, country, ageGroup, gender, operatingSystem, or day.

get_top_performing_videos

Video Intelligence

Ranks your top videos by views, watch time minutes, or subscribers gained in any date range.

get_video_analytics

Video Deep-Dive

Deep-dive analytics on a single specific video (daily trajectory, watch time, audience retention, traffic sources).

list_channel_videos

Content Inventory

Lists uploaded videos with current views, likes, comments, duration, and privacy status.

get_video_details

Video Metadata

Returns full metadata, tags, description, category, and statistics for specified video IDs.

get_video_comments

Community & Sentiment

Retrieves top comment threads and replies across your channel or on a specific video for sentiment analysis and feedback.


Related MCP server: youtube-organic-mcp

⚙️ Environment Configuration (.env)

All credentials and settings are read directly from .env:

# Google OAuth 2.0 Credentials (from Google Cloud Console)
YOUTUBE_CLIENT_ID=your_client_id.apps.googleusercontent.com
YOUTUBE_CLIENT_SECRET=your_client_secret

# OAuth Refresh Token (written automatically by run_auth.py)
YOUTUBE_REFRESH_TOKEN=

🛠️ Step-by-Step Setup Guide

1. Clone & Install Dependencies with uv

git clone https://github.com/Dhananjayrbiraris/youtube-mcp.git
cd youtube-mcp

uv venv
uv pip install -e .

2. Set Up Google Cloud Project (One-Time)

  1. Open Google Cloud Console.

  2. Create a new project (e.g. YouTube-Studio-MCP).

  3. In APIs & Services > Library, enable:

    • YouTube Data API v3

    • YouTube Analytics API

  4. In OAuth consent screen:

    • User Type: External -> fill app name & your email.

    • Under Test users, add your Google email address.

  5. In Credentials:

    • Click Create Credentials > OAuth client ID.

    • Application Type: Desktop App.

    • Copy the Client ID and Client Secret.

  6. Paste them into .env:

    YOUTUBE_CLIENT_ID=123456789-xxxx.apps.googleusercontent.com
    YOUTUBE_CLIENT_SECRET=GOCSPX-xxxx

3. Run 1-Click Authenticator

uv run run_auth.py

This launches your browser for a 1-click Google OAuth login. It automatically writes the YOUTUBE_REFRESH_TOKEN directly into your .env file.


4. Connect to your AI Client

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "youtube-studio": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/youtube-mcp",
        "run",
        "youtube-studio-mcp"
      ]
    }
  }
}

💡 Example AI Prompts

  • "Give me an overview of my YouTube channel's performance over the last 28 days."

  • "Where is most of my traffic coming from (search, suggested videos, or browse features)?"

  • "Which of my videos generated the most subscribers this month?"

  • "Summarize common themes and questions from the comments on my latest video."

  • "Show me my audience breakdown by age group and country."


🧪 Testing

Run the test suite:

pytest

📄 License

This project is licensed under the MIT License.

Available Tools

8 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
dimensionYes
start_dateNo
max_resultsNo
time_periodNo28d

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the behavioral burden. It adds useful facts—default time_period of '28d', optional date overrides, max_results row cap, and a ranked-list return shape—but it does not state read-only behavior, handling of conflicting time_period plus start/end dates, or data availability caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One-sentence purpose, then an Args list that gives each parameter purpose and allowed values, then a Returns line. No filler; the long dimension enum is justified because it is the key selection info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all five parameters and the broad return shape, and an output schema exists to detail metric fields. It is missing only a pointer to when this tool is preferred over sibling analytics tools and any interaction rules between time_period and explicit dates, so it is strong but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description fully compensates by enumerating supported dimension values (trafficSource, deviceType, country, ageGroup, gender, operatingSystem, day/month), time_period presets, date format, and max_results semantics. This goes far beyond bare parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names the action ('Fetches'), the resource ('channel analytics'), and the differentiator ('broken down by a specific dimension'), and the supported dimension list clarifies scope. This separates it from sibling get_channel_analytics, which presumably returns rollups rather than per-dimension breakdowns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use/when-not-to-use statement or sibling comparison appears; the intended use is only implied by the phrase 'broken down by a specific dimension.' It would be stronger if it told the agent to choose this tool over get_channel_analytics when dimensional grouping is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
dimensionsNoday
start_dateNo
time_periodNo28d

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It explains defaults, date override behavior, and return metrics, but does not mention permissions, rate limits, data availability, or explicitly state that this is a read-only operation. This is acceptable but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with purpose, args, and returns sections. It is slightly longer than necessary because the return list is detailed even though an output schema exists, but every section earns its place and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all parameters and the return shape, and the output schema exists to handle return details. It is missing explicit guidance on when to use this tool versus analytics siblings, but it provides enough information to configure and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully by documenting all four parameters: time_period presets and default, start_date/end_date formats and override behavior, and dimensions default/meaning. This adds substantial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Queries'), resource ('core YouTube Studio channel analytics'), and scope ('for a specified timeframe'), making the tool's function clear. It does not explicitly differentiate from siblings like get_analytics_by_dimension or get_channel_overview, but the name and description convey channel-level analytics clearly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for channel analytics over a time period with optional grouping, but it does not state when to prefer this tool over siblings such as get_analytics_by_dimension or get_channel_overview. There are no explicit exclusions or alternative routing, so guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full transparency burden. It clearly indicates a read-only 'Fetches' operation and enumerates the returned data in detail. It does not mention authentication, data freshness, or rate limits, but for a zero-parameter metadata tool this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence front-loads the core purpose, and the second provides a concrete, useful enumeration of returned fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter tool with an output schema, the description is largely complete: it states the scope and the full set of returned metadata. It could be slightly more complete with explicit sibling differentiation, but nothing essential to invoking the tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema description coverage is 100% with an empty properties object. Per the rubric, this is a baseline 4. The description correctly focuses on return values rather than parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Fetches high-level metadata and lifetime statistics for your YouTube channel.' It also lists concrete returned fields, which helps distinguish it from video-level siblings. However, it does not explicitly distinguish itself from the closely related get_channel_analytics sibling, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied: an agent can infer this is for channel-level summary data rather than video-level or detailed analytics. But the description provides no explicit guidance on when to choose this over get_channel_analytics or other siblings, and no exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
order_byNoviews
start_dateNo
max_resultsNo
time_periodNo28d

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It does disclose ranking behavior, metric choices, and the returned fields. However, it omits edge-case behavior like how time_period interacts with explicit dates, data freshness, or any rate-limit/error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in a single clear sentence, followed by a structured Args/Returns list. Every line is informative and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only ranking tool with moderate complexity, the description covers all parameters and return fields. It is slightly incomplete only in not explaining when to choose this tool instead of sibling analytics tools and in not covering date-conflict behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully documents every parameter: time_period presets and default, start_date/end_date format, order_by allowed values, and max_results default. This adds rich meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Identifies and ranks'), a specific resource ('your top-performing videos'), and a temporal scope ('within a time period'). This clearly distinguishes it from sibling tools like list_channel_videos or get_channel_overview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use this when you need a ranked list of top videos by a chosen metric. However, it gives no explicit guidance on when to prefer this tool over siblings, nor does it mention any exclusions or alternative tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
video_idYes
start_dateNo
time_periodNo28d

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the non-mutating analytics nature, the default time_period of '28d', and the return payload via the Returns section. However, it does not state what happens when time_period and explicit start/end dates are provided together, how invalid video_ids are handled, or any auth/rate-limit context — moderate gaps for a tool with zero annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and the Args/Returns sections are compact and information-dense. Every parameter line earns its place given the 0% schema coverage, and the Returns block adds interpretive color like 'daily trajectory.' Only minor redundancy exists since an output schema is present, so the Returns section is not strictly necessary but remains brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no annotations, the description covers invocation essentials: all parameters documented with formats and defaults, plus a clear return summary. What is missing is interaction guidance for overlapping siblings (get_video_details, get_analytics_by_dimension) and edge-case semantics such as whether time_period and explicit dates are mutually exclusive or how they combine. This is adequate for calling the tool but leaves selection and boundary questions open.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates: video_id is given its 11-character format plus a concrete example ('dQw4w9WgXcQ'), time_period lists all five valid preset values and its default, and start_date/end_date specify their YYYY-MM-DD format and optionality. This adds meaning far beyond the bare schema, which lacks any property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'Performs deep-dive analytics on a single specific video.' The 'single specific video' scoping separates it from channel-level siblings like get_channel_overview and get_channel_analytics, while 'deep-dive analytics' and the listed return payload (daily trajectory, views, watch time, traffic sources) distinguish it from the metadata-oriented get_video_details. An agent can select this tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied rather than stated: the 'single specific video' + 'analytics' phrasing suggests it is the per-video analytics counterpart to channel-level tools, but no alternative is named and no when-to-use/when-not-to-use rule is given. The description does not address how it differs from nearby siblings such as get_video_details or get_analytics_by_dimension, leaving the agent to infer the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNorelevance
video_idNo
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It explains the effect of omitting video_id, the max_results cap, the order options with their meanings, and the shape of the returned list. It does not mention auth, rate limits, or pagination, but for a read-only fetch it provides solid transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with an opening sentence, an Args block, and a Returns block. Every line carries necessary information, and the main purpose is front-loaded. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no annotations, the description covers purpose, parameter semantics, optional behavior, and return contents, which is enough for an agent to invoke the tool correctly. It falls slightly short of a 5 only by not addressing potential pagination, auth requirements, or rate limits, though these are less critical for a comment-fetch operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates by documenting all three parameters: video_id's optionality and fallback behavior, max_results' count and cap of 100, and order's two allowed values with their meanings. This adds substantial value beyond the bare schema types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetches') and a clear resource ('comment threads and audience discussions') for either a video or the whole channel. This distinguishes it from sibling tools, which are all analytics or video-list oriented and none of which mention comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool and how to vary behavior: providing video_id targets one video, while omitting it retrieves recent channel-wide comments. It does not explicitly name alternatives or exclusions, but the video-versus-channel guidance gives enough context for correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It clearly signals a read-only operation via 'Fetches' and lists the returned data categories. It does not disclose API quotas, authentication requirements, error behavior for invalid video IDs, or whether hidden/unlisted videos are included, so transparency is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-organized into Args and Returns sections. Every sentence adds useful information, and the parameter format is front-loaded before the return summary. There is no unnecessary filler or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with an output schema, the description covers the key calling details: what to pass and what to expect back. The main missing piece is usage differentiation from analytics/comment siblings, but that was already captured under usage guidelines and does not prevent correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only the parameter name and type, with 0% schema description coverage, so the description must compensate. It does so fully by specifying that video_ids is a comma-separated list and providing an explicit example ('vid1,vid2'), which is exactly the operational detail an agent needs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Fetches') and resource ('full metadata, description, tags, and statistics for specified video IDs'), making the tool's purpose clear. It does not explicitly contrast with sibling tools like get_video_analytics or get_video_comments, but the described content is distinct enough for an agent to infer the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: use this tool when you need complete metadata and statistics for specific video IDs. However, there is no explicit guidance about when not to use it, nor any mention of alternatives such as get_video_analytics for analytics or get_video_comments for comments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_tokenNo
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It reveals reverse chronological ordering, pagination via page_token, the 50-per-page limit, and the returned video fields. It does not mention auth, rate limits, or error behavior, but the read-only 'Lists' framing plus pagination details are meaningful for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in the first sentence and the Args/Returns sections are clearly formatted. It is efficient overall, though the Returns list is partly redundant with the existing output schema and Args details duplicate schema property names.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity read tool with only two optional parameters and an output schema, the description covers the essential behavior, pagination, and return contents. The main missing piece is when to select this over sibling tools, but that gap is more about routing than about invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema properties only provide names, types, and defaults (schema_description_coverage 0%). The description compensates fully by defining max_results as the number of videos to retrieve capped at 50 per page and page_token as the optional pagination token, adding meaning the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Lists your channel's uploaded videos in reverse chronological order.' This clearly identifies the tool's function and differentiates it from sibling analytics/detail tools like get_channel_analytics or get_video_details by focusing on an unfiltered chronological listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance explains when to choose this tool over siblings such as get_top_performing_videos or get_video_details. The use case is only implied by the verb 'Lists', and there are no explicit alternatives, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedget_analytics_by_dimension
    • First observedget_channel_analytics
    • First observedget_channel_overview
    • First observedget_top_performing_videos
    • First observedget_video_analytics
    • First observedget_video_comments
    • First observedget_video_details
    • First observedlist_channel_videos

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI assistants with comprehensive YouTube analytics and channel management capabilities, including channel performance, video analytics, audience insights, and content strategy tools.
    17 npm
    1
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to access YouTube organic analytics, including channel stats, video performance, watch time, and audience engagement, via the YouTube Data API v3 and Analytics API v2.
    6
    15 npm
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Provides comprehensive access to YouTube Data, Analytics, and Reporting APIs, enabling AI assistants to manage videos, analyze performance, handle comments, and extract transcripts.
    40
    MIT