Azure MCP 服务器

Azure MCP Server 是一个基于 Python 的 Model Context Protocol (MCP) 服务器实现,用于无缝连接 AI 助手与 Azure 资源。

  • by frdeange
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 frdeange/azure-mcp-python

使用说明

🔷 Azure MCP服务器(Python)

一个强大的 Python实现 Azure服务的模型上下文协议(MCP)服务器。启用AI助手,如 GitHub Copilot, 克劳德, GPT-4,以及其他与Azure资源无缝交互的工具。


✨ 亮点

特性 描述
🔐 安全认证 具有DefaultAzureCredentialchain的Azure标识
🛠️ 94 Azure工具 全面覆盖10个Azure服务系列
💰 成本管理 查询成本、预测、预算 (不在微软的.NET版本中)
👥 参赛者ID 通过Microsoft Graph访问用户、组和应用程序 (不在微软的.NET版本中)
📱 通信服务 短信、电子邮件、电话号码 (不在微软的.NET版本中)
🔎 Azure人工智能搜索 全文搜索、索引、文档管理 (不在微软的.NET版本中)
☁️ AI铸造就绪 与Azure AI Foundry代理服务兼容
🧩 模块化设计 仅安装所需的Azure服务
📚 证据充分的 面向用户和贡献者的全面指南

🚀 快速开始

安装

```bash

底座安装

pip安装azure mcp

提供特定服务

pip安装azure mcp[宇宙,成本,存储]

所有服务

pip安装azure mcp[全部] ```

使用VS代码

添加到您的VS代码`settings.json `:

```json { “mcp.servers”:{ “蔚蓝”:{ “命令”:“azure mcp”, “args”: [“--stdio”] } } } ```

认证

```bash

登录Azure

az登录

运行服务器

蔚蓝mcp ```


� 先决条件和权限

认证

# Local development - just login with Azure CLI
az login

对于生产部署(Azure容器应用程序),请使用 管理身份。参见 身份验证指南.

所需权限(快速参考)

家庭 角色/权限 范围
所有工具 Reader 订阅
成本管理 Cost Management Reader 订阅
存储 Storage Blob/Table/Queue Data Reader 或 Contributor 订阅或帐户
监视器 Monitoring Reader + Log Analytics Reader 订阅/工作区
应用洞察 Log Analytics Reader 工作区
Cosmos DB(控制) Cosmos DB Account Reader Role 订阅
Cosmos数据库(数据) Built-in Data Contributor +自定义角色 每个帐户
Azure人工智能搜索 Search Index Data Reader/Contributor 按搜索服务
参赛者ID User.Read.All, Group.Read.All等等。 Microsoft Graph API
通信 基于连接字符串 按资源

📖 全参考:参见 docs/permissions.md 了解每个工具的完整RBAC文档、最小权限与完全访问权限角色集、自定义角色要求和设置脚本。


�🛠️ 可用工具(共99个)

📊 摘要

家庭 工具 读 写 描述
🔍 资源图 1 1 0 使用KQL查询Azure资源
🗄️ Cosmos DB 12 6 6 帐户、数据库、容器和项目CRUD
💰 成本管理 7 7 0 成本、预测、预算、建议
📦 存储 9 6 3 块、队列、表、帐户
👥 Entra ID 18 18 0 用户、组、应用程序、服务主体
📈 监视器 17 17 0 度量、警报、日志、自动缩放
🔬 应用洞察 8 8 0 日志、指标、可用性、异常
🔑 RBAC 8 8 0 角色、分配、权限
📱 通讯 7 4 3 短信、电子邮件、电话号码
🔎 Azure AI搜索 12 9 3 全文搜索、索引、文档
总计 99 84 15

🔍 Resource Graph (1 tool)

工具 类型 描述
`resourcegraph_query ` 📖 读取 使用KQL执行Azure资源图查询

例子: ``` 查询我订阅中的所有虚拟机 ```

🗄️ Cosmos DB (12 tools)

