项目简介

该仓库是为 Global Azure Thailand 2025 活动准备的示例代码,旨在介绍如何设置和使用基于 Model Context Protocol (MCP) 的服务器与 Azure 服务集成,并利用大型语言模型 (LLM) 进行自然语言交互和工具调用。它展示了一个 MCP 服务器如何通过提供工具来允许 LLM 代理查询和管理 Azure 资源。

主要功能点

  • Azure 资源交互: 通过 LLM 代理执行命令,查询 Azure 订阅、资源组、虚拟机等信息。
  • MCP 服务器集成: 依赖于 '@azure/mcp' 包启动一个 MCP 服务器实例。
  • 工具调用: MCP 服务器注册工具,LLM 代理通过 MCP 协议调用这些工具来与 Azure 交互。
  • 上下文管理: MCP 协议支持服务器管理会话和上下文信息。
  • 多种客户端示例: 提供了简单的 Python 脚本客户端和基于 Gradio 的 Web 界面客户端。
  • SSE 传输支持: 示例使用 Server-Sent Events (SSE) 作为 MCP 协议的传输层。

安装步骤

  1. 确保已安装 Node.js 和 npm (或 npx)。
  2. 安装 Python 及其包管理工具 pip。
  3. 安装 Azure CLI 并登录:
    sudo apt-get update && sudo apt-get install -y azure-cli
    az login
  4. 创建 '.env' 文件,填入 Azure OpenAI 服务的相关密钥和部署信息:
    AZURE_OPENAI_API_KEY=your_api_key
    AZURE_OPENAI_ENDPOINT=your_api_key_endpoint
    AZURE_OPENAI_DEPLOYMENT=your_deployment_name
    AZURE_OPENAI_API_VERSION=your_api_version
    OPENAI_API_VERSION=your_api_version # 通常与 AZURE_OPENAI_API_VERSION 相同
  5. 安装 Python 依赖:
    pip install -r requirements.txt

服务器配置

MCP 客户端需要知道如何启动 MCP 服务器。对于该示例,服务器是通过 '@azure/mcp' npm 包启动的。

客户端的配置(通常是 JSON 格式)需要包含启动 MCP 服务器进程所需的信息,例如:

  • 服务器名称 (server name): 用于标识服务器的名称,例如 "azure-mcp"。
  • 启动命令 (command): 执行服务器的命令,例如 'npx' (这是一个 Node.js 包运行器)。
  • 命令参数 (args): 传递给启动命令的参数列表,例如:
    • '-y':自动确认执行 npx 命令。
    • '@azure/mcp@latest':指定要运行的 MCP 包及其版本。
    • 'server':指定运行服务器模式。
    • 'start':指定启动服务器动作。
    • '--transport':指定传输协议参数。
    • 'sse':指定使用 Server-Sent Events 传输协议。

客户端会使用这些信息在需要时自动启动服务器进程并连接到其暴露的 SSE 地址(默认为 'http://localhost:5008/sse')。

基本使用方法

  1. 启动 Azure MCP 服务器 (SSE 模式): 在仓库根目录执行:

    npx -y @azure/mcp@latest server start --transport sse

    服务器将启动并在 'http://localhost:5008/sse' 监听连接。保持此终端窗口开启,服务器运行时不会退出。

  2. 运行客户端示例:

    • Simple 客户端 (命令行): 打开新的终端窗口,执行:

      python client/mcp_sse_simple.py

      脚本将连接到服务器,执行一个预设的 Azure 查询(例如 "List all Azure subscriptions"),并打印结果。

    • Gradio 客户端 (Web UI): 打开新的终端窗口,执行:

      python client/mcp_sse_gradio.py

      脚本将启动一个 Gradio Web 界面。在浏览器中访问显示的 URL(通常是 'http://127.0.0.1:7860'),输入 MCP 服务器的 SSE URL(默认为 'http://localhost:5008/sse'),点击 "Connect"。连接成功后,可以在聊天界面输入关于 Azure 的问题(例如 "List my resource groups")与 LLM 代理交互。

通过以上步骤,您可以体验一个基于 MCP 的系统如何通过 LLM 代理和 MCP 服务器与 Azure 服务进行自然语言交互。

信息

分类

AI与计算