使用说明

项目简介

该项目是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于提供 YouTube 视频搜索功能。它通过 MCP 协议向客户端暴露一个名为 'youtube-research' 的工具,允许客户端根据指定的主题和关键词列表,检索 YouTube 平台上的短视频(时长小于1分钟)和长视频(时长1-35分钟)。此服务器旨在为 LLM 应用提供便捷的 YouTube 内容检索能力,作为其上下文信息来源或功能扩展。

主要功能点

  • YouTube 视频搜索工具: 提供 'youtube-research' 工具,用于根据主题和关键词在 YouTube 上进行深度搜索。
  • 短视频和长视频分类: 自动区分并返回短视频(小于1分钟)和长视频(1-35分钟)的搜索结果,满足不同场景的需求。
  • 基于关键词列表的搜索: 支持使用 2-4 个关键词组成的列表进行搜索,提高搜索的准确性和覆盖面。
  • MCP 标准协议: 完全遵循 MCP 协议规范,易于与任何兼容 MCP 协议的客户端集成。
  • Stdio 传输协议: 使用标准的 Stdio 作为传输协议,部署和运行简单方便。

安装步骤

  1. 克隆仓库

    git clone https://github.com/danhilse/youtube_research_mcp.git
    cd youtube_research_mcp
  2. 安装依赖 确保已安装 Node.js 和 npm,然后运行:

    npm install
  3. 配置 YouTube API 密钥

    • 在仓库根目录下创建 '.env' 文件。
    • 在 '.env' 文件中添加以下内容,并将 'YOUR_YOUTUBE_API_KEY' 替换为你的 YouTube Data API v3 密钥。你需要先在 Google Cloud Console 中创建项目并启用 YouTube Data API v3,然后创建 API 密钥。
      YOUTUBE_API_KEY=YOUR_YOUTUBE_API_KEY
  4. 启动服务器 运行以下命令启动 MCP 服务器:

    npm start

    服务器成功启动后,会在控制台输出 'YouTube Research MCP Server running on stdio'。

服务器配置

以下 JSON 配置信息用于 MCP 客户端连接到此 MCP 服务器。客户端需要配置 'command' 和 'args' 以启动服务器进程。

{
  "serverName": "youtube-research-server",
  "command": "npm",
  "args": ["start"]
}

配置参数说明:

  • 'serverName': 服务器名称,此处为 "youtube-research-server"。
  • 'command': 启动服务器的命令,此处使用 'npm' 命令。
  • 'args': 传递给 'command' 的参数列表,此处使用 '["start"]',即运行 'npm start' 命令,该命令在 'package.json' 中被配置为启动服务器脚本。

基本使用方法

  1. 启动 MCP 客户端: 确保你已经有一个兼容 MCP 协议的客户端应用。
  2. 配置服务器连接: 在 MCP 客户端中,根据上述“服务器配置”部分的信息配置连接到 'youtube-research-server'。客户端会通过 Stdio 与服务器建立连接。
  3. 列出可用工具: 客户端可以调用 'ListTools' 方法从服务器获取可用工具列表。服务器会返回包含 'youtube-research' 工具的描述信息。
  4. 调用 youtube-research 工具:
    • 客户端调用 'CallTool' 方法,指定 'tool_name' 为 'youtube-research'。
    • 在 'arguments' 参数中,提供以下信息:
      • 'topic': 要研究的主题 (字符串)。
      • 'queries': 搜索关键词列表 (字符串数组,包含 2-4 个关键词)。
    • 例如,客户端发送如下 JSON-RPC 请求 (CallToolRequest):
      {
        "jsonrpc": "2.0",
        "method": "CallTool",
        "params": {
          "name": "youtube-research",
          "arguments": {
            "topic": "artificial intelligence in education",
            "queries": ["AI education", "AI learning tools", "AI in classroom"]
          }
        },
        "id": 1
      }
  5. 接收搜索结果: 服务器会执行 YouTube 搜索,并将结果以 JSON-RPC 响应的形式返回给客户端。返回结果会包含搜索状态、当前查询、搜索结果(短视频和长视频列表)、剩余查询列表以及搜索进度等信息。根据搜索进度,客户端可能需要多次调用 'CallTool' 方法 (例如,使用 'continueResearch' 工具,虽然代码中没有直接体现 'continueResearch' 作为一个单独的 tool,但逻辑上服务器端会在 'youtube-research' 工具的多次调用中持续进行搜索)。

通过以上步骤,LLM 客户端即可利用 'youtube-research-server' 提供的 YouTube 视频搜索能力。

信息

分类

网页与API