🔷 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 作为指导方针。
- 分叉存储库
- 创建一个功能分支(\
git checkout-b feat/bamazing feature\) - 提交你的更改(\
git Commit-m'壮举:添加惊人的功能\\`) - 推送到分支(\
git推送起源壮举/惊人功能\) - 打开拉取请求
______________________________________________________________________
📄 许可证
麻省理工学院-参见 许可证
______________________________________________________________________
🙏 致谢
- Microsoft Azure MCP服务器(.NET) -灵感来源
- 模型上下文协议 -MCP规范
- FastMCP -Python MCP SDK
______________________________________________________________________
Made with ❤️ for the Azure community
