Skip to main content
Glama

YouTube Data MCP Server (@kirbah/mcp-youtube)

MCP Toplist

A production-grade YouTube Data MCP server engineered specifically for AI agents.

Unlike standard API wrappers that flood your LLM with redundant data, this server strips away YouTube's heavy payload bloat. It is designed to save you massive amounts of context window tokens, protect your daily API quotas via caching, and run reliably without breaking your workflows.

Why Choose This Server?

Most MCP servers are weekend projects. @kirbah/mcp-youtube is built for reliable, daily, cost-effective agentic workflows.

🎯 Want feedback on your own channel, not just raw data? Check out CreatorLens - a companion Claude Skill built on this MCP that diagnoses common growth problems (weak hooks, bad thumbnails, flatlined videos) using a real strategist's framework, not just numbers.

📉 1. Save Up to 87% on Tokens (and Context Window)

The raw YouTube API returns massive JSON payloads filled with nested eTags, redundant thumbnails, and localization data that LLMs don't need. This server structures the data to give your LLM exactly what it needs to reason, and nothing else.

%%{init: { "theme": "base", "themeVariables": { "xyChart": { "plotColorPalette": "#ef4444, #22c55e" } } } }%%
xychart-beta
    title "Token Consumption (Lower is Better)"
    x-axis ["getVideoDetails", "searchVideos", "getChannelStats"]
    y-axis "Context Tokens" 0 --> 1200
    bar "Raw YouTube API" [854, 1115, 673]
    bar "MCP-YouTube (Optimized)" [209, 402, 86]

API Method

Raw YouTube Tokens

MCP-YouTube Tokens

Token Savings

Data Size

getChannelStatistics

673

86

~87% Less

1.9 KB ➔ 0.2 KB

getVideoDetails

854

209

~75% Less

2.9 KB ➔ 0.6 KB

searchVideos

1115

402

~64% Less

3.4 KB ➔ 1.2 KB

(Curious? You can compare the raw API responses vs optimized outputs in the examples folder).

🛡️ 2. Protect Your API Quotas (Smart Caching)

The YouTube Data API has strict daily limits (10,000 quota units). If your LLM gets stuck in a loop or re-asks a question, standard servers will drain your API limit in minutes. This server includes an optional MongoDB caching layer. If your agent requests a video details or searches the same trending videos twice, the server serves it from the cache - costing you 0 API quota points.

🏗️ 3. Production-Grade & Actively Maintained

Tired of MCP tools crashing your AI client? This server is built to be a rock-solid dependency:

  • 97% Test Coverage: Comprehensively unit-tested (check the Codecov badge).

  • Zero Lint Errors/Warnings: Enforces strict, clean code (npm run lint passes 100%).

  • Active Security: Automated Dependabot patching ensures underlying libraries are never left with known vulnerabilities.

  • Strict Type Safety: Built using Zod validation and the robust MCP TypeScript Starter architecture.


Related MCP server: Youtube-MCP

Quick Start: Installation

🟢 Zero-Config Mode (No API Key Required)

Want to just fetch transcripts? You can use this server immediately without any configuration! Just install and go. Add a YouTube API key later to unlock deep search and analytics.

The easiest way to install this server is by clicking the "Add to Claude Desktop" button on the Glama server page.

If you are configuring manually (e.g., in Cursor), just add this bare-minimum setup:

{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@kirbah/mcp-youtube"]
    }
  }
}

Tip: In Zero-Config mode, you can ask your AI to simply "Read the transcript for youtube://transcript/{videoId}"!

🟡 Manual Configuration (Unlock All Features)

If you prefer to configure your MCP client manually (e.g., Claude Desktop or Cursor), add the following to your configuration file:

  1. Get a YouTube Data API v3 Key (See Setup Instructions below).

  2. (Highly Recommended) Get a free MongoDB Connection String to enable quota-saving caching.

