mcpField
Y
YouTube Data MCP Server

YouTube Data MCP Server

本地服务
github.com/diasm3媒体与设计241 周前更新

关于 YouTube Data MCP Server

YouTube Data MCP Server 为 MCP 客户端提供 YouTube 字幕、视频信息、评论和搜索功能,支持 Stdio 与 StreamableHTTP 传输方式。

主要功能

  1. 01提取字幕并可附时间戳
  2. 02获取视频元数据
  3. 03获取评论和回复
  4. 04搜索视频、频道和播放列表

适用场景

  1. 01按指定语言读取视频字幕
  2. 02查看并分页浏览视频评论
  3. 03查找 YouTube 视频、频道或播放列表

MCP 相关

这是一个 MCP 服务,提供字幕提取、元数据查询、评论与回复获取及 YouTube 搜索工具,支持 Stdio 和 StreamableHTTP 传输方式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"serpapi-youtube": {
"command": "npx",
"args": [
"-y",
"youtube-data-mcp"
],
"env": {
"SERPAPI_KEY": "<SERPAPI_KEY>"
}
}
}
}
启动命令npx -y youtube-data-mcp
需要配置的环境变量
SERPAPI_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmyoutube-data-mcp

工具

5

收录的工具列表 · 更新于 3 周前

参数类型必填说明
urlstring是YouTube 视频 URL 或 11 位视频 ID
langstring否语言代码(en、ko、ja、es 等)
includeTimestampsboolean否包含每个片段的开始时间和时长

详细介绍

YouTube Data MCP 服务

用于提取 YouTube 视频字幕、评论和搜索结果的模型上下文协议(MCP)服务。支持 Stdio 和 StreamableHTTP 两种传输方式。

功能

  • getTranscript - 提取字幕,可选择包含时间戳
  • getVideoInfo - 获取视频元数据(标题、观看次数、评论数)
  • getComments - 获取评论,支持分页和排序
  • getCommentReplies - 获取特定评论的回复
  • searchYoutube - 搜索视频、频道和播放列表

v2.0 新增内容

  • 双传输方式:Stdio(默认)+ StreamableHTTP,支持 Web 集成
  • 可靠的字幕提取:将 youtube-transcript 替换为 youtube-caption-extractor(绕过机器人检测,支持无服务器环境)
  • 时间戳支持:可选包含每个字幕片段的开始时间和时长
  • 模块化架构:清晰分离各项职责(配置、类型、服务、工具)
  • MCP SDK v1.25.2:最新 SDK,稳定性有所提升

要求

  • Node.js 18+
  • SerpAPI 密钥(用于搜索、评论和视频信息)

安装

git clone https://github.com/diasm3/serpapi-youtube-mcp-server.git
cd serpapi-youtube-mcp-server
npm install

配置

创建 .env 文件:

SERPAPI_KEY=your_serpapi_key_here
PORT=3000  # optional, for HTTP mode

前往 serpapi.com 获取 SerpAPI 密钥。

运行服务

# Build
npm run build

# Stdio mode (default) - for Claude Desktop, Cursor, etc.
npm start

# HTTP mode - for web applications
npm start -- --http
# or
MCP_TRANSPORT=http npm start
HTTP 端点

以 HTTP 模式运行时:

  • GET /health - 健康检查
  • POST /mcp - MCP 请求处理程序

MCP 客户端配置

Claude Desktop / Cursor
{
  "mcpServers": {
    "youtube-data": {
      "command": "node",
      "args": ["/path/to/serpapi-youtube-mcp-server/build/index.js"],
      "env": {
        "SERPAPI_KEY": "your_serpapi_key_here"
      }
    }
  }
}
使用 npx
{
  "mcpServers": {
    "youtube-data": {
      "command": "npx",
      "args": ["-y", "youtube-data-mcp"],
      "env": {
        "SERPAPI_KEY": "your_serpapi_key_here"
      }
    }
  }
}

API 工具

getTranscript

从 YouTube 视频中提取字幕。

参数类型必填说明
urlstring是YouTube URL 或视频 ID
langstring否语言代码(默认:'en')
includeTimestampsboolean否包含每个片段的开始时间和时长
Get the Korean transcript for https://youtube.com/watch?v=xxxxx with timestamps
getVideoInfo

使用 SerpAPI 获取视频元数据。

参数类型必填说明
urlstring是YouTube URL 或视频 ID

返回:标题、观看次数、发布日期、频道、评论数、分页令牌

getComments

获取视频评论,支持分页。

参数类型必填说明
urlstring有条件获取第一页时必填
limitnumber否评论数上限(默认:100)
sortstring否'relevance' 或 'time'
pageTokenstring否用于分页
getCommentReplies

获取特定评论的回复。

参数类型必填说明
pageTokenstring是评论中的 repliesToken
searchYoutube

在 YouTube 上搜索视频、频道和播放列表。

参数类型必填说明
querystring是搜索查询
limitnumber否结果数上限(默认:10)
glstring否国家代码(us、kr、jp)
hlstring否语言代码(en、ko、ja)
spstring否过滤参数
pageTokenstring否用于分页

项目结构

src/
├── index.ts          # Server entry (Stdio + HTTP)
├── config/           # Environment configuration
├── types/            # Zod schemas + TypeScript types
├── services/
│   ├── serpapi.ts    # SerpAPI integration
│   └── youtube.ts    # Transcript extraction
├── tools/            # MCP tool definitions
└── utils/            # Helper functions

故障排除

字幕不可用
  • 某些视频未启用字幕
  • 尝试使用其他语言代码(en、ko、ja 等)
  • 并非所有视频都提供自动生成的字幕
SerpAPI 错误
  • 确认 API 密钥有效
  • 检查 SerpAPI 配额和限制
  • 确认视频可公开访问
HTTP 模式无法启动
  • 检查 PORT 是否已被占用
  • 确认已设置环境变量

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。