Deep expertise in running an initial Azure tenant assessment - subscription inventory, resource catalog, security posture snapshot, cost overview, and plugin setup recommendations via ARM REST API and microsoft-azure-mcp tools. Acts as the entry point for any new Azure engagement, surveying the tenant and mapping discovered resource types to the right plugins.
Resources
1Install
npx skillscat add markus41/claude-m/azure-tenant-assessment Install via the SkillsCat registry.
Azure Tenant Assessment
This skill provides the entry-point workflow for any new Azure engagement — surveying the tenant, cataloging resources, snapshotting security posture, and recommending the right plugins from this marketplace.
Integration Context Contract
Canonical contract: `docs/integration-context.md`
| Workflow | tenantId | subscriptionId | environmentCloud | principalType | scopesOrRoles |
|---|---|---|---|---|---|
| List subscriptions | required | not required | AzureCloud* |
delegated-user or service-principal |
Azure Reader on any subscription |
| List resource groups + resources | required | required | AzureCloud* |
delegated-user or service-principal |
Azure Reader at subscription scope |
| Cost overview (optional) | required | required | AzureCloud* |
delegated-user or service-principal |
CostManagement.Read + Azure Reader |
| Security snapshot (optional) | required | required | AzureCloud* |
delegated-user or service-principal |
SecurityCenter.Read + Azure Reader |
* Use sovereign cloud values (AzureUSGovernment, AzureChinaCloud) when applicable.
Fail fast before API calls when required context is missing. Redact tenant/subscription/object IDs in all outputs.
MCP Tool Detection
Before attempting live assessment, detect whether microsoft-azure-mcp MCP tools are available:
- Attempt to call
azure_list_subscriptionswith no parameters. - If the call succeeds → live mode: proceed with full MCP-based assessment.
- If the call fails with "unknown tool" or similar → guided mode: switch to the fallback guided checklist.
Never assume MCP availability. Always detect and adapt.
Assessment Methodology
Execute in this order for live mode:
- Subscriptions — Call
azure_list_subscriptions. Collect:subscriptionId,displayName,state,tenantId. - Resource Groups — For each subscription, call
azure_list_resource_groups. Collect:name,location,provisioningState, resource count (from resources step). - Resources — For each subscription, call
azure_list_resources. For--depth full: also call per-RG for completeness. Collect:name,type,location,resourceGroup. - Taxonomy — Normalize resource types (title case), group by type, count occurrences, extract ARM namespace prefixes.
- Tenant Profile — Classify as compute-heavy / data-heavy / networking-heavy / security-focused / mixed per
references/plugin-capability-matrix.md. - Plugin Mapping — Map discovered ARM prefixes to plugins using the capability matrix; add baseline always-recommend plugins.
- Report — Write markdown report and print to screen.
For --depth quick: skip per-RG resource calls; use subscription-level resource list only.
Assessment Report Format
Save report as azure-assessment-YYYY-MM-DD.md where YYYY-MM-DD is today's date.
# Azure Tenant Assessment
**Date**: YYYY-MM-DD
**Tenant**: xxxx...yyyy
**Assessed by**: azure-tenant-assessment v1.0.0
**Mode**: Live (microsoft-azure-mcp) | Guided
---
## Executive Summary
| Item | Value |
|---|---|
| Subscriptions | N |
| Resource Groups | N |
| Total Resources | N |
| Regions | N |
| Tenant Profile | compute-heavy / data-heavy / networking-heavy / mixed |
| Assessment Mode | Live / Guided |
<2–3 sentence narrative summary of what was found.>
---
## Subscription Inventory
| Subscription | ID (redacted) | State | Resource Groups |
|---|---|---|---|
| Name | xxxx...yyyy | Enabled | N |
---
## Resource Catalog
| Resource Type | Count | Recommended Plugin(s) |
|---|---|---|
| Microsoft.Compute/virtualMachines | N | azure-containers |
| ... | | |
---
## Resource Distribution
### By Region
| Region | Resources |
|---|---|
| eastus | N |
### Top Resource Groups
| Resource Group | Subscription | Resources |
|---|---|---|
| rg-production | xxxx...yyyy | N |
---
## Security Posture Summary
| Check | Status | Notes |
|---|---|---|
| Key Vault present | Yes / No / Unknown | |
| Monitoring/Insights resources | Yes / No / Unknown | |
| Policy resources | Yes / No / Unknown | |
| Entra ID coverage | Assumed / Confirmed | |
---
## Recommended Plugins
| Priority | Plugin | Why | Install |
|---|---|---|---|
| Tier 1 | azure-storage | 12 storage accounts found | `/plugin install azure-storage@claude-m-microsoft-marketplace` |
| Tier 2 | azure-cost-governance | Baseline — every tenant | `/plugin install azure-cost-governance@claude-m-microsoft-marketplace` |
---
## Next Steps
1. Run `/azure-tenant-plugin-setup` to install recommended plugins
2. Run `azure-cost-governance` cost query for spend baseline
3. Run `azure-policy-security` policy compliance check
4. Review security posture gaps noted abovePlugin Capability Matrix Reference
Full resource type → plugin mapping: `references/plugin-capability-matrix.md`
Always include the four baseline plugins regardless of what resources are found:
microsoft-azure-mcp(unless already installed)azure-cost-governanceazure-policy-securityentra-id-security
Fallback Guided Checklist
When MCP tools are not available, ask the user the following structured questions:
- Subscription count: How many Azure subscriptions does this tenant have?
- Resource types: Which of the following resource categories are present? (Compute/VMs, Containers, Web Apps, Storage, Databases, Networking, Key Vaults, Monitoring, Fabric/Analytics, DevOps)
- Estimated resources: Roughly how many total resources are deployed? (<100 / 100–500 / 500–2000 / 2000+)
- Primary regions: Which Azure regions are primarily used?
- Cloud environment: AzureCloud (global) / AzureUSGovernment / AzureChinaCloud
Build the report from these answers using the same format as live mode. Mark the report **Mode**: Guided and note that counts are estimates.
Reference Files
| File | Purpose |
|---|---|
references/plugin-capability-matrix.md |
ARM resource type → plugin mapping table |
references/operational-knowledge.md |
ARM API endpoints, pagination, prerequisites, failure modes |
commands/azure-tenant-setup.md |
Auth and MCP connectivity validation |
commands/azure-tenant-assess.md |
Full assessment execution |
commands/azure-tenant-plugin-setup.md |
Plugin recommendation and installation |
agents/azure-tenant-assessment-reviewer.md |
Post-assessment report review |
Progressive Disclosure — Reference Files
| Topic | File |
|---|---|
| ARM API endpoints, pagination, prerequisites, failure modes | `references/operational-knowledge.md` |
| ARM resource type to plugin mapping table | `references/plugin-capability-matrix.md` |
| Composite health scoring across identity, security, compliance, collaboration, governance | `references/tenant-health-scoring.md` |
| CIS M365 Benchmark gap checks, NIST CSF and ISO 27001 mapping, priority matrix | `references/compliance-gaps.md` |
| 30/60/90-day remediation phases, rollback procedures, stakeholder templates, re-assessment | `references/remediation-roadmap.md` |