{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@kirbah/mcp-youtube"],
      "env": {
        "YOUTUBE_API_KEY": "YOUR_YOUTUBE_API_KEY_HERE",
        "MDB_MCP_CONNECTION_STRING": "mongodb+srv://user:pass@cluster0.abc.mongodb.net/youtube_niche_analysis"
      }
    }
  }
}

(Windows PowerShell Users: If npx fails, try using "command": "cmd" and "args": ["/k", "npx", "-y", "@kirbah/mcp-youtube"])

Next Step: Add a Skill

Once your server is connected, try CreatorLens - a Claude Skill built specifically for this MCP that turns raw YouTube data into growth diagnostics (weak hooks, packaging, niche doubt, format pivots).

Key Features

  • Optimized Video Information: Search videos with advanced filters. Retrieve detailed metadata, statistics (views, likes, etc.), and content details, all structured for minimal token footprint.

  • Efficient Transcript Management: Fetch video captions/subtitles with multi-language support, perfect for content analysis by LLMs.

  • Insightful Channel Analysis: Get concise channel statistics (subscribers, views, video count) and discover a channel's top-performing videos without data bloat.

  • Lean Trend Discovery: Find trending videos by region and category, and get lists of available video categories, optimized for quick AI processing.

  • Structured for AI: All responses are designed to be easily parsable and immediately useful for language models.

  • Efficient Comment Retrieval: Fetch video comments with fine-grained control over the number of results and replies, optimized for sentiment analysis and feedback extraction.

Available Tools

The server provides the following MCP tools, each designed to return token-optimized data:

Tool Name

Description

Parameters (see details in tool schema)

getVideoDetails

Retrieves detailed, lean information for multiple YouTube videos including metadata, statistics, engagement ratios, and content details.

videoIds (array of strings)

searchVideos

Searches for videos or channels based on a query string with various filtering options, returning concise results.

query (string), maxResults (optional number), order (optional), type (optional), channelId (optional), etc.

getTranscripts

Retrieves token-efficient transcripts (captions) for multiple videos, with options for full text or key segments (intro/outro).

videoIds (array of strings), lang (optional string for language code), format (optional enum: 'full_text', 'key_segments' - default 'key_segments')

getChannelStatistics

Retrieves lean statistics for multiple channels (subscriber count, view count, video count, creation date).

channelIds (array of strings)

getChannelTopVideos

Retrieves a list of a channel's top-performing videos with lean details and engagement ratios.

channelId (string), maxResults (optional number)

getTrendingVideos

Retrieves a list of trending videos for a given region and optional category, with lean details and engagement ratios.

regionCode (optional string), categoryId (optional string), maxResults (optional number)

getVideoCategories

Retrieves available YouTube video categories (ID and title) for a specific region, providing essential data only.

regionCode (optional string)

getVideoComments

Retrieves comments for a YouTube video. Allows sorting, limiting results, and fetching a small number of replies per comment.

videoId (string), maxResults (optional number), order (optional), maxReplies (optional number), commentDetail (optional string)

findConsistentOutlierChannels

Identifies channels that consistently perform as outliers within a specific niche. Requires a MongoDB connection.

niche (string), minVideos (optional number), maxChannels (optional number)

For detailed input parameters and their descriptions, please refer to the inputSchema within each tool's configuration file in the src/tools/ directory (e.g., src/tools/video/getVideoDetails.ts).

Note on API Quota Costs: Most tools are highly efficient. getVideoDetails, getChannelStatistics, and getTrendingVideos cost only 1 unit per call. The getTranscripts tool has 0 API cost. The new getVideoComments tool has a variable cost: the base call is 1 unit, but if you request replies (by setting maxReplies > 0), it costs an additional 1 unit for each top-level comment it fetches replies for. The search-based tools are the most expensive: searchVideos costs 100 units and getChannelTopVideos costs 101 units.

Advanced Usage & Local Development

If you wish to contribute, modify the server, or run it locally outside of an MCP client's managed environment:

Prerequisites

  • Node.js (version specified in package.json engines field - currently >=20.0.0)

  • npm (usually comes with Node.js)

  • A YouTube Data API v3 Key (see YouTube API Setup)

Local Setup

  1. Clone the repository:

    git clone https://github.com/kirbah/mcp-youtube.git
    cd mcp-youtube
  2. Install dependencies:

    npm ci
  3. Configure Environment: Create a .env file in the root by copying .env.example:

    cp .env.example .env

    Then, edit .env to add your YOUTUBE_API_KEY:

    YOUTUBE_API_KEY=your_youtube_api_key_here
    MDB_MCP_CONNECTION_STRING=your_mongodb_connection_string_here

Development Scripts

# Run in development mode with live reloading
npm run dev

# Build for production
npm run build

# Run the production build (after npm run build)
npm start

# Lint files
npm run lint

# Run tests
npm run test
npm run test -- --coverage # To generate coverage reports

# Inspect MCP server using the Model Context Protocol Inspector
npm run inspector

Local Development with an MCP Client

To have an MCP client run your local development version (instead of the published NPM package):

  1. Ensure you have a script in package.json for a non-watching start, e.g.:

    "scripts": {
      "start:client": "tsx ./src/index.ts"
    }
  2. Configure your MCP client to spawn this local script:

    {
      "mcpServers": {
        "youtube_local_dev": {
          "command": "npm",
          "args": ["run", "start:client"],
          "working_directory": "/absolute/path/to/your/cloned/mcp-youtube",
          "env": {
            "YOUTUBE_API_KEY": "YOUR_LOCAL_DEV_API_KEY_HERE"
          }
        }
      }
    }

    Note on the env block above: Setting YOUTUBE_API_KEY directly in the env block for the client configuration is one way to provide the API key. Alternatively, if your server correctly loads its .env file based on the working_directory, you might not need to specify it in the client's env block, as long as your local .env file in the project root contains the YOUTUBE_API_KEY. The working_directory path must be absolute and correct for the server to find its .env file.

YouTube API Setup

  1. Go to the Google Cloud Console.

  2. Create a new project or select an existing one.

  3. In the navigation menu, go to "APIs & Services" > "Library".

  4. Search for "YouTube Data API v3" and Enable it for your project.

  5. Go to "APIs & Services" > "Credentials".

  6. Click "+ CREATE CREDENTIALS" and choose "API key".

  7. Copy the generated API key. This is your YOUTUBE_API_KEY.

  8. Important Security Step: Restrict your API key to prevent unauthorized use. Click on the API key name, and under "API restrictions," select "Restrict key" and choose "YouTube Data API v3." You can also add "Application restrictions" (e.g., IP addresses) if applicable.

System Requirements

  • Node.js: >=20.0.0 (as specified in package.json)

  • npm (for managing dependencies and running scripts)

Deep Dive: findConsistentOutlierChannels Tool

The findConsistentOutlierChannels tool is designed to identify emerging or established YouTube channels that consistently outperform their size within a specific niche. This tool is particularly useful for content creators, marketers, and analysts looking for high-potential channels.

Important Note: This tool requires a MongoDB connection to store and analyze channel data. Without MDB_MCP_CONNECTION_STRING configured, this tool will not be available.

Internal Logic Overview

