
azure-resource-lookup
热门列出、查找和展示跨订阅或资源组的 Azure 资源。处理诸如“列出我的订阅中的网站”、“列出我的 Web 应用”、“显示我的应用服务”、“列出虚拟机”、“列出我的 VM”、“显示存储帐户”、“查找容器应用”以及“我有哪些资源”等提示。用途:列出网站、列出 Web 应用、列出应用服务、显示订阅中的网站、资源清单、按标签查找资源、标签分析、孤立资源发现(非成本分析)、未附加磁盘、按类型统计资源、跨订阅查找以及 Azure Resource Graph 查询。请勿用于:部署/更改资源(使用 azure-deploy)、成本优化(使用 azure-cost)或非 Azure 云。
列出、查找和展示跨订阅或资源组的 Azure 资源。处理诸如\"列出我的订阅中的网站\"、\"列出我的 Web 应用\"、\"显示我的应用服务\"、\"列出虚拟机\"、\"列出我的 VM\"、\"显示存储帐户\"、\"查找容器应用\"以及\"我有哪些资源\"等提示。用途:列出网站、列出 Web 应用、列出应用服务、显示订阅中的网站、资源清单、按标签查找资源、标签分析、孤立资源发现(非成本分析)、未附加磁盘、按类型统计资源、跨订阅查找以及 Azure Resource Graph 查询。请勿用于:部署/更改资源(使用 azure-deploy)、成本优化(使用 azure-cost)或非 Azure 云。
Azure Resource Lookup
列出、查找和发现跨订阅和资源组的任意类型的 Azure 资源。当专用 MCP 工具无法覆盖资源类型时,使用 Azure Resource Graph (ARG) 进行快速的跨域查询。
何时使用此技能
当用户想要以下操作时使用此技能:
- 列出任意类型的资源(VM、Web 应用、存储帐户、容器应用、数据库等)
- 显示特定订阅或资源组中的资源
- 查询跨多个订阅或资源类型的资源
- 查找孤立资源(未附加磁盘、未使用的 NIC、空闲 IP)
- 发现缺少必需标签或配置的资源
- 获取涵盖多种类型的资源清单
- 查找处于特定状态的资源(不健康、预配失败、已停止)
- 回答“我有哪些资源?”或“显示我的 Azure 资源”
- 列出 Web 应用、网站或应用服务
⚠️ 警告: 应用服务/Web 应用没有专用的 MCP
list命令。诸如“列出网站”、“列出 Web 应用”或“列出应用服务”的提示必须通过此技能路由以使用 Azure Resource Graph。
💡 提示: 对于单一资源类型的查询,首先检查是否有专用 MCP 工具可以处理(见下方路由表)。如果没有,则使用 Azure Resource Graph。
快速参考
| 属性 | 值 |
|---|---|
| 查询语言 | KQL(Kusto 查询语言子集) |
| CLI 命令 | az graph query -q "<KQL>" -o table |
| 扩展 | az extension add --name resource-graph |
| MCP 工具 | extension_cli_generate,意图为 az graph query |
| 最佳用途 | 跨订阅查询、孤立资源、标签审计 |
MCP 工具
| 工具 | 用途 | 何时使用 |
|---|---|---|
extension_cli_generate |
生成 az graph query 命令 |
主要工具 — 从用户意图生成 ARG 查询 |
mcp_azure_mcp_subscription_list |
列出可用订阅 | 在查询前发现订阅范围 |
mcp_azure_mcp_group_list |
列出资源组 | 缩小查询范围 |
工作流程
步骤 1:检查是否有专用 MCP 工具
对于单一资源类型的查询,检查是否有专用 MCP 工具可以处理:
| 资源类型 | MCP 工具 | 覆盖范围 |
|---|---|---|
| 虚拟机 | compute |
✅ 完整 — 列表、详情、大小 |
| 存储帐户 | storage |
✅ 完整 — 帐户、Blob、表 |
| Cosmos DB | cosmos |
✅ 完整 — 帐户、数据库、查询 |
| Key Vault | keyvault |
⚠️ 部分 — 仅机密/密钥,无保管库列表 |
| SQL 数据库 | sql |
⚠️ 部分 — 需要资源组名称 |
| 容器注册表 | acr |
✅ 完整 — 列出注册表 |
| Kubernetes (AKS) | aks |
✅ 完整 — 集群、节点池 |
| 应用服务 / Web 应用 | appservice |
❌ 无 list 命令 — 使用 ARG |
| 容器应用 | — | ❌ 无 MCP 工具 — 使用 ARG |
| 事件中心 | eventhubs |
✅ 完整 — 命名空间、中心 |
| 服务总线 | servicebus |
✅ 完整 — 队列、主题 |
如果存在覆盖完整的专用工具,则使用它。否则继续执行步骤 2。
步骤 2:生成 ARG 查询
使用 extension_cli_generate 构建 az graph query 命令:
mcp_azure_mcp_extension_cli_generate
intent: "查询 Azure Resource Graph 以 <用户的请求>"
cli-type: "az"
有关常见 KQL 模式,请参阅 Azure Resource Graph 查询模式。
步骤 3:执行并格式化结果
运行生成的命令。使用 --query (JMESPath) 来格式化输出:
az graph query -q "<KQL>" --query "data[].{name:name, type:type, rg:resourceGroup}" -o table
使用 --first N 限制结果。使用 --subscriptions 限定范围。
错误处理
| 错误 | 原因 | 修复 |
|---|---|---|
resource-graph extension not found |
扩展未安装 | az extension add --name resource-graph |
AuthorizationFailed |
对订阅没有读取权限 | 检查 RBAC — 需要读者角色 |
BadRequest on query |
KQL 语法无效 | 验证表/列名;使用 =~ 进行不区分大小写的类型匹配 |
| 空结果 | 没有匹配的资源或范围错误 | 检查 --subscriptions 标志;验证资源类型拼写 |
约束
- ✅ 始终使用
=~进行不区分大小写的类型匹配(类型为小写) - ✅ 始终使用
--subscriptions或--first限定查询范围,适用于大型租户 - ✅ 优先使用专用 MCP 工具进行单一资源类型查询
- ❌ 切勿使用 ARG 进行实时监控(数据有轻微延迟)
- ❌ 切勿通过 ARG 尝试修改操作(只读)





