All skills
microsoft avatar

/azure-resource-lookup

@cda1f27 official

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.

Use this Skill: https://skilld.dev/gh/microsoft/github-copilot-for-azure/azure-resource-lookup

This session only. Nothing lands on disk.

SKILL.md

β‰ˆ198 tokens always: the name and description. β‰ˆ1.2k when used: this file. β‰ˆ1.3k more on demand in 2 files.

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)

Source: SKILL.md on GitHub

No alerts8d4 checks Β· Risk SAFE
  • Gen Agent Trust Hub8d

    This skill provides utility for querying Azure resource metadata using Azure Resource Graph. It follows standard practices for Azure administration and utilizes read-only commands for resource discovery.

  • Socket8d

    No alerts

  • Snyk8d

    Risk: LOW Β· No issues

  • Runlayer7mo

    2 files scanned Β· No issues

Signed by skilld at cda1f27. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 19 hours ago.

Activeupdated last week
metadata
{
  "author": "Microsoft",
  "version": "0.0.0-placeholder"
}
  • azure
  • resource-graph
  • kql
  • inventory
  • cross-subscription
  • vm
  • web-apps
  • storage
  • container-apps
  • tagging

README badge

README badge for microsoft/github-copilot-for-azure/azure-resource-lookup

Queries and lists Azure resources across subscriptions and resource groups using Azure Resource Graph, handling resource discovery requests that lack dedicated MCP tools like "list web apps" or "find orphaned disks". Targets cross-subscription inventory, tag audits, and resource state queries via KQL.

Generated from the current SKILL.md.

Does this skill handle App Service and Web Apps listing?
Yes. App Service has no dedicated MCP list command, so this skill uses Azure Resource Graph to query web apps and app services by intent.
Can I query across multiple subscriptions?
Yes. The skill generates Azure Resource Graph queries scoped with the --subscriptions flag to search across multiple subscriptions at once.
What if a dedicated MCP tool exists for my resource type?
The skill routes to dedicated MCP tools first (e.g., compute for VMs, storage for storage accounts). Use this skill only when no dedicated tool covers your resource type.
Can I use this to find orphaned or unattached resources?
Yes. The skill supports queries for orphaned resources like unattached disks, unused NICs, and idle IPs using Azure Resource Graph patterns.
Does this skill support mutations or deployments?
No. This skill is read-only and queries resources only. For deploying or modifying resources, use the azure-deploy skill.

Generated from the current SKILL.md. These answers refresh after source changes.