工具 类型 描述
`cosmos_account_list` 📖 阅读 列出订阅中的Cosmos DB帐户
`cosmos_account_get` 📖 阅读 获取特定Cosmos DB帐户的详细信息
`cosmos_database_list` 📖 读取 列出Cosmos DB帐户中的数据库
`cosmos_database_create` ✏️ 写入 创建数据库(幂等)
`cosmos_database_delete` ⚠️ 删除 删除数据库及其所有数据
`cosmos_container_list` 📖 读取 列出数据库中的容器
`cosmos_container_create` ✏️ 写 用分区键(幂等)创建一个容器
`cosmos_container_delete` ⚠️ 删除 删除容器及其所有数据
`cosmos_item_query ` 📖 读取 使用类似SQL的语法查询项目
`cosmos_item_get` 📖 读取 通过ID和分区键获取单个项目
`cosmos_item_upsert` ✏️ 编写 创建或更新项目
`cosmos_item_delete` ⚠️ 删除 按ID和分区键删除项目

例子: ``` 列出我的生产订阅中的所有Cosmos DB帐户 在我的Cosmos帐户中创建一个名为“analytics”的新数据库 从状态为“活动”的用户容器中查询项目 ```

💰 Cost Management (7 tools) ⭐ Exclusive

🌟 在Microsoft中不可用。NET Azure MCP服务器!

工具 类型 描述
cost_query 📖 读取 灵活分组查询成本和使用数据
cost_forecast 📖 阅读 获取未来时期的成本预测
cost_usage_by_resource 📖 阅读 按资源获取详细的使用数据
cost_budgets_list 📖 阅读 列出范围内的所有预算
cost_budgets_get 📖 阅读 获取预算详细信息,包括警报
cost_recommendations 📖 阅读 列出Azure Advisor的成本建议
`cost_exports_list` 📖 阅读 列出计划成本导出

例子: ``` 给我看上个月按服务分类的成本明细 本季度我的订阅预计费用是多少? 列出所有已消耗超过80%的预算 ```

📦 Storage (9 tools)

工具 类型 描述
`storage_account_list` 📖 读取 列出订阅中的存储帐户
`storage_account_get` 📖 阅读 获取存储帐户详细信息
`storage_container_list` 📖 读取 列出blob容器
`storage_blob_list` 📖 读取 列出容器中的blob
`storage_blob_read` 📖 读取 读取blob内容
`storage_blob_write` ✏️ 写入 将内容写入blob
storage_blob_delete ✏️ 写入 从容器中删除blob
storage_queue_list 📖 读取 列出存储帐户中的队列
`storage_table_query ` 📖 读取 查询表实体

例子: ``` 列出“documents”容器中的所有blob 从我的存储帐户读取config.json文件 ```

👥 Entra ID (18 tools) ⭐ Exclusive

🌟 在Microsoft中不可用。NET Azure MCP服务器!