The tool operates through a multi-phase analysis process, leveraging both YouTube Data API and a MongoDB database:

  1. Candidate Search (Phase 1):

    • Uses the provided query to search for relevant videos and channels on YouTube.

    • Filters initial results based on videoCategoryId and regionCode if specified.

    • Collects a broad set of potential channels for deeper analysis.

  2. Channel Filtering (Phase 2):

    • Retrieves detailed statistics for candidate channels (subscribers, total views, video count).

    • Filters channels based on channelAge (e.g., 'NEW' for channels under 6 months, 'ESTABLISHED' for 6-24 months).

    • Ensures channels meet a minimum video count to be considered for consistency.

  3. Deep Analysis (Phase 3):

    • For each filtered channel, fetches their recent top-performing videos.

    • Calculates a "viral factor" for each video (e.g., views relative to subscriber count).

    • Assesses the consistencyLevel (e.g., 'MODERATE' for ~30% of videos showing outlier performance, 'HIGH' for ~50%).

    • Determines outlierMagnitude (e.g., 'STANDARD' for views > subscribers, 'STRONG' for views > 3x subscribers).

  4. Ranking & Formatting (Phase 4):

    • Ranks channels based on their consistency, outlier magnitude, and overall performance within the niche.

    • Formats the results into a token-optimized structure suitable for LLMs, including key channel metrics and examples of outlier videos.

Key Parameters Controlling the Flow

The behavior of this tool is primarily controlled by the following parameters:

  • query (string, required): The central topic or niche to analyze (e.g., "DIY home repair", "quantum computing explained").

  • channelAge (enum: "NEW", "ESTABLISHED", default: "NEW"): Focuses the search on emerging or more mature channels.

  • consistencyLevel (enum: "MODERATE", "HIGH", default: "MODERATE"): Sets the threshold for how consistently a channel's videos must perform as outliers.

  • outlierMagnitude (enum: "STANDARD", "STRONG", default: "STANDARD"): Defines how significantly a video's performance must exceed typical expectations (e.g., views vs. subscribers) to be considered an "outlier."

  • videoCategoryId (string, optional): Narrows the search to a specific YouTube category ID.

  • regionCode (string, optional): Targets channels relevant to a particular geographical region.

  • maxResults (number, default: 10): Limits the number of top outlier channels returned.

Security Considerations

  • API Key Security: Your YOUTUBE_API_KEY is sensitive. Never commit it directly to your repository. Use environment variables (e.g., via a .env file which should be listed in .gitignore).

  • API Quotas: The YouTube Data API has a daily usage quota (default is 10,000 units). All tool calls deduct from this quota. Monitor your usage in the Google Cloud Console and be mindful of the cost of each tool. For a detailed breakdown of costs per API method, see the official documentation.

  • Input Validation: The server uses Zod for robust input validation for all tool parameters, enhancing security and reliability.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Available Tools

9 tools
findConsistentOutlierChannelsA
Read-onlyIdempotent
Inspect

A powerful, high-cost discovery tool. It finds emerging channels that show consistent, high-performance relative to their size within a specific topic and timeframe.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesRequired. The core topic or niche to investigate (e.g., 'stoic philosophy', 'AI history explainers').
channelAgeNoOptional. Filters by channel age. Default: 'NEW'. 'NEW' = under 6 months (emerging), 'ESTABLISHED' = 6-24 months (proven).NEW
maxResultsNoOptional. Max number of channels to return. Default: 10.
regionCodeNoOptional. ISO 2-letter country code (e.g., 'US', 'DE') to target a regional audience.
videoCategoryIdNoOptional. YouTube video category ID to narrow search (e.g., '27' for Education). Improves relevance.
consistencyLevelNoOptional. Minimum required consistency. Default: 'MODERATE'. 'MODERATE' (~30%) for broad discovery. 'HIGH' (~50%) for exceptional channels.MODERATE
outlierMagnitudeNoOptional. Required 'viral factor' for videos. Default: 'STANDARD'. 'STANDARD' (views>subs) for regular content. 'STRONG' (views>3x subs) for viral channels.STANDARD

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate read-only and idempotent, which the description does not contradict. The description adds 'high-cost' as a behavioral trait, but without explaining what that entails (e.g., rate limits, compute). No contradiction with annotations.

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?

Two sentences, no fluff, front-loaded with cost warning. Every word earns its place.

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 tool with 7 parameters and no output schema, the description is brief. It explains the core function but does not mention return format or any edge cases. Lacks detail on how the 'consistency' or 'outlier magnitude' manifest in output.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters. The description does not add further meaning beyond restating that the tool works on a topic and timeframe. Baseline 3 is appropriate.

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?

