使用说明

项目简介

本项目 'mcp-youtube-subtitles-extractor' 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,专注于从 YouTube 视频中提取字幕。它作为一个 MCP 服务器,向 LLM 客户端提供工具 (Tools),使得 LLM 可以通过调用这些工具获取指定 YouTube 视频的字幕信息,从而理解视频内容。

主要功能点

  • 字幕提取工具 (get_subtitle): 允许客户端指定 YouTube 视频链接和语言代码,服务器返回该视频指定语言的完整字幕文本。
  • 可用语言查询工具 (get_available_languages): 允许客户端查询指定 YouTube 视频可用的字幕语言列表。

通过这两个工具,LLM 应用可以方便地获取 YouTube 视频的字幕,用于视频内容总结、翻译、问答等多种下游任务。

安装步骤

  1. 安装 .NET 9 SDK: 请访问 https://dotnet.microsoft.com/download/dotnet/9.0 下载并安装 .NET 9 SDK。
  2. 安装 Azure Functions Core Tools: 参考 https://learn.microsoft.com/azure/azure-functions/functions-run-local?pivots=programming-language-csharp#install-the-azure-functions-core-tools 安装 Azure Functions Core Tools,以便本地运行函数应用。
  3. 克隆仓库: 使用 'git clone https://github.com/aliencube/mcp-youtube-subtitles-extractor' 命令克隆代码仓库到本地。
  4. 进入 Function App 目录: 使用 'cd mcp-youtube-subtitles-extractor/src/McpYouTubeSubtitlesExtractor.FunctionApp' 命令进入 Function App 目录。

服务器配置

MCP 客户端需要配置服务器信息才能连接到 'mcp-youtube-subtitles-extractor' 服务器。以下是本地运行和远程 Azure Function 部署的服务器配置示例。

本地运行配置

{
  "serverName": "youtube-subtitle-extractor-local",
  "command": "func",
  "args": ["start"],
  "description": "本地运行的 YouTube 字幕提取 MCP 服务器",
  "transport": "sse",
  "baseUrl": "http://localhost:7071/runtime/webhooks/mcp"
}
  • 'serverName': 服务器名称,客户端用于标识。
  • 'command': 启动服务器的命令,本地运行时使用 'func' (Azure Functions Core Tools 命令)。
  • 'args': 启动命令的参数,'start' 表示启动 Function App。
  • 'description': 服务器描述信息,方便客户端用户理解。
  • 'transport': 传输协议,本项目使用 'sse' (Server-Sent Events)。
  • 'baseUrl': 本地服务器的基础 URL,指向 Azure Functions 的 MCP 扩展 SSE 端点。

远程 Azure Function 配置

首先需要按照仓库 README 中的 "Run Azure Functions MCP server remotely" 步骤将项目部署到 Azure Function App。部署成功后,需要获取 Function App 的名称和 MCP 扩展的系统密钥。

获取 Function App 名称和系统密钥的步骤请参考仓库 README 文档。

配置示例 (请替换 '<functionapp-name>' 和 '<functions-mcp-extension-system-key>' 为实际值):

{
  "serverName": "youtube-subtitle-extractor-remote",
  "command": "none",
  "args": [],
  "description": "远程 Azure Function 部署的 YouTube 字幕提取 MCP 服务器",
  "transport": "sse",
  "baseUrl": "https://<functionapp-name>.azurewebsites.net/runtime/webhooks/mcp",
  "accessKey": "<functions-mcp-extension-system-key>"
}
  • 'serverName': 服务器名称,客户端用于标识。
  • 'command': 远程部署时,无需本地启动命令,设置为 'none'。
  • 'args': 远程部署无需启动参数,设置为空数组 '[]'。
  • 'description': 服务器描述信息,方便客户端用户理解。
  • 'transport': 传输协议,本项目使用 'sse' (Server-Sent Events)。
  • 'baseUrl': 远程服务器的基础 URL,指向 Azure Function App 的 MCP 扩展 SSE 端点,需要替换 '<functionapp-name>' 为实际的 Function App 名称。
  • 'accessKey': 访问密钥,用于身份验证,需要替换 '<functions-mcp-extension-system-key>' 为实际的 MCP 扩展系统密钥。

注意: 远程 Azure Function 配置中,'accessKey' 是敏感信息,请妥善保管,并根据 MCP 客户端的具体安全机制进行配置。

基本使用方法

  1. 启动 MCP 服务器:

    • 本地运行: 在 'mcp-youtube-subtitles-extractor/src/McpYouTubeSubtitlesExtractor.FunctionApp' 目录下,运行 'func start' 命令启动本地服务器。
    • 远程部署: 远程服务器部署在 Azure Function App 上,启动和运行由 Azure 平台管理,无需手动启动。
  2. 配置 MCP 客户端: 将上述本地运行配置或远程 Azure Function 配置添加到 MCP 客户端的服务器列表中。

  3. 使用 MCP 客户端调用工具:

    • 在 MCP 客户端中选择已配置的 "youtube-subtitle-extractor-local" 或 "youtube-subtitle-extractor-remote" 服务器。
    • 调用 'get_available_languages' 工具,输入 'videoUrl' 参数 (YouTube 视频链接),获取可用字幕语言列表。
    • 调用 'get_subtitle' 工具,输入 'videoUrl' 和 'languageCode' 参数,获取指定语言的字幕文本。

例如,使用 MCP Inspector 工具或支持 MCP 协议的 LLM 客户端,可以方便地与该服务器进行交互,提取 YouTube 视频字幕并用于后续的 LLM 应用处理。

信息

分类

开发者工具