使用说明
项目简介
本项目是一个基于 Azure 函数和 Azure API 管理构建的远程 MCP (Model Context Protocol) 服务器示例。它演示了如何使用 Azure 云服务快速搭建一个安全、可扩展的 MCP 后端,为 LLM 应用提供工具注册、执行和资源访问等核心功能。通过 Azure API Management,该服务器还实现了 MCP 授权规范,确保客户端的访问安全。
主要功能点
- 工具注册与执行: 通过 Azure 函数定义和注册工具 (Tools),例如示例中的 'hello_mcp', 'get_snippet', 'save_snippet',允许 LLM 客户端远程调用这些工具执行特定任务。
- 资源管理: 使用 Azure Blob 存储作为资源 (Resources) 存储,示例中实现了代码片段 (snippets) 的存储和检索功能。
- 安全访问控制: 利用 Azure API Management 作为 API 网关,实现基于 OAuth 的 MCP 客户端授权,保障服务器端点安全。
- SSE 传输协议: 支持基于 Server-Sent Events (SSE) 的传输协议,用于 MCP 客户端与服务器之间的实时通信。
- 易于部署: 通过 Azure Developer CLI (azd) 快速部署到 Azure 云平台,简化服务器搭建流程。
安装步骤
- 注册 Azure 资源提供程序: 确保您的 Azure 订阅已注册 'Microsoft.App' 资源提供程序。可以使用 Azure CLI 或 Azure PowerShell 完成注册。
# Azure CLI az provider register --namespace Microsoft.App --wait - 安装 Azure Developer CLI (azd): 如果尚未安装,请根据 azd 官方文档 安装 Azure Developer CLI 工具。
- 部署到 Azure: 在本地克隆或下载此仓库代码,然后在仓库根目录下运行 'azd up' 命令。该命令会自动预配 Azure API Management 服务、函数应用以及所有其他必需的 Azure 资源,并将代码部署到函数应用中。部署完成后,命令会输出 API Management SSE 端点的 URL。
服务器配置
MCP 客户端需要配置以下信息以连接到此 MCP 服务器。配置信息为 JSON 格式:
{ "serverName": "AzureRemoteMCPServer", "command": "https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse", "args": [] }
- 'serverName': 为您的 MCP 服务器自定义一个名称,例如 "AzureRemoteMCPServer"。
- 'command': 重要: 这是 MCP 服务器的连接地址,请替换 '<apim-servicename-from-azd-output>' 为 'azd up' 命令输出的 API Management 服务名称。完整的 URL 应该是 'https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse'。客户端将通过此 SSE 端点与服务器建立连接。
- 'args': 本示例服务器无需额外的启动参数,保持为空数组 '[]' 即可。
基本使用方法
- 启动 MCP Inspector: 在一个新的终端窗口中,安装并运行 MCP Inspector 工具。
npx @modelcontextprotocol/inspector - 连接到服务器: 在 MCP Inspector Web 应用中,将传输类型设置为 'SSE',并将 URL 设置为 'azd up' 命令输出的 API Management SSE 端点 URL,然后点击 "Connect"。
- 列出和运行工具: 连接成功后,您可以在 MCP Inspector 中看到已注册的工具列表(例如 'hello_mcp', 'get_snippet', 'save_snippet')。点击工具可以查看其详细信息和参数,点击 "Run Tool" 可以执行工具并查看结果。
信息
分类
AI与计算