使用说明

项目简介

本项目是一个基于 .NET 和 Azure Functions 的 MCP 服务器示例,演示了如何构建一个能够提取 YouTube 视频字幕的 MCP 工具服务。该服务通过 MCP 协议与 LLM 客户端通信,提供标准化的工具调用方式。

主要功能点

  • YouTube 字幕提取工具: 提供两个核心工具:
    • 'get_subtitle': 根据 YouTube 视频 URL 和指定的语言代码,提取视频的字幕内容。
    • 'get_available_languages': 获取指定 YouTube 视频可用的字幕语言列表。
  • 基于 Azure Functions: 使用 Azure Functions serverless 计算平台构建,易于部署和扩展。
  • MCP 协议支持: 实现了 MCP 协议,可以与任何兼容 MCP 协议的 LLM 客户端进行交互。

安装步骤

由于这是一个 Azure Function 应用示例,您需要先配置 Azure Functions 运行环境。

  1. 安装 Azure Functions Core Tools: 如果本地运行,需要安装 Azure Functions Core Tools。
  2. 部署到 Azure (可选): 您可以将此 Function App 部署到 Azure Function 服务中,以便远程访问。

具体安装和部署步骤请参考 Microsoft Azure Functions 官方文档。本示例仓库主要展示代码结构和 MCP 工具的实现方式。

服务器配置

对于 MCP 客户端,连接此 MCP 服务器需要配置以下信息。假设您在本地运行 Azure Function:

{
  "serverName": "youtube-subtitle-extractor",
  "command": "func",
  "args": ["start", "--port", "7071"]
}
  • 'serverName': 自定义的服务器名称,例如 "youtube-subtitle-extractor"。
  • 'command': 启动 Azure Functions 的命令,通常为 'func' (如果已安装 Azure Functions Core Tools 并添加到环境变量)。
  • 'args': 'func start' 命令的参数,'--port 7071' 指定本地 Function App 监听的端口,默认为 7071。

注意: 如果部署到 Azure Function 服务,则无需本地启动命令,MCP 客户端需要配置 Azure Function App 的访问 URL。具体的配置方式取决于 Azure Function 的部署和访问设置。

基本使用方法

配置好 MCP 客户端后,客户端可以通过 MCP 协议调用以下工具:

  1. get_subtitle 工具:

    • 工具ID: 'get_subtitle'
    • 参数:
      • 'videoUrl' (string): YouTube 视频的 URL。
      • 'languageCode' (string): 两位语言代码,例如 "en" 代表英文。

    客户端调用此工具后,MCP 服务器将返回指定视频和语言的字幕文本。

  2. get_available_languages 工具:

    • 工具ID: 'get_available_languages'
    • 参数:
      • 'videoUrl' (string): YouTube 视频的 URL。

    客户端调用此工具后,MCP 服务器将返回该视频支持的字幕语言代码列表。

客户端需要根据 MCP 协议规范构建请求,并解析服务器返回的 JSON-RPC 响应。具体细节请参考 MCP 协议官方文档。

信息

分类

开发者工具