Description clearly states the tool finds emerging channels with consistent high performance relative to size within a topic and timeframe. It distinguishes from sibling tools like searchVideos which search for videos, not channels.

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 notes it is 'high-cost', implying cautious use, but does not explicitly state when to use this tool vs alternatives like searchVideos or getChannelStatistics. No exclusions or clear context for when not to use.

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

getChannelStatisticsA
Read-onlyIdempotent
Inspect

Retrieves statistics for multiple channels. Returns detailed metrics including subscriber count, view count, video count, and channel creation date for each channel. Use this when you need to analyze the performance and reach of multiple YouTube channels.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdsYesArray of YouTube channel IDs to get statistics for

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, indicating safe read-only behavior. The description adds value by specifying the returned metrics (subscriber count, view count, etc.), which helps the agent understand the output. No additional behavioral traits (e.g., rate limits) are disclosed, but the annotations cover the safety profile.

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 extremely concise, consisting of two sentences that front-load the action and purpose. Every word earns its place, with no redundancy or unnecessary details.

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?

Given the tool's simplicity (one parameter, full schema coverage, annotations), the description is fairly complete. It explains the return metrics and the use case. It could optionally mention limitations like maximum array size, but that is not critical for a basic stats retrieval tool.

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

Parameters3/5

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

The input schema has 100% coverage with a detailed description for the only parameter channelIds. The description adds no new semantic information beyond what the schema provides, so the baseline of 3 is appropriate.

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 clearly states the tool retrieves statistics for multiple channels and lists specific metrics. The verb 'retrieves' and resource 'statistics for multiple channels' are specific. It distinguishes from sibling tools like getChannelTopVideos and getVideoDetails by focusing on batch channel statistics.

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 explicit usage context: 'Use this when you need to analyze the performance and reach of multiple YouTube channels.' It does not mention when not to use or provide alternatives, but the guidance is clear and actionable.

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

getChannelTopVideosA
Read-onlyIdempotent
Inspect

Retrieves a channel's most popular videos. CRITICAL: Requires a valid channelId (starting with 'UC...'), NOT a channel handle or name. Use searchVideos (type='channel') first to find the channelId if you only have a name.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesYouTube channel ID to get top videos from
maxResultsNoMaximum number of top videos to return (1-500, default: 10)
includeTagsNoSpecify 'true' to include the video's 'tags' array in the response, which is useful for extracting niche keywords. The 'tags' are omitted by default to conserve tokens.
descriptionDetailNoControls video description detail to manage token cost. Options: 'NONE' (default, no text), 'SNIPPET' (a brief preview for broad scans), 'LONG' (a 500-char text for deep analysis of specific targets).NONE

TDQS

A4.8/5.0
Behavior5/5

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

Beyond readOnlyHint and idempotentHint annotations, description adds critical detail about channelId format ('UC...'), token cost management via includeTags and descriptionDetail parameters, and default behaviors.

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?

Description is efficient, front-loaded with purpose, uses 'CRITICAL' emphasis for key constraint, and every sentence adds necessary information without redundancy.

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?

Covers main behavioral aspects, token management, and ID constraint, but lacks explicit description of the output structure (e.g., video attributes), which is acceptable given no output schema.

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?

All parameters are described in schema (100% coverage), but description adds extra context: channelId format constraint, token conservation for includeTags and descriptionDetail, and explanation of options.

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?

Description clearly states 'Retrieves a channel's most popular videos' with a specific verb and resource, and distinguishes from sibling tool searchVideos by explaining the channelId requirement.

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

Usage Guidelines5/5

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

Explicitly states when to use (with valid channelId), when not to use (handle/name), and references searchVideos as alternative to obtain channelId, providing clear usage boundaries.

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

getTranscriptsA
Read-onlyIdempotent
Inspect

