
azure-resource-lookup
熱門列出、尋找及顯示跨訂閱或資源群組的 Azure 資源。可處理如「列出我訂閱中的網站」、「列出我的 Web 應用程式」、「顯示我的 App Service」、「列出虛擬機器」、「列出我的 VM」、「顯示儲存體帳戶」、「尋找容器應用程式」以及「我有哪些資源」等提示。用途:列出網站、列出 Web 應用程式、列出 App Service、顯示訂閱中的網站、資源盤點、依標籤尋找資源、標籤分析、孤兒資源探索(非成本分析)、未附加磁碟、依類型統計資源數量、跨訂閱查詢及 Azure Resource Graph 查詢。不適用於:部署/變更資源(請用 azure-deploy)、成本最佳化(請用 azure-cost)或非 Azure 雲端。
列出、尋找及顯示跨訂閱或資源群組的 Azure 資源。可處理如「列出我訂閱中的網站」、「列出我的 Web 應用程式」、「顯示我的 App Service」、「列出虛擬機器」、「列出我的 VM」、「顯示儲存體帳戶」、「尋找容器應用程式」以及「我有哪些資源」等提示。用途:列出網站、列出 Web 應用程式、列出 App Service、顯示訂閱中的網站、資源盤點、依標籤尋找資源、標籤分析、孤兒資源探索(非成本分析)、未附加磁碟、依類型統計資源數量、跨訂閱查詢及 Azure Resource Graph 查詢。不適用於:部署/變更資源(請用 azure-deploy)、成本最佳化(請用 azure-cost)或非 Azure 雲端。
Azure Resource Lookup
列出、尋找及探索任何類型的 Azure 資源,範圍涵蓋多個訂閱與資源群組。當專屬 MCP 工具無法涵蓋特定資源類型時,使用 Azure Resource Graph (ARG) 進行快速、跨領域的查詢。
何時使用此技能
當使用者想要:
- 列出資源(任何類型:VM、Web 應用程式、儲存體帳戶、容器應用程式、資料庫等)
- 顯示資源(在特定訂閱或資源群組中)
- 查詢跨多個訂閱或資源類型的資源
- 尋找孤兒資源(未附加磁碟、未使用的 NIC、閒置 IP)
- 發現缺少必要標籤或設定的資源
- 取得涵蓋多種類型的資源盤點
- 尋找處於特定狀態的資源(異常、佈建失敗、已停止)
- 回答「我有哪些資源?」或「顯示我的 Azure 資源」
- 列出 Web 應用程式、網站或 App Service
⚠️ 警告: App Service / Web Apps 沒有專屬的 MCP
list命令。像「列出網站」、「列出 Web 應用程式」或「列出 App Service」這類提示必須透過此技能使用 Azure Resource Graph。
💡 提示: 對於單一資源類型的查詢,請先檢查是否有專屬 MCP 工具可以處理(請參閱下方路由表)。如果沒有,再使用 Azure Resource Graph。
快速參考
| 屬性 | 值 |
|---|---|
| 查詢語言 | KQL (Kusto Query Language 子集) |
| 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 |
✅ 完整 — 叢集、節點池 |
| App Service / Web Apps | appservice |
❌ 無 list 命令 — 請使用 ARG |
| 容器應用程式 | — | ❌ 無 MCP 工具 — 請使用 ARG |
| Event Hubs | eventhubs |
✅ 完整 — 命名空間、中樞 |
| Service Bus | servicebus |
✅ 完整 — 佇列、主題 |
如果專屬工具可用且涵蓋完整,請使用它。否則請繼續步驟 2。
步驟 2:產生 ARG 查詢
使用 extension_cli_generate 來建立 az graph query 命令:
mcp_azure_mcp_extension_cli_generate
intent: "查詢 Azure Resource Graph 以 <使用者的請求>"
cli-type: "az"
請參閱 Azure Resource Graph 查詢模式 以了解常見的 KQL 模式。
步驟 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 角色 |
BadRequest on query |
KQL 語法無效 | 確認資料表/欄位名稱;使用 =~ 進行不區分大小寫的類型比對 |
| 空結果 | 無符合的資源或範圍錯誤 | 檢查 --subscriptions 旗標;確認資源類型拼寫 |
限制
- ✅ 一律使用
=~進行不區分大小寫的類型比對(類型皆為小寫) - ✅ 一律使用
--subscriptions或--first來限定大型租用戶的查詢範圍 - ✅ 優先使用專屬 MCP 工具處理單一資源類型的查詢
- ❌ 絕不使用 ARG 進行即時監控(資料有輕微延遲)
- ❌ 絕不透過 ARG 嘗試修改操作(唯讀)





