Y

YouTube模型上下文协议服务器

@coyaSONG/youtube-mcp-server
1 Stars 572 次浏览 coyaSONG 更新于 2026-08-23

一个通过模型上下文协议(Model Context Protocol)启用与YouTube数据交互的服务器,允许用户搜索视频、检索有关视频/频道的详细信息以及获取评论。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

YouTube MCP 服务器

smithery 徽章

这是一个用于与 YouTube 数据交互的 Model Context Protocol (MCP) 服务器。该服务器提供了通过 stdio 接口查询 YouTube 视频、频道、评论和字幕的资源和工具。

功能

  • 通过高级过滤选项搜索 YouTube 视频
  • 获取特定视频和频道的详细信息
  • 比较多个视频的统计数据
  • 按地区和类别发现热门视频
  • 分析频道表现和视频统计数据
  • 检索视频评论和字幕/说明
  • 生成视频分析和字幕摘要

前提条件

  • Node.js (v16+)
  • YouTube Data API 密钥

安装

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 YouTube MCP 服务器:

npx -y @smithery/cli install @coyaSONG/youtube-mcp-server --client claude

手动安装

  1. 克隆此仓库:

    git clone https://github.com/coyaSONG/youtube-mcp-server.git
    cd youtube-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 在根目录中创建一个 .env 文件:

    YOUTUBE_API_KEY=your_youtube_api_key_here
    PORT=3000
    

使用

构建和运行

  1. 构建项目:

    npm run build
    
  2. 运行服务器:

    npm start
    
  3. 以开发模式运行:

    npm run dev
    
  4. 清理构建产物:

    npm run clean
    

Docker 部署

该项目包含一个用于容器化部署的 Dockerfile:

# Build the Docker image
docker build -t youtube-mcp-server .

# Run the container
docker run -p 3000:3000 --env-file .env youtube-mcp-server

API 参考

资源

  • youtube://video/{videoId} - 获取特定视频的详细信息
  • youtube://channel/{channelId} - 获取特定频道的信息
  • youtube://transcript/{videoId} - 获取特定视频的字幕
    • 可选查询参数:?language=LANGUAGE_CODE(例如,en, ko, ja

工具

基本工具

  • search-videos - 通过高级过滤选项搜索 YouTube 视频
  • get-video-comments - 获取特定视频的评论
  • get-video-transcript - 获取特定视频的字幕,并可选择语言
  • enhanced-transcript - 提供过滤、搜索和多视频功能的高级字幕提取
  • get-key-moments - 从视频字幕中提取带有时间戳的关键时刻,以便于导航
  • get-segmented-transcript - 将视频字幕分成段落,便于分析

统计工具

  • get-video-stats - 获取特定视频的统计信息
  • get-channel-stats - 获取订阅者数量、观看次数等频道统计数据
  • compare-videos - 比较多个视频的统计数据

发现工具

  • get-trending-videos - 按地区和类别检索热门视频
  • get-video-categories - 获取特定地区的可用视频类别

分析工具

  • analyze-channel-videos - 分析特定频道视频的表现趋势

提示词

  • video-analysis - 生成YouTube视频的分析报告
  • transcript-summary - 根据视频的文字记录生成摘要,可自定义长度和关键词提取
  • segment-by-segment-analysis - 通过分析视频的每个片段提供详细的内容分解

示例

访问视频文字记录

youtube://transcript/dQw4w9WgXcQ

获取特定语言的文字记录

youtube://transcript/dQw4w9WgXcQ?language=en

使用统计工具

// Get video statistics
{
  "type": "tool",
  "name": "get-video-stats",
  "parameters": {
    "videoId": "dQw4w9WgXcQ"
  }
}

// Compare multiple videos
{
  "type": "tool",
  "name": "compare-videos",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"]
  }
}

使用文字记录摘要提示

{
  "type": "prompt",
  "name": "transcript-summary",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "language": "en"
  }
}

使用增强型文字记录工具

// Basic multi-video transcript extraction
{
  "type": "tool",
  "name": "enhanced-transcript",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"],
    "format": "timestamped"
  }
}

// With search and time filtering
{
  "type": "tool",
  "name": "enhanced-transcript",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ"],
    "filters": {
      "timeRange": {
        "start": 60,  // Start at 60 seconds
        "end": 180    // End at 180 seconds
      },
      "search": {
        "query": "never gonna",
        "contextLines": 2
      }
    },
    "format": "merged"
  }
}

// With smart segmentation for easier analysis
{
  "type": "tool",
  "name": "enhanced-transcript",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ"],
    "filters": {
      "segment": {
        "count": 5,
        "method": "smart"  // Breaks at natural pauses
      }
    },
    "format": "timestamped",
    "language": "en"
  }
}

使用增强型文字记录分析功能

// Get key moments from a video
{
  "type": "tool",
  "name": "get-key-moments",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "maxMoments": "5"
  }
}

// Get a segmented transcript
{
  "type": "tool",
  "name": "get-segmented-transcript",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "segmentCount": "4"
  }
}

// Get a segment-by-segment analysis
{
  "type": "prompt",
  "name": "segment-by-segment-analysis",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "segmentCount": "4"
  }
}

// Get customized transcript summary
{
  "type": "prompt",
  "name": "transcript-summary",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "language": "en",
    "summaryLength": "detailed",
    "includeKeywords": "true"
  }
}

错误处理

服务器处理各种错误情况,包括:

  • 无效的API密钥
  • 视频或频道未找到
  • 文字记录不可用
  • 网络问题

许可证

MIT

致谢

相关 MCP 服务