Retrieves specific, meaningful segments of a video's transcript. By default, it returns the intro 'hook' and the final 'outro' or call to action. It can also return the full transcript text. Use this to efficiently analyze a video's key messaging.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage code for transcripts (e.g., 'en', 'ko', 'es'). Defaults to environment setting or 'en'en
formatNoThe desired transcript format. 'full_text': Returns the entire transcript as a single string. 'key_segments': (Default) Returns only the video's intro hook and final call to action.key_segments
videoIdsYesArray of YouTube video IDs to get transcripts for

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that by default it returns intro hook and outro, and can return full text. No contradictions; it enriches understanding of tool 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?

Two sentences, clear and front-loaded. First sentence defines action, second lists outputs and purpose. No unnecessary words.

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?

Given no output schema, the description covers default behavior, alternatives, and use case. It could mention return structure (e.g., 'array of segments') for completeness, but current info is sufficient for basic understanding.

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?

Schema coverage is 100%. The description adds meaning beyond schema by explaining what 'key_segments' entails (hook and outro) and the tool's purpose. This provides value beyond the parameter 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?

The description clearly states it retrieves specific transcript segments (hook and outro) or full text, using verbs like 'retrieves' and 'returns'. It distinguishes from siblings like getVideoDetails or searchVideos by focusing on transcript analysis.

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 says 'Use this to efficiently analyze a video's key messaging', providing clear context. However, it does not explicitly state when not to use it or compare to sibling tools, though siblings are unrelated.

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

getTrendingVideosA
Read-onlyIdempotent
Inspect

Retrieves trending videos based on region and category. Returns a list of videos that are currently popular in the specified region and category. Use this when you want to discover what's trending in specific areas or categories. To get available category IDs and their names, use the getVideoCategories tool first.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryIdNoYouTube category ID to filter trending videos by category. Use getVideoCategories tool to get available category IDs.
maxResultsNoMaximum number of trending videos to return (1-500, default: 10)
regionCodeNoTwo-letter country code (e.g., 'US', 'GB', 'JP'). Defaults to 'US'US

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description 'Retrieves' is consistent. No additional behavioral details beyond annotations, but no contradiction.

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?

Three sentences, each purposeful: action, usage instruction, and sibling tool reference. No unnecessary words.

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?

Adequate for a simple listing tool with no output schema. Provides necessary context to use with getVideoCategories. Missing details on pagination or default behavior, but sufficient for agent selection.

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

Parameters3/5

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

Schema coverage is 100%, and description adds value by mentioning the need to use getVideoCategories for categoryId, but does not elaborate on parameter formats or constraints beyond 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?

Clear verb 'Retrieves trending videos' specifies action and resource. Distinguishes from sibling tools like getVideoCategories and searchVideos by focusing on trending content.

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?

Explicitly says 'Use this when you want to discover what's trending' and directs to use getVideoCategories first for category IDs. Does not specify when not to use it, but provides clear usage context.

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

getVideoCategoriesA
Read-onlyIdempotent
Inspect

Retrieves available video categories for a specific region. Returns a list of YouTube video categories with their IDs and titles that can be used for filtering trending videos or other category-specific operations. Different regions may have different available categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionCodeNoTwo-letter country code (e.g., 'US', 'GB', 'JP'). Defaults to 'US'US

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds no additional behavioral context beyond what annotations provide. It does not mention rate limits, caching, or any side effects.

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?

Three sentences front-load the core purpose, then add return details and regional context. No redundant or unnecessary words, each sentence earns its place.

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?

Given the tool has only one simple parameter and annotations cover safety, the description is mostly complete. It could mention that categories are generally static per region, but it is sufficient for an agent to understand and use the tool.

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

Parameters3/5

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

