项目简介

Azure云资源影响报告MCP服务器是一个基于Model Context Protocol (MCP) 构建的应用后端,旨在简化用户向Azure云平台报告资源问题的流程。通过集成自然语言处理能力,该服务器允许用户使用自然语言向LLM描述其遇到的Azure资源问题,并自动将这些描述转化为结构化的影响报告,提交给Azure平台。

主要功能点

  • Azure资源影响报告: 提供工具(Tool)允许LLM客户端代表用户向Azure云平台提交资源影响报告。
  • 自然语言解析: 能够解析LLM客户端发送的自然语言请求,从中提取出报告Azure资源影响所需的参数,如订阅ID、资源组、资源类型、资源名称和影响类别。
  • Azure认证: 使用'DefaultAzureCredential'自动处理Azure身份验证,简化服务器的配置和部署。
  • 参数补充: 当LLM提供的自然语言请求缺少必要参数时,服务器能够向LLM请求补充信息,确保报告的完整性。
  • 多种影响类别: 支持报告多种类型的资源影响,包括连接性问题、性能问题、可用性问题和未知问题。

安装步骤

  1. 克隆仓库

    git clone https://github.com/chand45/MCP-Server-Azure-Impact-Reporting.git
    cd MCP-Server-Azure-Impact-Reporting
  2. 安装依赖 确保你的Python环境满足要求 (Python 3.8+),然后安装项目依赖:

    pip install -r requirements.txt

    或者手动安装:

    pip install mcp[cli] azure-identity httpx
  3. Azure 身份验证配置 该服务器使用 'DefaultAzureCredential' 进行 Azure 身份验证。你需要确保你的运行环境已配置Azure凭据。以下是一些常用的配置方式:

    • Azure CLI: 如果本地安装了 Azure CLI,并已通过 'az login' 登录,服务器将自动使用你的 CLI 凭据。
    • Visual Studio Code Azure 账户扩展: 如果使用 VS Code 并安装了 Azure Account 扩展并登录,服务器可以使用 VS Code 的凭据。
    • Azure PowerShell: 如果安装了 Azure PowerShell 模块,并通过 'Connect-AzAccount' 登录,服务器可以使用 PowerShell 的凭据。
    • 环境变量 (服务主体): 可以设置环境变量来使用服务主体进行身份验证。

    选择适合你的环境的身份验证方式,确保服务器能够成功连接到 Azure 云平台。

服务器配置

为了让MCP客户端(如Claude)连接到此MCP服务器,你需要在客户端的配置文件中添加服务器配置信息。以下是一个示例配置,你需要根据实际情况修改 'ABSOLUTE_PATH_TO_ROOT_FOLDER' 为你克隆仓库的绝对路径。

"impactreporter": {  // 服务器名称,客户端使用此名称引用
    "command": "uv",  // 启动服务器的命令,这里使用 uv (更快的 pip 替代品,如果未安装可替换为 python 或 python3)
    "args": [         // 启动命令的参数
        "--directory", // 指定工作目录
        "ABSOLUTE_PATH_TO_ROOT_FOLDER", // 替换为仓库的绝对路径,例如 "C:\\Users\\username\\MCP-Server-Azure-Impact-Reporting" 或 "/home/user/MCP-Server-Azure-Impact-Reporting"
        "run",        // uv 或 python 的运行命令
        "impact-reporter.py" // MCP服务器主程序文件名
    ]
}

注意:

  • 请将 'ABSOLUTE_PATH_TO_ROOT_FOLDER' 替换为实际的仓库绝对路径。
  • 如果你的环境中没有安装 'uv',可以将 '"command": "uv"' 和 '"run"' 参数替换为 '"command": "python"' (或 '"python3"'),并移除 '--directory' 参数。例如:
"impactreporter": {
    "command": "python",
    "args": [
        "impact-reporter.py"
    ]
}
  • 服务器名称 '"impactreporter"' 可以自定义,客户端在调用工具时需要使用此名称。

基本使用方法

配置完成后,当你的LLM客户端需要报告Azure资源问题时,可以使用自然语言指令,例如:

  1. "Report connectivity issues with my VM named 'web-server' in resource group 'production-rg'"
  2. "Let Azure know my SQL database 'customer-db' in 'data-rg' is experiencing performance issues"
  3. "Report that my App Service 'api-service' is down"

LLM客户端会将这些自然语言请求发送给配置的MCP服务器。服务器解析请求,调用 'report_impact_to_azure' 工具,并根据请求内容与Azure Management API交互,最终完成资源影响报告的提交。

如果请求缺少必要信息,服务器会通过MCP协议向LLM客户端请求补充,例如询问订阅ID或资源组等信息,以确保报告能够成功提交。

信息

分类

商业系统