Azure MCP Server

Azure MCP Server

site icon
2025.04.29 0
PythonAzure 资源管理基础设施监控开发效率数据库
Azure MCP Server 是一个基于 Python 的 Model Context Protocol (MCP) 服务器实现,用于 Azure 资源的管理和探索。它提供了一个结构化的接口,通过 MCP 协议与 Azure 服务交互,使程序化管理和监控 Azure 基础设施变得更加容易。
View on GitHub

Overview

基本能力

产品定位

Azure MCP Server 是一个桥梁,连接 MCP 客户端和 Azure 服务,提供工具和端点来管理各种 Azure 资源,如资源组和存储账户。

核心功能

  • 使用现代 Azure SDK 进行异步 Azure 操作
  • 支持多种认证方法(默认、服务主体、托管身份)
  • 使用 MCP 协议的结构化响应格式
  • 全面的错误处理和日志记录
  • 支持环境变量配置

适用场景

  • Azure 资源管理和监控
  • 程序化基础设施管理
  • 开发环境中的 Azure 资源探索

工具列表

工具名称 描述
list_resource_groups 列出订阅中的所有资源组
list_storage_accounts 列出订阅中的所有存储账户
list_storage_account_usage 获取特定存储账户的存储容量使用情况
list_storage_account_usage_all 获取订阅中所有存储账户的存储容量使用情况

常见问题解答

  • 认证失败:确保正确配置了环境变量和认证类型
  • 资源未找到:检查订阅 ID 和资源名称是否正确
  • 容器运行问题:在容器中使用 auth_type=spn 并确保传递正确的环境变量

使用教程

使用依赖

  • Python 3.13 或更高版本
  • Azure 订阅
  • Azure CLI(推荐用于本地开发)

安装教程

  1. 克隆仓库:
git clone <repository-url>
cd azure-mcp-server
  1. 安装 uv:
curl -LsSf https://astral.sh/uv/install.ps1 | powershell
  1. 创建虚拟环境并安装依赖:
uv venv
.\.venv\Scripts\Activate.ps1
uv pip sync pyproject.toml
  1. 配置环境变量: 创建 .env 文件并设置以下变量:
AZURE_SUBSCRIPTION_ID=your-subscription-id
AZURE_TENANT_ID=your-tenant-id
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret

调试方式

  1. 启动 MCP 服务器(Stdio 传输):
uv run server.py
  1. 启动 MCP 服务器(SSE 传输):
uv run main.py
  1. 测试 SSE 连接:
npx @modelcontextprotocol/inspector
  1. 容器运行:
docker build -t mcp-azure-server:latest .
docker run -d --name mcp-azure-srv -p 8000:8000 -e AZURE_TENANT_ID="YOUR_TENANT_ID" -e AZURE_CLIENT_ID="YOUR_CLIENT_ID" -e AZURE_CLIENT_SECRET="YOUR_SECRET" mcp-azure-server:latest

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。