Schema coverage is 100%; the description adds no meaning beyond the schema. It mentions region-specific categories, but that is already conveyed by the parameter description. Baseline score is appropriate.

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 clearly states the tool retrieves available video categories for a specific region, specifying it returns categories with IDs and titles for filtering. It distinguishes itself from sibling tools like getTrendingVideos by focusing on categories, not video content.

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 filtering trending videos or category-specific operations but does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusions or alternative tool names are provided.

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

getVideoCommentsA
Read-onlyIdempotent
Inspect

Retrieves comments for a video. Warning: Setting maxReplies > 0 significantly increases API cost. Only set maxReplies if you specifically need to analyze conversation threads. Defaults to top-level comments only.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort order for comments. Use 'relevance' (default) for most helpful or 'time' for newest.relevance
videoIdYesThe 11-character ID of the YouTube video.
maxRepliesNoMax replies per comment to return (0-5, default: 0). Use 0 for best performance.
maxResultsNoMax number of top-level comments to return (1-100, default: 20).
commentDetailNoDetail level for comment text. 'SNIPPET' (default, 200 chars) or 'FULL' (entire text).SNIPPET

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description confirms this by noting it's a retrieval operation. Additionally, it warns about increased API cost when setting maxReplies > 0, which is valuable beyond annotations.

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?

Three sentences with no unnecessary words. Front-loaded with purpose, followed by a critical warning, then a usage guideline. Every sentence serves a purpose.

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?

Given 5 parameters (all documented in schema), annotations covering read-only/idempotent, and no output schema, the description is fairly complete. It could mention the return format (e.g., list of comment objects), but the core information is present.

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?

Schema coverage is 100%, so baseline is 3. The description adds a cost warning for maxReplies and notes default behavior, slightly increasing value. However, it doesn't elaborate on other parameters beyond what's in the 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 clearly states 'Retrieves comments for a video' with a specific verb and resource. It distinguishes from siblings like getVideoDetails or searchVideos by focusing on comments. The warning about maxReplies and default behavior further clarifies scope.

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?

Provides explicit guidance on when to use maxReplies ('only if you specifically need to analyze conversation threads') and defaults to top-level comments. Lacks explicit when-not-to-use compared to other tools, but the purpose is sufficiently distinct.

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

getVideoDetailsA
Read-onlyIdempotent
Inspect

Get detailed information about multiple YouTube videos. Returns comprehensive data including video metadata, statistics, and content details. Use this when you need complete information about specific videos.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoIdsYesArray of YouTube video IDs to get details for
includeTagsNoSpecify 'true' to include the video's 'tags' array in the response, which is useful for extracting niche keywords. The 'tags' are omitted by default to conserve tokens.
descriptionDetailNoControls video description detail to manage token cost. Options: 'NONE' (default, no text), 'SNIPPET' (a brief preview for broad scans), 'LONG' (a 500-char text for deep analysis of specific targets).NONE

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark as read-only and idempotent. Description adds value by detailing token conservation behavior for tags and descriptionDetail, which is not in annotations.

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?

Two concise sentences, front-loaded with purpose, no redundant words. Every sentence adds value.

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?

No output schema, but description mentions return types (metadata, statistics, content details). Could specify exact fields but is sufficient for agent understanding.

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?

Schema coverage is 100%, so parameters are documented. Description adds important context about token optimization for includeTags and descriptionDetail, aiding cost-aware usage.

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 clearly states the tool retrieves detailed information about multiple YouTube videos, including metadata, statistics, and content details. It distinguishes from sibling tools focused on channels, transcripts, or searches.

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?

Explicitly says to use when needing complete information about specific videos. Lacks explicit when-not-to-use instructions, but context is clear given sibling tools.

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

searchVideosA
Read-onlyIdempotent
Inspect