工具 类型 描述
`intrused_user_list` 📖 读取 列出目录中的用户
`intrused_user_get` 📖 读取 按ID或UPN获取用户详细信息
`intrused_user_groups` 📖 读取 列出用户所属的组
`intrused_user_manager ` 📖 阅读 获取用户经理
`intrused_user_direct_reports` 📖 阅读 列出用户的直接下属
`intrused_group_list` 📖 读取 列出目录中的组
`intrused_group_get` 📖 阅读 获取组详细信息
`intrused_group_members`📖 阅读 列出组成员
`集团所有者' 📖 阅读 列出组所有者
`intrused_app_list` 📖 阅读 列出应用程序注册
`intrused_app_get` 📖 阅读 获取应用程序注册详细信息
`intrused_splist` 📖 阅读 列出服务主体
`intrused_spget` 📖 阅读 获取服务主体详细信息
`intrused_role_list` 📖 读取 列出目录角色
`intrused_role_members`📖 阅读 列出角色成员
`intrused-domain_list` 📖 读取 列出已验证的域
`intrused_device_list` 📖 读取 列出已注册的设备
`intrused_device_get` 📖 阅读 获取设备详细信息

例子: ``` 查找销售部门的所有用户 列出“IT管理员”组的成员 显示今年创建的所有应用程序注册 ```

📈 Monitor (17 tools)

工具 类型 描述
`monitor_metrics_list` 📖 阅读 列出资源的可用指标
`monitor_metrics_get` 📖 读取 使用聚合获取度量值
`monitor_alerts_list` 📖 读取 列出度量警报规则
`monitor_alerts_get` 📖 阅读 获取警报规则详细信息
`monitor_alerts_history`📖 阅读 获取警报历史/事件
`monitor_action_groups_list` 📖 阅读 列出行动组
`monitor_action_groups_get` 📖 阅读 获取行动组详细信息
`monitor_active_log` 📖 读取 查询活动日志事件
`monitor_dignostic_settings_list` 📖 读取 列出诊断设置
`monitor_dignostic_settings_get` 📖 阅读 获取诊断设置详细信息
`monitor_log_profiles_list` 📖 读取 列出日志配置文件
`monitor_autoscale_list` 📖 读取 列出自动缩放设置
`monitor_autoscale_get` 📖 读取 获取自动缩放设置详细信息
`monitor_scheduled_query_rules_list ` 📖 读取 列出日志警报规则
`monitor_scheduled_query_rules_get` 📖 读取 获取日志警报规则详细信息
`monitor_private_link_scopes_list` 📖 读取 列出私有链接范围

例子: ``` 显示过去一小时我的虚拟机的CPU指标 列出我订阅中的所有点火警报 获取资源组更改的活动日志 ```

🔬 Application Insights (8 tools)

工具 类型 描述
`appisions_query ` 📖 阅读 针对App Insights执行KQL查询
`appisights_metrics_list` 📖 阅读 列出可用指标
`appisions_metrics_get` 📖 读取 获取度量值
`appisights_events` 📖 读取 查询遥测事件
`appisights_exceptions ` 📖 读取 查询遥测异常
`appisions_availability ` 📖 读取 查询可用性测试结果
`appisights_components_list` 📖 阅读 列出App Insights资源
`appisights_components_get` 📖 阅读 获取App Insights资源详细信息

例子: ``` 查询过去24小时内最慢的10个请求 显示付款服务的所有例外情况 检查我的API的可用性测试结果 ```

🔑 RBAC (8 tools)

工具 类型 描述
`rbac_role_definitions_list` 📖 读取 列出作用域中的角色定义
`rbac_role_definitions_get` 📖 阅读 获取角色定义详细信息
`rbac_role_assignments_list` 📖 阅读 列出角色分配
`rbac_role_assignments_get` 📖 阅读 获取角色分配详细信息
`rbac_permissions_list` 📖 读取 列出作用域的权限
`rbac_classic_admins_list` 📖 阅读 列出经典订阅管理员
`rbac_deny_assignments_list` 📖 阅读 列出拒绝分配
`rbac_deny_assignments_get` 📖 阅读 获取拒绝分配详细信息

例子: ``` 列出我订阅中的所有参与者角色分配 谁有权访问此资源组? 显示存储Blob数据读取器角色的权限 ```

📱 Communication Services (7 tools) ⭐ Exclusive

🌟 在Microsoft中不可用。NET Azure MCP服务器!

工具 类型 描述
“通信_资源列表” 📖 阅读 列出通信服务资源
“通信_资源_集合” 📖 读取 获取包括端点在内的资源详细信息
“通讯_电话号码列表” 📖 阅读 列出已购买的电话号码
`通讯_电话号码_组` 📖 阅读 获取电话号码详细信息和功能
`通信_sms_send ` ✏️ 写 发送短信
“通讯_电子邮件_发送” ✏️ 编写 发送包含HTML/文本内容的电子邮件
“通讯_电子邮件_状态” 📖 阅读 检查电子邮件传递状态

例子: ``` 列出我的通讯服务资源中的所有电话号码 发送短信通知至+1234567890 向新用户发送欢迎电子邮件 检查电子邮件abc-123的状态 ```

🔎 Azure AI Search (12 tools) ⭐ Exclusive

🌟 在Microsoft中不可用。NET Azure MCP服务器!

工具 类型 描述
`search_service_list` 📖 阅读 列出Azure AI搜索服务
`search_service_get` 📖 阅读 获取搜索服务详细信息
`search_index_list` 📖 读取 列出搜索服务中的索引
`search_index_get` 📖 读取 获取索引架构和设置
`search_index_stats` 📖 读取 获取索引统计信息(文档计数、大小)
`search_query ` 📖 读取 执行全文搜索查询
`search_suggest` 📖 阅读 获取搜索建议
“搜索_自动完成” 📖 阅读 获取自动完成建议
`search_document_get` 📖 读取 按键检索文档
`search_document_upload` ✏️ 写入 将文档上传到索引
`search_document_merge` ✏️ 写入 合并/更新索引中的文档
`search_document_delete` ✏️ 写入 从索引中删除文档

例子: ``` 在我的知识库中搜索“机器学习” 获取我的产品索引的架构 将新文档上传到搜索索引 查找我的订阅中的所有搜索服务 ```


🌐 部署选项

本地开发

```bash

