使用说明

项目简介

本项目是一个基于 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 云平台,简化服务器搭建流程。

安装步骤

  1. 注册 Azure 资源提供程序: 确保您的 Azure 订阅已注册 'Microsoft.App' 资源提供程序。可以使用 Azure CLI 或 Azure PowerShell 完成注册。
    # Azure CLI
    az provider register --namespace Microsoft.App --wait
  2. 安装 Azure Developer CLI (azd): 如果尚未安装,请根据 azd 官方文档 安装 Azure Developer CLI 工具。
  3. 部署到 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': 本示例服务器无需额外的启动参数,保持为空数组 '[]' 即可。

基本使用方法

  1. 启动 MCP Inspector: 在一个新的终端窗口中,安装并运行 MCP Inspector 工具。
    npx @modelcontextprotocol/inspector
  2. 连接到服务器: 在 MCP Inspector Web 应用中,将传输类型设置为 'SSE',并将 URL 设置为 'azd up' 命令输出的 API Management SSE 端点 URL,然后点击 "Connect"。
  3. 列出和运行工具: 连接成功后,您可以在 MCP Inspector 中看到已注册的工具列表(例如 'hello_mcp', 'get_snippet', 'save_snippet')。点击工具可以查看其详细信息和参数,点击 "Run Tool" 可以执行工具并查看结果。

信息

分类

AI与计算