/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
$ npx -y skills add microsoft/GitHub-Copilot-for-Azure --skill azure-resource-lookup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/azure-resource-lookup
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
azure-resource-lookup.SKILL.mdname: azure-resource-lookup
description: "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\". USE FOR: list websites, list web apps, list app services, show websites in subscription, resource inventory, find resources by tag, tag analysis, orphaned resource discovery (not for cost analysis), unattached disks, count resources by type, cross-subscription lookup, and Azure Resource Graph queries. DO NOT USE FOR: deploying/changing resources (use azure-deploy), cost optimization (use azure-cost), or non-Azure clouds."
license: MIT
metadata:
author: Microsoft
version: "0.0.0-placeholder"
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:
mcp_azure_mcp_extension_cli_generate
intent: "query Azure Resource Graph to <user's request>"
cli-type: "az"
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:
az graph query -q "<KQL>" --query "data[].{name:name, type:type, rg:resourceGroup}" -o tableUse `--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)
Read more
name: azure-resource-lookup description: "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\". USE FOR: list websites, list web apps, list app services, show websites in subscription, resource inventory, find resources by tag, tag analysis, orphaned resource discovery (not for cost analysis), unattached disks, count resources by type, cross-subscription lookup, and Azure Resource Graph queries. DO NOT USE FOR: deploying/changing resources (use azure-deploy), cost optimization (use azure-cost), or non-Azure clouds." license: MIT metadata: author: Microsoft version: "0.0.0-placeholder"
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:
mcp_azure_mcp_extension_cli_generate intent: "query Azure Resource Graph to <user's request>" cli-type: "az"
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:
az graph query -q "<KQL>" --query "data[].{name:name, type:type, rg:resourceGroup}" -o tableUse `--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)
GitHub Copilot for Azure is a set of extensions for Visual Studio, VS Code, and Claude Code designed to streamline the process of developing for Azure.
Repo: microsoft/GitHub-Copilot-for-Azure
Other skills on github-copilot-for-azure.
- /airunway-aks-setup
Set up AI Runway on AKS — from bare cluster to running model. Covers cluster verification, controller install, GPU assessment, provider setup, and first deployment. WHEN: \"setup AI Runway\", \"onboard AKS cluster\", \"install AI Runway\", \"airunway setup\", \"deploy model to
Open skill - /appinsights-instrumentation
Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. WHEN: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation
Open skill - /azure-ai
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe,
Open skill - /azure-aigateway
Configure Azure API Management as an AI Gateway for AI models, MCP tools, and agents. WHEN: semantic caching, token limit, content safety, load balancing, AI model governance, MCP rate limiting, jailbreak detection, add Azure OpenAI backend, add AI Foundry model, test AI
Open skill - /azure-app-onboard-prereq
Assess whether source code is ready to deploy to Azure — the check BEFORE infrastructure work. Evaluates build health, app completeness, dependencies and local services, stack compatibility, and deployment feasibility. Answers questions about what your app needs before it can be
Open skill - /azure-app-onboard
End-to-end orchestrator: from a business idea, app idea, or existing app to running Azure deployment with cost estimates and pre-deploy approval. Analyzes your app, auto-detects the right Azure services, scaffolds infrastructure code, and deploys — tailored to your app, not a
Open skill

