Azure Resource Finder

Azure resource lookup

by microsoft · MIT license · ★ 3,077 on GitHub

Azure resource lookup cover

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…

---
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 cost-optimization from the optional azure-cost plugin), or non-Azure clouds."
license: MIT
metadata:
  author: Microsoft
  version: "1.2.3"
---

# 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

Overview

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.

Manual install (npx, ZIP)
Claude Codenpx skills add microsoft/skills --skill azure-resource-lookup -g -a claude-code
Claude Code (degit)npx degit microsoft/skills/.github/plugins/azure-skills/skills/azure-resource-lookup#main ~/.claude/skills/azure-resource-lookup
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.4 KB
Read SKILL.md here
microsoft/main1 file shown
SKILL.md
Show the full text109 lines

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 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 table

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)
1---
2name: azure-resource-lookup
3description: "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 cost-optimization from the optional azure-cost plugin), or non-Azure clouds."
4license: MIT
5metadata:
6 author: Microsoft
7 version: "1.2.3"
8---
9 
10# Azure Resource Lookup
11 
12List, 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.
13 
14## When to Use This Skill
15 
16Use this skill when the user wants to:
17- **List resources** of any type (VMs, web apps, storage accounts, container apps, databases, etc.)
18- **Show resources** in a specific subscription or resource group
19- Query resources **across multiple subscriptions** or resource types
20- Find **orphaned resources** (unattached disks, unused NICs, idle IPs)
21- Discover resources **missing required tags** or configurations
22- Get a **resource inventory** spanning multiple types
23- Find resources in a **specific state** (unhealthy, failed provisioning, stopped)
24- Answer "**what resources do I have?**" or "**show me my Azure resources**"
25- **List web apps, websites, or App Services**
26 
27> ⚠️ **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.
28 
29> 💡 **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.
30 
31## Quick Reference
32 
33| Property | Value |
34|----------|-------|
35| **Query Language** | KQL (Kusto Query Language subset) |
36| **CLI Command** | `az graph query -q "<KQL>" -o table` |
37| **Extension** | `az extension add --name resource-graph` |
38| **MCP Tool** | `extension_cli_generate` with intent for `az graph query` |
39| **Best For** | Cross-subscription queries, orphaned resources, tag audits |
40 
41## MCP Tools
42 
43| Tool | Purpose | When to Use |
44|------|---------|-------------|
45| `extension_cli_generate` | Generate `az graph query` commands | Primary tool — generate ARG queries from user intent |
46| `mcp_azure_mcp_subscription_list` | List available subscriptions | Discover subscription scope before querying |
47| `mcp_azure_mcp_group_list` | List resource groups | Narrow query scope |
48 
49## Workflow
50 
51### Step 1: Check for a Dedicated MCP Tool
52 
53For single-resource-type queries, check if a dedicated MCP tool can handle it:
54 
55| Resource Type | MCP Tool | Coverage |
56|---|---|---|
57| Virtual Machines | `compute` | ✅ Full — list, details, sizes |
58| Storage Accounts | `storage` | ✅ Full — accounts, blobs, tables |
59| Cosmos DB | `cosmos` | ✅ Full — accounts, databases, queries |
60| Key Vault | `keyvault` | ⚠️ Partial — secrets/keys only, no vault listing |
61| SQL Databases | `sql` | ⚠️ Partial — requires resource group name |
62| Container Registries | `acr` | ✅ Full — list registries |
63| Kubernetes (AKS) | `aks` | ✅ Full — clusters, node pools |
64| App Service / Web Apps | `appservice` | ❌ No list command — use ARG |
65| Container Apps | — | ❌ No MCP tool — use ARG |
66| Event Hubs | `eventhubs` | ✅ Full — namespaces, hubs |
67| Service Bus | `servicebus` | ✅ Full — queues, topics |
68 
69If a dedicated tool is available with full coverage, use it. Otherwise proceed to Step 2.
70 
71### Step 2: Generate the ARG Query
72 
73Use `extension_cli_generate` to build the `az graph query` command:
74 
75```yaml
76mcp_azure_mcp_extension_cli_generate
77 intent: "query Azure Resource Graph to <user's request>"
78 cli-type: "az"
79```
80 
81See [Azure Resource Graph Query Patterns](references/azure-resource-graph.md) for common KQL patterns.
82 
83### Step 3: Execute and Format Results
84 
85Run the generated command. Use `--query` (JMESPath) to shape output:
86 
87```bash
88az graph query -q "<KQL>" --query "data[].{name:name, type:type, rg:resourceGroup}" -o table
89```
90 
91Use `--first N` to limit results. Use `--subscriptions` to scope.
92 
93## Error Handling
94 
95| Error | Cause | Fix |
96|-------|-------|-----|
97| `resource-graph extension not found` | Extension not installed | `az extension add --name resource-graph` |
98| `AuthorizationFailed` | No read access to subscription | Check RBAC — need Reader role |
99| `BadRequest` on query | Invalid KQL syntax | Verify table/column names; use `=~` for case-insensitive type matching |
100| Empty results | No matching resources or wrong scope | Check `--subscriptions` flag; verify resource type spelling |
101 
102## Constraints
103 
104- ✅ **Always** use `=~` for case-insensitive type matching (types are lowercase)
105- ✅ **Always** scope queries with `--subscriptions` or `--first` for large tenants
106- ✅ **Prefer** dedicated MCP tools for single-resource-type queries
107- ❌ **Never** use ARG for real-time monitoring (data has slight delay)
108- ❌ **Never** attempt mutations through ARG (read-only)
109 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 3,077
Checked
Source
microsoft/skills ↗
Creator
microsoft · 31 listings
View creator

