azure-resource-lookup
List, find, and show Azure resources across subscriptions or resource groups. Handles prompts like "list the websites in my subscription", "list my web apps", "show my app services", "list virtual machines", "list my VMs", "show storage accounts", "find container apps", and "what resources do I have
By microsoft · 575,745 installs
npx skills add microsoft/azure-skills --skill azure-resource-lookup
Source repository · Upstream listing
Azure Resource Lookup
List, find, and discover Azure resources of any type across subscriptions and resource groups. Use Azure Resource Graph (ARG) for fast, cross cutting queries when dedicated MCP tools don't cover the resource type.
When to Use This Skill
Use this skill when the user wants to:
List resources of any type (VMs, web apps, storage accounts, container apps, databases, etc.)
Show resources in a specific subscription or resource group
Query resources across multiple subscriptions or resource types
Find orphaned resources (unattached disks, unused NICs, idle IPs)
Discover resources missing required tags or configurations
Get a resource inventory spanning multiple types
Find resources in a specific state (unhealthy, failed provisioning, stopped)
Answer " what resources do I have? " or " show me my Azure resources "
List web apps, websites, or App Services
⚠️ Warning: App Service / Web Apps have no dedicated MCP list command. Prompts like "list websites", "list web apps", or "list app services" must route through this skill to use Azure Resource Graph.
💡 Tip: For single resource type queries, first check if a dedicated MCP tool can handle it (see routing table below). If none exists, use Azure Resource Graph.
Quick Reference
Property Value
Query Language KQL (Kusto Query Language subset)
CLI Command az graph query q "<KQL " o table
Extension az extension add name resource graph
MCP Tool extension cli generate with intent for az graph query
Best For Cross subscription queries, orphaned resources, tag audits
MCP Tools
Tool Purpose When to Use
extension cli generate Generate az graph query commands Primary tool — generate ARG queries from user intent
mcp azure mcp subscription list List available subscriptions Discover subscription scope before querying
mcp azure mcp group list List resource groups Narrow query scope
Workflow
Step 1: Check for a Dedicated MCP Tool
For single resource type queries, check if a dedicated MCP tool can handle it:
Resource Type MCP Tool Coverage
Virtual Machines compute ✅ Full — list, details, sizes
Storage Accounts storage ✅ Full — accounts, blobs, tables
Cosmos DB cosmos ✅ Full — accounts, databases, queries
Key Vault keyvault ⚠️ Partial — secrets/keys only, no vault listing
SQL Databases sql ⚠️ Partial — requires resource group name
Container Registries acr ✅ Full — list registries
Kubernetes (AKS) aks ✅ Full — clusters, node pools
App Service / Web Apps appservice ❌ No list command — use ARG
Container Apps — ❌ No MCP tool — use ARG
Event Hubs eventhubs ✅ Full — namespaces, hubs
Service Bus servicebus ✅ Full — queues, topics
If a dedicated tool is available with full coverage, use it. Otherwise proceed to Step 2.
Step 2: Generate the ARG Query
Use extension cli generate to build the az graph query command:
See [Azure Resource Graph Query Patterns](references/azure resource graph.md) for common KQL patterns.
Step 3: Execute and Format Results
Run the generated command. Use query (JMESPath) to shape output:
Use first N to limit results. Use subscriptions to scope.
Error Handling
Error Cause Fix
resource graph extension not found Extension not installed az extension add name resource graph
AuthorizationFailed No read access to subscription Check RBAC — need Reader role
BadRequest on query Invalid KQL syntax Verify table/column names; use =~ for case insensitive type matching
Empty results No matching resources or wrong scope Check subscriptions flag; verify resource type spelling
Constraints
✅ Always use =~ for case insensitive type matching (types are lowercase)
✅ Always scope queries with subscriptions or first for large tenants
✅ Prefer dedicated MCP tools for single resource type queries
❌ Never use ARG for real time monitoring (data has slight delay)
❌ Never attempt mutations through ARG (read only)