项目简介
这是一个示例项目,展示了如何利用 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 客户端进行通信。
安装步骤
- 确保你的开发环境已安装 .NET SDK 和 Azure Functions Core Tools ('func')。
- 克隆本 GitHub 仓库到本地。
- 导航到仓库目录,运行以下命令安装 MCP 扩展包和其他依赖:
(注意:README 中提到的 'dotnet add package' 命令通常用于添加到项目文件,restore 命令用于下载已在项目文件中配置的依赖)。dotnet 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 服务器。
基本使用方法
- 在项目根目录运行 'func start' 启动本地 Azure Functions 宿主。
- 确认控制台输出显示 MCP 端点已启动。
- 使用支持 MCP 协议的客户端(如 MCP Inspector 或配置好的 GitHub Copilot Chat)连接到本地 MCP 服务器的地址 ('http://localhost:7071/runtime/webhooks/mcp/sse')。
- 客户端将能够发现并调用服务器提供的 YouTube 搜索和频道信息工具。
信息
分类
AI与计算