Universal search tool for YouTube content. Use this to find videos (default) or channels. To find a specific content creator, you MUST set type to 'channel'. Supports filtering by recency (e.g., 'pastWeek') and videoDuration. Returns videoId or channelId needed for other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoType of content to search for (default: video)
orderNoSort order for results (default: relevance)
queryYesSearch query string to find videos
recencyNoFilter by recency. Possible values: 'any', 'pastHour', 'pastDay', 'pastWeek', 'pastMonth', 'pastQuarter', 'pastYear'.
channelIdNoRestrict search to specific channel ID
maxResultsNoMaximum number of results to return (1-500, default: 10)
regionCodeNo2-letter country code to restrict results
videoDurationNoFilter by video duration. 'any' (default): no duration filter. 'short': videos less than 4 minutes. 'medium': videos 4 to 20 minutes. 'long': videos longer than 20 minutes.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. The description adds value by specifying that the tool returns videoId or channelId needed for other tools and mentions filtering capabilities, providing context beyond annotations.

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 with three sentences, each adding value: first sentence states purpose, second gives specific usage guidance, third notes return values. No fluff, well front-loaded.

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?

Given the parameter count and schema richness, the description explains return IDs and filtering. It lacks pagination details or full response structure, but is sufficient for a search tool with good schema documentation.

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

Parameters3/5

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

Schema coverage is 100% with well-described parameters. The description adds minimal extra meaning beyond the schema, such as emphasizing that 'type' must be set to 'channel' for channel searches, but overall does not significantly enhance parameter understanding.

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 clearly states it is a universal search tool for YouTube content, explicitly distinguishing between searching for videos (default) and channels. It also mentions returning IDs needed for other tools, which sets it apart from sibling tools that are more specialized.

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 guidance on when to use this tool (finding videos or channels) and explicitly instructs to set 'type' to 'channel' for content creators. It implies when not to use it by the existence of sibling tools for specific tasks, but lacks explicit exclusions.

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. Dates show when Glama detected each change.

  1. 9 tool updatesv1.1.5
    • AddedfindConsistentOutlierChannels
    • ChangedgetChannelStatistics1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • ChangedgetChannelTopVideos1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • ChangedgetTranscripts1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • ChangedgetTrendingVideos1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • ChangedgetVideoCategories1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • ChangedgetVideoComments1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • ChangedgetVideoDetails1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • ChangedsearchVideos1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 8 tool updatesv1.0.0
    • First observedgetChannelStatistics
    • First observedgetChannelTopVideos
    • First observedgetTranscripts
    • First observedgetTrendingVideos
    • First observedgetVideoCategories
    • First observedgetVideoComments
    • First observedgetVideoDetails
    • First observedsearchVideos

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct aspect of YouTube data: channels (statistics, top videos, outlier discovery), videos (details, comments, transcripts, trending), search (videos/channels), and categories. There is no overlap; even searchVideos and getTrendingVideos serve different use cases.

Naming Consistency5/5

All tool names follow a consistent camelCase pattern with descriptive verb+noun structure (e.g., getChannelStatistics, searchVideos). The naming is predictable and clear.

Tool Count5/5

9 tools is appropriate for a YouTube analysis server. It covers essential operations without being excessive, offering a focused set that includes search, channel/video details, transcripts, comments, trending, and a unique discovery tool.

Completeness4/5

The tool set covers core YouTube analysis needs: search, channel statistics, video details, transcripts, comments, trending, and categories. Minor missing features like playlist management are not central to the server's apparent purpose, so the surface is largely complete.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server for intelligent YouTube video analysis that provides token-optimized summaries, sentiment analysis, and entity extraction from transcripts. It enables AI assistants to perform video reporting, channel monitoring, and comprehensive YouTube searches through structured data tools.
    10
    51
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Production-grade Model Context Protocol server for YouTube intelligence. Extract, analyze, and automate insights from YouTube channels and videos using the official YouTube Data API v3. Built for AI agents, automation pipelines, and content intelligence workflows.
    16
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Streamable HTTP MCP server for YouTube that enables video search, channel exploration, playlist browsing, and video detail retrieval via the YouTube Data API.
    27
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kirbah/mcp-youtube'

If you have feedback or need assistance with the MCP directory API, please join our Discord server