项目简介

这是一个示例项目,展示了如何利用 Azure Functions 和 'Microsoft.Azure.Functions.Worker.Extensions.Mcp' NuGet 包来构建一个符合 Model Context Protocol (MCP) 标准的服务器。该服务器可以被支持 MCP 协议的 LLM 客户端(如 GitHub Copilot Chat)连接和使用,为其提供额外的工具能力。

主要功能点

  • 提供工具能力: 将 C# 方法封装为 MCP 工具,允许 LLM 客户端通过标准协议调用这些方法来执行特定任务。
  • YouTube 工具示例: 包含两个具体的工具实现:搜索 YouTube 视频和获取 YouTube 频道信息。
  • Azure Functions 集成: 利用 Azure Functions 的事件驱动和无服务器特性来托管 MCP 服务。
  • 支持 SSE 传输: 通过 Server-Sent Events (SSE) 协议与 MCP 客户端进行通信。

安装步骤

  1. 确保你的开发环境已安装 .NET SDK 和 Azure Functions Core Tools ('func')。
  2. 克隆本 GitHub 仓库到本地。
  3. 导航到仓库目录,运行以下命令安装 MCP 扩展包和其他依赖:
    dotnet restore
    (注意:README 中提到的 'dotnet add package' 命令通常用于添加到项目文件,restore 命令用于下载已在项目文件中配置的依赖)。

服务器配置

MCP 服务器需要被 MCP 客户端发现和连接。客户端的配置方式取决于具体的客户端实现,但通常需要指定服务器的类型、地址和(如果本地运行)启动命令。

  • 本地运行配置:
    • 启动命令 (Command):'func start'
    • 参数 (Args):无 (或根据需要)
    • 类型 (Type):'sse'
    • URL (URL):'http://localhost:7071/runtime/webhooks/mcp/sse' (默认本地监听地址)
  • 部署到 Azure Functions 后的配置:
    • 类型 (Type):'sse'
    • URL (URL):部署后 Azure Function 应用的 MCP SSE 端点 URL,通常格式为 'https://[你的函数应用名称].azurewebsites.net/runtime/webhooks/mcp/sse'。
    • 认证 (Authentication):如果配置了函数密钥保护,客户端可能需要在请求头中添加 'x-functions-key'。

你需要根据你使用的 MCP 客户端的文档来配置这些信息,以便它能够连接到你本地运行或部署在 Azure 上的 MCP 服务器。

基本使用方法

  1. 在项目根目录运行 'func start' 启动本地 Azure Functions 宿主。
  2. 确认控制台输出显示 MCP 端点已启动。
  3. 使用支持 MCP 协议的客户端(如 MCP Inspector 或配置好的 GitHub Copilot Chat)连接到本地 MCP 服务器的地址 ('http://localhost:7071/runtime/webhooks/mcp/sse')。
  4. 客户端将能够发现并调用服务器提供的 YouTube 搜索和频道信息工具。

信息

分类

AI与计算