克隆并安装

克隆https://github.com/frdeange/azure-mcp-python.git cd azure mcp python pip安装-e“.[dev,all]”

跑

蔚蓝mcp ```

码头工人

```bash docker build-t azure mcp。 docker run-it azure mcp ```

Azure容器应用

看 AI Foundry部署指南 用于部署到Azure AI Foundry代理服务。

```bash

部署到Azure容器应用程序

containerapp 上 --名称azure mcp服务器\ --来源。 \ --外部入口\ --目标端口8000 ```


📦 模块化安装

仅安装所需的Azure服务:

```bash

个人服务

pip安装azure mcp[宇宙]#宇宙数据库工具 pip安装azure mcp[cost]#成本管理工具 pip安装azure mcp[存储]#存储工具 pip安装azure mcp[entra]#entra ID工具 pip安装azure mcp[监视器]#监视器+应用洞察工具 pip安装azure mcp[rbac]#rbac工具 pip安装azure mcp[通讯]#通讯服务工具 pip安装azure mcp[搜索]#azure AI搜索工具

多种服务

pip安装azure mcp[宇宙,成本,存储]

所有服务

pip安装azure mcp[全部] ```


📚 文档

文档 描述
添加工具 新工具实施指南
认证 Azure身份验证设置
权限和RBAC 每个工具所需的角色和权限
测试 测试指南和最佳实践
AI Foundry部署 部署到Azure AI Foundry
建筑 系统架构概述
贡献 贡献指南

🔧 发展

设置

```bash

克隆存储库

克隆https://github.com/frdeange/azure-mcp-python.git cd azure mcp python

创建虚拟环境

python-m venv.venv source.ven/bin/activate#Linux/Mac

.venv\Scripts\activate#Windows

在开发模式下安装所有附加功能

pip安装-e“.[dev,all]”

运行测试

pytest

跑linting

ruff检查src测试 ruff格式src测试

类型检查

mypy src ```

使用开发容器

在VS Code中打开,并在提示时单击“在容器中重新打开”。一切都是预先配置好的!


🗺️ 路线图

✅ 完成

  • [x] 核心框架(身份验证、注册表、缓存、错误)
  • [x] 资源图工具
  • [x] Cosmos数据库工具
  • [x] 成本管理工具⭐
  • [x] 存储工具
  • [x] Entra ID工具⭐
  • [x] 监控工具
  • [x] 应用洞察工具
  • [x] RBAC工具
  • [x] 通信服务(第一阶段)⭐
  • [x] Azure人工智能搜索工具⭐

🔜 计划的

  • []通信服务(第2阶段:WhatsApp、聊天、客房、呼叫自动化)
  • []关键保险库工具
  • []事件网格工具
  • []服务总线工具
  • []认知服务工具

🤝 贡献

我们欢迎捐款!看 贡献.md 作为指导方针。

  1. 分叉存储库
  2. 创建一个功能分支(`git checkout-b feat/bamazing feature`)
  3. 提交你的更改(`git Commit-m'壮举:添加惊人的功能``)
  4. 推送到分支(`git推送起源壮举/惊人功能`)
  5. 打开拉取请求

📄 许可证

麻省理工学院-参见 许可证


🙏 致谢


Made with ❤️ for the Azure community