Get the FREE Ultimate OpenClaw Setup Guide β†’

Azure Resource Lookup

npx machina-cli add skill microsoft/GitHub-Copilot-for-Azure/azure-resource-lookup --openclaw
Files (1)
SKILL.md
5.5 KB

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"

πŸ’‘ 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

PropertyValue
Query LanguageKQL (Kusto Query Language subset)
CLI Commandaz graph query -q "<KQL>" -o table
Extensionaz extension add --name resource-graph
MCP Toolextension_cli_generate with intent for az graph query
Best ForCross-subscription queries, orphaned resources, tag audits

MCP Tools

ToolPurposeWhen to Use
extension_cli_generateGenerate az graph query commandsPrimary tool β€” generate ARG queries from user intent
mcp_azure_mcp_subscription_listList available subscriptionsDiscover subscription scope before querying
mcp_azure_mcp_group_listList resource groupsNarrow 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 TypeMCP ToolCoverage
Virtual Machinescomputeβœ… Full β€” list, details, sizes
Storage Accountsstorageβœ… Full β€” accounts, blobs, tables
Cosmos DBcosmosβœ… Full β€” accounts, databases, queries
Key Vaultkeyvault⚠️ Partial β€” secrets/keys only, no vault listing
SQL Databasessql⚠️ Partial β€” requires resource group name
Container Registriesacrβœ… Full β€” list registries
Kubernetes (AKS)aksβœ… Full β€” clusters, node pools
App Service / Web Appsappservice❌ No list command β€” use ARG
Container Appsβ€”βŒ No MCP tool β€” use ARG
Event Hubseventhubsβœ… Full β€” namespaces, hubs
Service Busservicebusβœ… 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

ErrorCauseFix
resource-graph extension not foundExtension not installedaz extension add --name resource-graph
AuthorizationFailedNo read access to subscriptionCheck RBAC β€” need Reader role
BadRequest on queryInvalid KQL syntaxVerify table/column names; use =~ for case-insensitive type matching
Empty resultsNo matching resources or wrong scopeCheck --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

git clone https://github.com/microsoft/GitHub-Copilot-for-Azure/blob/main/plugin/skills/azure-resource-lookup/SKILL.mdView on GitHub

Overview

Azure Resource Lookup lets you list, find, and discover Azure resources of any type across subscriptions and resource groups. It uses Azure Resource Graph for fast cross-subscription queries when a dedicated MCP tool doesn’t cover a resource type, enabling you to answer what resources you have and build a comprehensive inventory.

How This Skill Works

The skill relies on KQL-based queries executed via the az graph query command to search resources across scopes. If a dedicated MCP tool exists for the resource type, use that tool first per the routing guidance; if not, fall back to Azure Resource Graph with the resource-graph extension to retrieve results across subscriptions and resource groups.

When to Use It

  • List resources of any type across multiple subscriptions
  • Show resources within a specific subscription or resource group
  • Query across subscriptions to find orphaned resources (unattached disks, idle NICs)
  • Identify resources missing required tags or configurations
  • Get a cross-type resource inventory and answer what resources you have

Quick Start

  1. Step 1: Determine scope and whether a dedicated MCP tool exists for the resource type
  2. Step 2: If no tool exists, enable ARG by installing the extension: az extension add --name resource-graph
  3. Step 3: Run a KQL query with az graph query -q "<your KQL here>" -o table to return results

Best Practices

  • Check for a dedicated MCP tool for the resource type before using ARG, per the workflow.
  • Use Azure Resource Graph for cross-subscription and multi-type queries when no single tool covers the type.
  • Narrow the scope to a subscription or resource group first, then widen to multiple scopes to reduce query load.
  • Include tag and configuration audits to identify missing or misconfigured resources.
  • Export or log results to maintain a centralized resource inventory and audit trail

Example Use Cases

  • List all virtual machines across subscriptions
  • Show all storage accounts in a specific resource group
  • Find resources missing the CostCenter tag across the tenant
  • Identify unattached disks across subscriptions
  • Inventory web apps and app services across subscriptions

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers β†—