使用说明
项目简介
本项目是一个使用 .NET 和 Azure Functions 构建的远程 MCP (Model Context Protocol) 服务器模板。它旨在帮助开发者快速搭建云端 MCP 服务,以便为 LLM (大型语言模型) 应用提供上下文信息和工具能力。该服务器通过安全的 HTTPS 协议和密钥进行保护,并可扩展支持 OAuth 和 VNET 等高级安全特性。
主要功能点
- 资源管理 (代码片段): 通过 Azure Blob Storage 托管和管理代码片段资源,允许 LLM 客户端存储和检索代码片段。
- 工具注册与执行: 提供示例工具 (保存代码片段 'save_snippet'、获取代码片段 'get_snippets'、问候工具 'hello'),允许 LLM 客户端调用这些工具来扩展功能。
- 基于 Azure Functions: 利用 Azure Functions 的serverless 架构,实现高可用、可伸缩的 MCP 服务器部署。
- 多种部署选项: 支持本地运行调试和通过 'azd up' 快速部署到 Azure 云平台。
安装步骤
-
安装 Prerequisites:
- .NET 8 SDK
- Azure Functions Core Tools
- Azure Developer CLI
- (可选)Visual Studio 2022 或 Visual Studio Code (用于本地调试)
- (可选)VS Code Azure Functions 扩展 (用于 VS Code 本地调试)
-
启动本地存储模拟器 (Azurite): 本项目使用 Azure Blob Storage 存储代码片段,本地运行需要启动 Azurite 模拟器。
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite或使用 VS Code Azure Storage 扩展启动 Azurite。
-
本地运行 MCP 服务器: 打开终端,导航到 'src' 目录,运行以下命令启动 Azure Functions 主机:
cd src func start
服务器配置 (MCP 客户端)
MCP 客户端需要配置服务器连接信息才能与此 MCP 服务器通信。以下是 MCP 客户端的服务器配置示例 (JSON 格式):
{ "servers": { "my-remote-mcp-server": { "type": "sse", "url": "http://0.0.0.0:7071/runtime/webhooks/mcp/sse" } } }
配置参数说明:
- 'server name': 服务器名称,客户端自定义,例如 "my-remote-mcp-server"。
- 'type': 传输协议类型,本项目使用 SSE (Server-Sent Events)。
- 'url': MCP 服务器 SSE 端点 URL。
- 本地运行: 'http://0.0.0.0:7071/runtime/webhooks/mcp/sse'
- Azure 部署: 'https://<your-function-app-name>.azurewebsites.net/runtime/webhooks/mcp/sse' (需要替换 '<your-function-app-name>' 为你的 Azure Function App 名称)
Azure 部署的服务器需要 API Key: 为了安全,部署到 Azure 的 Function App 需要 API Key 才能访问。你需要从 Azure 门户或 Azure CLI 获取名为 'mcp_extension' 的系统密钥 (System Key),并将其添加到客户端配置中。
配置 API Key 的方法 (二选一):
方法 1: URL 参数 (适用于 MCP Inspector 等工具) 将 API Key 作为 URL 参数 'code' 添加到 URL 中:
https://<your-function-app-name>.azurewebsites.net/runtime/webhooks/mcp/sse?code=<your-mcp-extension-system-key>
方法 2: HTTP Header (适用于 VS Code Copilot 等客户端) 在客户端配置中添加 'headers' 字段,设置 'x-functions-key' Header:
{ "servers": { "my-remote-mcp-server": { "type": "sse", "url": "https://<your-function-app-name>.azurewebsites.net/runtime/webhooks/mcp/sse", "headers": { "x-functions-key": "<your-mcp-extension-system-key>" } } } }
(需要替换 '<your-mcp-extension-system-key>' 为你的系统密钥)
基本使用方法
-
本地测试: 按照 "安装步骤" 和 "服务器配置" 完成配置后,可以使用 MCP Inspector 或 VS Code Copilot Edits 等 MCP 客户端连接到本地运行的 MCP 服务器进行测试。
- MCP Inspector: 启动 MCP Inspector,设置 Transport Type 为 SSE,URL 为 'http://0.0.0.0:7071/runtime/webhooks/mcp/sse' (或带 API Key 的 Azure URL),点击 "Connect",然后可以列出工具并运行。
- VS Code Copilot Edits: 在 VS Code 中,通过命令面板 "Add MCP Server" 添加本地或 Azure MCP 服务器 URL,然后在 Copilot 聊天中使用提示词触发工具,例如 "Say Hello", "Save this snippet as snippet1", "Retrieve snippet1"。
-
部署到 Azure: 运行 'azd up' 命令可以将 MCP 服务器部署到 Azure 云平台。部署完成后,按照 "服务器配置" 中的 Azure 部署 URL 和 API Key 配置客户端连接信息。
-
清理资源: 不再使用时,可以使用 'azd down' 命令删除 Azure 上部署的资源,避免产生额外费用。
信息
分类
开发者工具