YouTube Data

io.github.kirbah由 GitHub 帳號 kirbah 發布v1.1.16更新於 Nov 3, 2026

YouTube MCP server for token-optimized, structured data using the YouTube Data API v3.

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理取得精簡過的 YouTube 資料:影片詳情、搜尋、字幕、頻道統計、熱門與留言。

可以做什麼
  • 搜尋影片與頻道,取得精簡的影片詳情、統計與互動比率
  • 取得字幕,可選全文或僅開頭/結尾關鍵片段,並支援指定語言
  • 取得頻道統計、頻道熱門影片、依地區與分類的熱門影片以及分類清單
  • 取得影片留言,支援排序、限制數量並附帶少量回覆
  • 在特定領域中找出持續表現超常的頻道(需要 MongoDB 連線)
適用情境
適合需要分析 YouTube 內容、摘要或引用影片字幕、調查特定領域、比較頻道,或取得熱門與留言資料,同時避免把原始 API 大量資料塞滿上下文視窗的情境。
執行需求
透過 npx 在本機執行,需要 Node.js 22 以上版本。在 YOUTUBE_API_KEY 提供 YouTube Data API v3 金鑰可解鎖搜尋與分析功能;僅取字幕不需金鑰。選用的 MongoDB 連線字串 MDB_MCP_CONNECTION_STRING 可啟用快取與超常頻道工具。需要能連線至 YouTube API 的網路。
安裝前請注意
需要 Google Cloud API 金鑰(YOUTUBE_API_KEY),選用 MongoDB 連線字串(MDB_MCP_CONNECTION_STRING),兩者皆為機密,不應提交至程式碼倉庫。呼叫會消耗 YouTube Data API 每日配額,搜尋類工具開銷較大(每次約 100 單位)。查詢詞與領域詞會傳送給 YouTube,啟用快取時也會存入你的 MongoDB。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 YouTube Data,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

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

[MCP Toplist]

[CI Status] [Code Coverage] [NPM Version] [NPM Downloads] [Node.js Version Support]

[圖片]

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.

mermaid
%%{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 MethodRaw YouTube TokensMCP-YouTube TokensToken SavingsData Size
getChannelStatistics67386~87% Less1.9 KB ➔ 0.2 KB
getVideoDetails854209~75% Less2.9 KB ➔ 0.6 KB
searchVideos1115402~64% Less3.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.

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:

json
{  "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.
json
{  "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:[email protected]/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 NameDescriptionParameters (see details in tool schema)
getVideoDetailsRetrieves detailed, lean information for multiple YouTube videos including metadata, statistics, engagement ratios, and content details.videoIds (array of strings)
searchVideosSearches 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.
getTranscriptsRetrieves 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')
getChannelStatisticsRetrieves lean statistics for multiple channels (subscriber count, view count, video count, creation date).channelIds (array of strings)
getChannelTopVideosRetrieves a list of a channel's top-performing videos with lean details and engagement ratios.channelId (string), maxResults (optional number)
getTrendingVideosRetrieves 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)
getVideoCategoriesRetrieves available YouTube video categories (ID and title) for a specific region, providing essential data only.regionCode (optional string)
getVideoCommentsRetrieves 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)
findConsistentOutlierChannelsIdentifies 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 >=22.0.0)
  • npm (usually comes with Node.js)
  • A YouTube Data API v3 Key (see YouTube API Setup)

Local Setup

  1. Clone the repository:

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

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

    bash
    cp .env.example .env

    Then, edit .env to add your YOUTUBE_API_KEY:

    YOUTUBE_API_KEY=your_youtube_api_key_hereMDB_MCP_CONNECTION_STRING=your_mongodb_connection_string_here

Development Scripts

bash
# Run in development mode with live reloadingnpm run dev
# Build for productionnpm run build
# Run the production build (after npm run build)npm start
# Lint filesnpm run lint
# Run testsnpm run testnpm run test -- --coverage # To generate coverage reports
# Inspect MCP server using the Model Context Protocol Inspectornpm 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.:

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

    json
    {  "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: >=22.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.

來源:README.md,提交 ba2b18b

工具

1

getTranscripts

Get Transcripts

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.

輸入參數langformatvideoIds必填

版本歷史

3
  1. v1.1.16最新Nov 1, 2026
  2. v1.1.15Oct 11, 2026
  3. v1.1.14Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分