YouTube Data MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • 这是一个基于 MCP(Model Context Protocol)的后端服务器实现,专注于提供 YouTube 数据相关的资源、工具和提示模板,便于将 YouTube 数据高效对接到 LLM 场景中。代码采用 TypeScript 编写,遵循类驱动的工具、依赖注入和严格类型安全的设计模式,并具备缓存、数据库及多种传输方式的支持框架。
  • 主要功能点

    • 资源(Resources):提供可读取的资源对象(如 YouTube Transcript 等),通过统一接口返回简洁、可解析的内容。
    • 工具(Tools):提供一组 lean 的 MCP 工具,如获取视频详情、搜索视频、获取转录、获取频道统计、获取频道顶级视频、获取趋势视频、获取分类、获取视频评论,以及可选需 MongoDB 支持的出线渠道分析工具等。
    • 提示模板(Prompts):定义并渲染用于引导与 MCP 客户端交互的提示模板,例如对 niche 的深度分析提示。
    • MCP 服务器实现:通过 MCP SDK 搭建的服务器,支持 JSON-RPC 风格的请求/响应,具备会话管理、能力声明与资源/工具的注册、渲染等能力。
    • 缓存与数据库:可选使用 MongoDB 作为缓存层,提供 TTL、集合分区管理,以及按需排除字段以减少 token 成本。
    • 多传输协议(如 STDIO、HTTP/WS 等)的基础结构,当前示例以 STDIO 传输演示与运行。
  • 使用安装步骤

    • 环境要求
      • Node.js 版本:>= 20
    • 安装依赖
      • 直接克隆仓库后执行 npm ci 安装依赖
    • 配置环境
      • YouTube Data API v3 Key(YOUTUBE_API_KEY,用于访问 YouTube API)
      • MongoDB 连接字符串(MDB_MCP_CONNECTION_STRING,选用时用于缓存和分析数据;未提供时服务器以无数据库模式运行,性能会较低且 API 调用成本提升)
    • 运行方式
      • 该项目实现了一个 MCP 服务器,正常运行时通常通过与 MCP 客户端配合启动。MCP 客户端需要配置服务器的启动命令和参数来连接 MCP 服务器。当前实现示例通过标准输入输出传输(STDIO)与 MCP 客户端进行通信。
    • 运行示例(简述,不给出具体代码块)
      • 先在环境变量中设置 YOUTUBE_API_KEY,并按需设置 MDB_MCP_CONNECTION_STRING。
      • 使用 MCP 客户端启动配置连接此 MCP 服务器(客户端需要的不是服务器本身的代码,而是启动服务器所需的命令及参数)。
      • 服务启动后,客户端即可通过 MCP 的接口调用资源、工具、以及渲染 Prompts 等。
  • 服务器配置(供 MCP 客户端配置使用的 JSON 形式信息说明)

    • server 名称(name):YouTube
    • command(启动命令):npx
    • args(启动参数):-y、@kirbah/mcp-youtube
    • 环境变量(env,示例说明):
      • YOUTUBE_API_KEY:用于访问 YouTube 数据的 API Key
      • MDB_MCP_CONNECTION_STRING:MongoDB 连接字符串(如使用,会创建并使用名为 youtube_niche_analysis 的数据库)
    • 说明:MCP 客户端需要将上述信息以 JSON 的形式提供,以便正确启动并连接到 MCP 服务器。该 JSON 仅用于客户端配置示例,实际部署时请按需替换 Key 与连接信息。
  • 基本使用方法

    • 通过 MCP 客户端连接:将服务器的启动信息(name、command、args、env 等)配置到 MCP 客户端中,客户端启动后即可向 MCP 服务器发起请求,读取资源、执行工具、获取 Prompts。
    • 常见操作流程:配置好 API Key 和数据库后,客户端可以调用工具以获取 lean 数据、注册并执行工具、调用 Prompts 来生成适合 LLM 的对话或分析内容、以及通过资源读取相关信息(如 transcript、视频详情等)。
    • 性能与安全:服务器尽量返回 lean、token 友好的数据结构,部分工具可以使用 MongoDB 缓存以降低 API 调用成本;对外暴露的输入均通过 Zod 进行严格校验与错误处理,确保稳定性。
  • 注意事项

    • 使用 MongoDB 的工具如 findConsistentOutlierChannels 等需要 MDB_MCP_CONNECTION_STRING 配置正确,且数据库具备相应权限。
    • YouTube API 调用会产生配额消耗,请关注 API 限额与消耗明细。
  • 运行与维护

    • 提供了基于 Jest 的单元测试覆盖各组件,帮助确保工具、资源、Prompts 等模块的正确性。
    • 提供了本地开发与调试的指引,便于开发者扩展工具和 Prompts。
  • 参考与扩展

    • MCP TypeScript Starter 为进一步扩展工具与资源提供了示例性架构,建议结合该 starter 进行自定义扩展。

服务器信息