mcpField
A
azure-resource-lookup

azure-resource-lookup

官方
github.com/microsoft云与 DevOps1.6k569.1k 次安装今天更新
代码仓库

关于 azure-resource-lookup

azure-resource-lookup 是一个 Agent Skill,用于跨订阅和资源组列出、查找和发现各类 Azure 资源。当没有专用 MCP 工具覆盖某种资源类型时,它通过 Azure Resource Graph 执行查询。

主要功能

  1. 01跨订阅和资源组的资源清单查询
  2. 02通过 Azure Resource Graph 生成 KQL 查询
  3. 03专用 MCP 工具优先的资源类型路由
  4. 04查找孤立资源与缺失标签的资源
  5. 05查询结果的范围限定与输出格式化

适用场景

  1. 01列出订阅中的 Web 应用、容器应用等资源
  2. 02查找未挂载的磁盘或未使用的网卡等孤立资源
  3. 03审计资源标签或按状态筛选资源

MCP 相关

该 Skill 通过 extension_cli_generate 等 Azure MCP 工具生成 az graph query 命令,并结合订阅和资源组列表工具缩小查询范围。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/microsoft/azure-skills --skill azure-resource-lookup

安装后在 Claude Code 中输入/azure-resource-lookup确认已加载。

附带文件references/azure-resource-graph.md

详细介绍

Azure Resource Lookup

列出、查找和发现订阅及资源组中的任意类型 Azure 资源。当专用 MCP 工具无法覆盖资源类型时,使用 Azure Resource Graph(ARG)执行快速的跨范围查询。

何时使用此技能

当用户希望执行以下操作时,请使用此技能:

  • 列出资源,无论类型为何(VM、Web 应用、存储帐户、容器应用、数据库等)
  • 显示资源,指定订阅或资源组中的资源
  • 查询多个订阅或多种资源类型中的资源
  • 查找孤立资源(未附加的磁盘、未使用的 NIC、空闲的 IP)
  • 发现缺少必需标记或配置的资源
  • 获取跨多种类型的资源清单
  • 查找处于特定状态的资源(运行状况不佳、预配失败、已停止)
  • 回答“我有哪些资源?”或“显示我的 Azure 资源”
  • 列出 Web 应用、网站或 App Services

⚠️ 警告: App Service / Web Apps 没有专用 MCP list 命令。“列出网站”“列出 Web 应用”或“列出 App Services”之类的提示必须通过此技能路由,以使用 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 DBcosmos✅ 完整 — 帐户、数据库、查询
Key Vaultkeyvault⚠️ 部分 — 仅密钥和机密,不支持列出保管库
SQL 数据库sql⚠️ 部分 — 需要资源组名称
容器注册表acr✅ 完整 — 列出注册表
Kubernetes(AKS)aks✅ 完整 — 集群、节点池
App Service / Web Appsappservice❌ 无列表命令 — 使用 ARG
容器应用—❌ 无 MCP 工具 — 使用 ARG
Event Hubseventhubs✅ 完整 — 命名空间、事件中心
Service Busservicebus✅ 完整 — 队列、主题

如果有覆盖完整的专用工具,请使用该工具。否则,继续执行步骤 2。

步骤 2:生成 ARG 查询

使用 extension_cli_generate 构建 az graph query 命令:

mcp_azure_mcp_extension_cli_generate
  intent: "query Azure Resource Graph to <user's request>"
  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 — 需要 Reader 角色
查询时出现 BadRequestKQL 语法无效确认表名/列名;使用 =~ 进行不区分大小写的类型匹配
结果为空没有匹配的资源或范围错误检查 --subscriptions 标志;确认资源类型的拼写

限制

  • ✅ 始终使用 =~ 进行不区分大小写的类型匹配(类型为小写)
  • ✅ 对大型租户,始终使用 --subscriptions 或 --first 限定查询范围
  • ✅ 对单一资源类型的查询,优先使用专用 MCP 工具
  • ❌ 切勿将 ARG 用于实时监控(数据会有轻微延迟)
  • ❌ 切勿尝试通过 ARG 执行变更操作(只读)

评论

支持 Markdown