ai.smithery/kirbah-mcp-youtube MCP Server
ai.smithery/kirbah-mcp-youtube
Token-optimized YouTube data for AI agents—save 87% on context, protect API quotas with caching.
What is the ai.smithery/kirbah-mcp-youtube MCP server?
The YouTube Data MCP server is a production-grade tool that provides structured, token-efficient YouTube data to AI agents. It strips away YouTube API bloat to save up to 87% on context tokens, includes optional MongoDB caching to protect daily API quotas, and offers tools for video search, transcripts, channel analytics, trending discovery, and comment retrieval.
This server delivers lean, AI-optimized access to YouTube data without the redundant payloads of standard API wrappers. It's built for reliable daily agentic workflows with 97% test coverage, zero-config transcript access, and smart caching. Use it to search videos, analyze channels, fetch transcripts, find trending content, and identify outlier channels in your niche—all while minimizing token consumption and API quota drain.
How to install ai.smithery/kirbah-mcp-youtube
Copy-paste configuration for popular MCP clients.
AuthorizationBearer token for Smithery authentication
Tools & capabilities
Tools this server exposes to the agent.
getVideoDetails— Retrieves detailed, lean information for multiple YouTube videos including metadata, statistics, engagement ratios, and content details.searchVideos— Searches for videos or channels based on a query string with various filtering options, returning concise results.getTranscripts— Retrieves token-efficient transcripts (captions) for multiple videos, with options for full text or key segments (intro/outro).getChannelStatistics— Retrieves lean statistics for multiple channels (subscriber count, view count, video count, creation date).getChannelTopVideos— Retrieves a list of a channel's top-performing videos with lean details and engagement ratios.getTrendingVideos— Retrieves a list of trending videos for a given region and optional category, with lean details and engagement ratios.getVideoCategories— Retrieves available YouTube video categories (ID and title) for a specific region, providing essential data only.getVideoComments— Retrieves comments for a YouTube video with sorting, result limiting, and optional reply fetching.findConsistentOutlierChannels— Identifies channels that consistently perform as outliers within a specific niche (requires MongoDB connection).
Use cases
- Search and analyze YouTube videos with minimal token overhead to find content relevant to your niche
- Fetch video transcripts for content analysis, summarization, or sentiment analysis without API quota cost
- Retrieve channel statistics and top-performing videos to benchmark competitors or discover emerging creators
- Find trending videos by region and category to stay current with audience interests
- Identify consistently high-performing outlier channels within your niche using MongoDB-backed analysis
ai.smithery/kirbah-mcp-youtube MCP server FAQ
It's an MCP server that provides token-optimized access to YouTube data (videos, channels, transcripts, comments, trends) designed specifically for AI agents. It saves up to 87% on context tokens compared to raw YouTube API responses.
No—you can use zero-config mode immediately to fetch transcripts without an API key. Add a YouTube Data API v3 key to unlock search, video details, channel stats, trending videos, and comments.
In Claude Desktop, click 'Add to Claude Desktop' on the Glama server page. For manual setup, add the server to your config with `npx -y @kirbah/mcp-youtube` as the command, and optionally set YOUTUBE_API_KEY and MDB_MCP_CONNECTION_STRING environment variables.
The server itself is free and open-source. YouTube Data API calls have a daily quota (10,000 units). Most tools cost 1 unit per call; searchVideos costs 100 units. Optional MongoDB caching (free tier available) can reduce quota usage by serving cached results.
MongoDB caching stores previous API responses so repeated requests (e.g., same video details or trending videos) are served from the database at zero API quota cost. This protects your daily limit from agent loops or re-queries.
Yes. Clone the repository, install dependencies with `npm ci`, set up your .env file with YOUTUBE_API_KEY, and run `npm run dev` for live reloading or `npm start` for production mode.
README (reference)
Source of truth, from the repository.
YouTube Data MCP Server (@kirbah/mcp-youtube)
<!-- Badges Start --> <p align="left"> <!-- GitHub Actions CI --> <a href="https://github.com/kirbah/mcp-youtube/actions/workflows/ci.yml"> <img src="https://github.com/kirbah/mcp-youtube/actions/workflows/ci.yml/badge.svg" alt="CI Status" /> </a> <!-- Codecov --> <a href="https://codecov.io/gh/kirbah/mcp-youtube"> <img src="https://codecov.io/gh/kirbah/mcp-youtube/branch/main/graph/badge.svg?token=Y6B2E0T82P" alt="Code Coverage"/> </a> <!-- NPM Version --> <a href="https://www.npmjs.com/package/@kirbah/mcp-youtube"> <img src="https://img.shields.io/npm/v/@kirbah/mcp-youtube.svg" alt="NPM Version" /> </a> <!-- NPM Downloads --> <a href="https://www.npmjs.com/package/@kirbah/mcp-youtube"> <img src="https://img.shields.io/npm/dt/@kirbah/mcp-youtube.svg" alt="NPM Downloads" /> </a> <!-- Node Version --> <a href="package.json"> <img src="https://img.shields.io/node/v/@kirbah/mcp-youtube.svg" alt="Node.js Version Support" /> </a> </p> <a href="https://glama.ai/mcp/servers/@kirbah/mcp-youtube"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@kirbah/mcp-youtube/badge" /> </a> <!-- Badges End -->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 lintpasses 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.
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:
- Get a YouTube Data API v3 Key (See Setup Instructions below).
- (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, andgetTrendingVideoscost only 1 unit per call. ThegetTranscriptstool has 0 API cost. The newgetVideoCommentstool has a variable cost: the base call is 1 unit, but if you request replies (by settingmaxReplies > 0), it costs an additional 1 unit for each top-level comment it fetches replies for. The search-based tools are the most expensive:searchVideoscosts 100 units andgetChannelTopVideoscosts 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.jsonengines field - currently>=22.0.0) - npm (usually comes with Node.js)
- A YouTube Data API v3 Key (see YouTube API Setup)
Local Setup
-
Clone the repository:
git clone https://github.com/kirbah/mcp-youtube.git cd mcp-youtube -
Install dependencies:
npm ci -
Configure Environment: Create a
.envfile in the root by copying.env.example:cp .env.example .envThen, edit
.envto add yourYOUTUBE_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):
-
Ensure you have a script in
package.jsonfor a non-watching start, e.g.:"scripts": { "start:client": "tsx ./src/index.ts" } -
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
- Go to the Google Cloud Console.
- Create a new project or select an existing one.
- In the navigation menu, go to "APIs & Services" > "Library".
- Search for "YouTube Data API v3" and Enable it for your project.
- Go to "APIs & Services" > "Credentials".
- Click "+ CREATE CREDENTIALS" and choose "API key".
- Copy the generated API key. This is your
YOUTUBE_API_KEY. - 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:
>=22.0.0(as specified inpackage.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:
-
Candidate Search (Phase 1):
- Uses the provided
queryto search for relevant videos and channels on YouTube. - Filters initial results based on
videoCategoryIdandregionCodeif specified. - Collects a broad set of potential channels for deeper analysis.
- Uses the provided
-
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.
-
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).
-
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_KEYis sensitive. Never commit it directly to your repository. Use environment variables (e.g., via a.envfile 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.
Related MCP servers

ai.smithery/kkjdaniel-bgg-mcp
Access BoardGameGeek data, prices, and recommendations through AI with search, collections, and rules tools.
Send friendly, personalized greetings on demand. Generate quick salutations with a simple prompt.…
Run SOQL queries to explore and retrieve Salesforce data. Inspect records, fields, and relationshi…
Run SOQL queries against your Salesforce org to explore and retrieve data. Quickly iterate on filt…
Run SOQL queries to explore and retrieve Salesforce data. Access accounts, contacts, opportunities…
Run SOQL queries against your Salesforce org to retrieve records and insights. Explore objects, fi…