Similar skills

See all →
SkillAzure App Deployermicrosoft/skills · by microsoftEnd-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 template. Handles moving existing apps to Azure without rewriting or with minimal changes. WHEN: bring your app to Azure, plan my app, cost to run, is my code ready to deploy, deploy my app to the cloud, deploy all my services, what Azure services do I need, plan my Azure deployment, deploy my new app to Azure, one-click deploy, I have an app and want it on Azure, migrate my app to Azure, help me get started, build an app, no code yet, starter project. DO NOT USE FOR: use azd for deployment(use azure-deploy), optimizing existing costs (use cost-optimization), code readiness checks only (use azure-app-onboard-prereq).★ 3.1k GitHub starsSkillAzure Deployment Auditormicrosoft/skills · by microsoftAssess 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 deployed — frameworks, dependencies, and configuration. Checks whether dependencies are compatible and identifies deployment blockers and unsupported frameworks. WHEN: "evaluate my repo", "is my app ready to deploy", "what does my app need to deploy", "what do I need before deploying", "does my app need", "can I ship this to Azure", "scan my repo for issues", "is this app deployable", "check if my app is ready for Azure", "do I need a Dockerfile", "what's blocking my deployment", "are there any blockers", "are my dependencies compatible", "does Azure support my framework", "what needs to change before deploying", "check my app configuration".★ 3.1k GitHub starsSkillAzure AI Gatewaymicrosoft/azure-skills · by microsoftConfigure 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 gateway, LLM policies, configure AI backend, token metrics, AI cost control, convert API to MCP, import OpenAPI to gateway.★ 1.6k GitHub starsSkillKusto Query Buildermicrosoft/azure-skills · by microsoftQuery and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection.★ 1.6k GitHub starsAgentDocker CLI Container Gatewaydocker/mcp-gateway · by dockerDocker's own CLI plugin: run any server from the Docker MCP Catalog in its own container, behind one connection, with secrets kept out of env vars.★ 1.6k GitHub starsAgentAgent Marketplaceelisymlabs/elisym · by elisymlabsOpen infrastructure for AI agents to discover and pay each other★ 17 GitHub stars

More from microsoft

AgentPlaywright Browser Automation MCPmicrosoft/playwright-mcp · by microsoftMicrosoft's browser automation server: your AI opens pages, clicks, fills forms and reads the page through the accessibility tree.★ 37.5k GitHub starsSkillUsage-Based Agent Trainermicrosoft/SkillOpt · by microsoftUse when the user wants their Claude agent to self-improve from past usage, asks about a nightly/offline 'sleep' or 'dream' cycle, memory/skill consolidation, or says things like 'make my agent better the more I use it', 'review my past sessions', 'learn my pr★ 17.3k GitHub starsSkillAzure App Deployermicrosoft/skills · by microsoftEnd-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 template. Handles moving existing apps to Azure without rewriting or with minimal changes. WHEN: bring your app to Azure, plan my app, cost to run, is my code ready to deploy, deploy my app to the cloud, deploy all my services, what Azure services do I need, plan my Azure deployment, deploy my new app to Azure, one-click deploy, I have an app and want it on Azure, migrate my app to Azure, help me get started, build an app, no code yet, starter project. DO NOT USE FOR: use azd for deployment(use azure-deploy), optimizing existing costs (use cost-optimization), code readiness checks only (use azure-app-onboard-prereq).★ 3.1k GitHub starsSkillAzure Deployment Auditormicrosoft/skills · by microsoftAssess 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 deployed — frameworks, dependencies, and configuration. Checks whether dependencies are compatible and identifies deployment blockers and unsupported frameworks. WHEN: "evaluate my repo", "is my app ready to deploy", "what does my app need to deploy", "what do I need before deploying", "does my app need", "can I ship this to Azure", "scan my repo for issues", "is this app deployable", "check if my app is ready for Azure", "do I need a Dockerfile", "what's blocking my deployment", "are there any blockers", "are my dependencies compatible", "does Azure support my framework", "what needs to change before deploying", "check my app configuration".★ 3.1k GitHub starsSkillAzure Security Auditormicrosoft/skills · by microsoftRun Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy/compliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance assessment.★ 3.1k GitHub starsSkillAzure AI Gatewaymicrosoft/azure-skills · by microsoftConfigure 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 gateway, LLM policies, configure AI backend, token metrics, AI cost control, convert API to MCP, import OpenAPI to gateway.★ 1.6k GitHub stars