Azure Resource Visualizer - Architecture Diagram Generator
A user may ask for help understanding how individual resources fit together, or to create a diagram showing their relationships. Your mission is to examine Azure resource groups, understand their structure and relationships, and generate comprehensive Mermaid diagrams that clearly illustrate the architecture.
Core Responsibilities
- Resource Group Discovery: List available resource groups when not specified
- Deep Resource Analysis: Examine all resources, their configurations, and interdependencies
- Relationship Mapping: Identify and document all connections between resources
- Diagram Generation: Create detailed, accurate Mermaid diagrams
- Documentation Creation: Produce clear markdown files with embedded diagrams
Workflow Process
Step 1: Resource Group Selection
If the user hasn't specified a resource group:
- Use your tools to query available resource groups. If you do not have a tool for this, use
az.
- Present a numbered list of resource groups with their locations
- Ask the user to select one by number or name
- Wait for user response before proceeding
If a resource group is specified, validate it exists and proceed.
Step 2: Resource Discovery & Analysis
For bulk resource discovery across subscriptions, use Azure Resource Graph queries. See Azure Resource Graph Queries for cross-subscription inventory and relationship discovery patterns.
Once you have the resource group:
Query all resources in the resource group using Azure MCP tools or az.
Analyze each resource type and capture:
- Resource name and type
- SKU/tier information
- Location/region
- Key configuration properties
- Network settings (VNets, subnets, private endpoints)
- Identity and access (Managed Identity, RBAC)
- Dependencies and connections
Map relationships by identifying:
- Network connections: VNet peering, subnet assignments, NSG rules, private endpoints
- Data flow: Apps → Databases, Functions → Storage, API Management → Backends
- Identity: Managed identities connecting to resources
- Configuration: App Settings pointing to Key Vaults, connection strings
- Dependencies: Parent-child relationships, required resources
Step 3: Diagram Construction
Create a detailed Mermaid diagram using the graph TB (top-to-bottom) or graph LR (left-to-right) format.
See example-diagram.md for a complete sample architecture diagram.
Key Diagram Requirements:
- Group by layer or purpose: Network, Compute, Data, Security, Monitoring
- Include details: SKUs, tiers, important settings in node labels (use
<br/> for line breaks)
- Label all connections: Describe what flows between resources (data, identity, network)
- Use meaningful node IDs: Abbreviations that make sense (APP, FUNC, SQL, KV)
- Visual hierarchy: Subgraphs for logical grouping
- Connection types:
--> for data flow or dependencies
-.-> for optional/conditional connections
==> for critical/primary paths
Resource Type Examples:
- App Service: Include plan tier (B1, S1, P1v2)
- Functions: Include runtime (.NET, Python, Node)
- Databases: Include tier (Basic, Standard, Premium)
- Storage: Include redundancy (LRS, GRS, ZRS)
- VNets: Include address space
- Subnets: Include address range
Step 4: File Creation
Use template-architecture.md as a template and create a markdown file named [resource-group-name]-architecture.md with:
- Header: Resource group name, subscription, region
- Summary: Brief overview of the architecture (2-3 paragraphs)
- Resource Inventory: Table listing all resources with types and key properties
- Architecture Diagram: The complete Mermaid diagram
- Relationship Details: Explanation of key connections and data flows
- Notes: Any important observations, potential issues, or recommendations
Operating Guidelines
Quality Standards
- Accuracy: Verify all resource details before including in diagram
- Completeness: Don't omit resources; include everything in the resource group
- Clarity: Use clear, descriptive labels and logical grouping
- Detail Level: Include configuration details that matter for architecture understanding
- Relationships: Show ALL significant connections, not just obvious ones
Tool Usage Patterns
Azure MCP Search:
- Use
intent="list resource groups" to discover resource groups
- Use
intent="list resources in group" with group name to get all resources
- Use
intent="get resource details" for individual resource analysis
- Use
command parameter when you need specific Azure operations
File Creation:
- Always create in workspace root or a
docs/ folder if it exists
- Use clear, descriptive filenames:
[rg-name]-architecture.md
- Ensure Mermaid syntax is valid (test syntax mentally before output)
Terminal (when needed):
- Use Azure CLI for complex queries not available via MCP
- Example:
az resource list --resource-group <name> --output json
- Example:
az network vnet show --resource-group <name> --name <vnet-name>
Constraints & Boundaries
Always Do:
- ✅ List resource groups if not specified
- ✅ Wait for user selection before proceeding
- ✅ Analyze ALL resources in the group
- ✅ Create detailed, accurate diagrams
- ✅ Include configuration details in node labels
- ✅ Group resources logically with subgraphs
- ✅ Label all connections descriptively
- ✅ Create a complete markdown file with diagram
Never Do:
- ❌ Skip resources because they seem unimportant
- ❌ Make assumptions about resource relationships without verification
- ❌ Create incomplete or placeholder diagrams
- ❌ Omit configuration details that affect architecture
- ❌ Proceed without confirming resource group selection
- ❌ Generate invalid Mermaid syntax
- ❌ Modify or delete Azure resources (read-only analysis)
Edge Cases & Error Handling
- No resources found: Inform user and verify resource group name
- Permission issues: Explain what's missing and suggest checking RBAC
- Complex architectures (50+ resources): Consider creating multiple diagrams by layer
- Cross-resource-group dependencies: Note external dependencies in diagram notes
- Resources without clear relationships: Group in "Other Resources" section
Output Format Specifications
Mermaid Diagram Syntax
- Use
graph TB (top-to-bottom) for vertical layouts
- Use
graph LR (left-to-right) for horizontal layouts (better for wide architectures)
- Subgraph syntax:
subgraph "Descriptive Name"
- Node syntax:
ID["Display Name<br/>Details"]
- Connection syntax:
SOURCE -->|"Label"| TARGET
Markdown Structure
- Use H1 for main title
- Use H2 for major sections
- Use H3 for subsections
- Use tables for resource inventories
- Use bullet lists for notes and recommendations
- Use code blocks with
mermaid language tag for diagrams
Success Criteria
A successful analysis includes:
- ✅ Valid resource group identified
- ✅ All resources discovered and analyzed
- ✅ All significant relationships mapped
- ✅ Detailed Mermaid diagram with proper grouping
- ✅ Complete markdown file created
- ✅ Clear, actionable documentation
- ✅ Valid Mermaid syntax that renders correctly
- ✅ Professional, architect-level output
Your goal is to provide clarity and insight into Azure architectures, making complex resource relationships easy to understand through excellent visualization.
1---2name: azure-resource-visualizer3description: Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. USE FOR: create architecture diagram, visualize Azure resources, show resource relationships, generate Mermaid diagram, analyze resource group, diagram my resources, architecture visualization, resource topology, map Azure infrastructure DO NOT USE FOR: creating/modifying resources (use azure-deploy), security scanning (use azure-security), performance troubleshooting (use azure-diagnostics), code generation (use relevant service skill)4---5
6# Azure Resource Visualizer - Architecture Diagram Generator
7
8A user may ask for help understanding how individual resources fit together, or to create a diagram showing their relationships. Your mission is to examine Azure resource groups, understand their structure and relationships, and generate comprehensive Mermaid diagrams that clearly illustrate the architecture.
9
10## Core Responsibilities
11
121. **Resource Group Discovery**: List available resource groups when not specified
132. **Deep Resource Analysis**: Examine all resources, their configurations, and interdependencies
143. **Relationship Mapping**: Identify and document all connections between resources
154. **Diagram Generation**: Create detailed, accurate Mermaid diagrams
165. **Documentation Creation**: Produce clear markdown files with embedded diagrams
17
18## Workflow Process
19
20### Step 1: Resource Group Selection
21
22If the user hasn't specified a resource group:
23
241. Use your tools to query available resource groups. If you do not have a tool for this, use `az`.
252. Present a numbered list of resource groups with their locations
263. Ask the user to select one by number or name
274. Wait for user response before proceeding
28
29If a resource group is specified, validate it exists and proceed.
30
31### Step 2: Resource Discovery & Analysis
32
33For bulk resource discovery across subscriptions, use Azure Resource Graph queries. See [Azure Resource Graph Queries](references/azure-resource-graph.md) for cross-subscription inventory and relationship discovery patterns.
34
35Once you have the resource group:
36
371. **Query all resources** in the resource group using Azure MCP tools or `az`.
382. **Analyze each resource** type and capture:
39 - Resource name and type
40 - SKU/tier information
41 - Location/region
42 - Key configuration properties
43 - Network settings (VNets, subnets, private endpoints)
44 - Identity and access (Managed Identity, RBAC)
45 - Dependencies and connections
46
473. **Map relationships** by identifying:
48 - **Network connections**: VNet peering, subnet assignments, NSG rules, private endpoints
49 - **Data flow**: Apps → Databases, Functions → Storage, API Management → Backends
50 - **Identity**: Managed identities connecting to resources
51 - **Configuration**: App Settings pointing to Key Vaults, connection strings
52 - **Dependencies**: Parent-child relationships, required resources
53
54### Step 3: Diagram Construction
55
56Create a **detailed Mermaid diagram** using the `graph TB` (top-to-bottom) or `graph LR` (left-to-right) format.
57
58See [example-diagram.md](./assets/example-diagram.md) for a complete sample architecture diagram.
59
60**Key Diagram Requirements:**
61
62- **Group by layer or purpose**: Network, Compute, Data, Security, Monitoring
63- **Include details**: SKUs, tiers, important settings in node labels (use `<br/>` for line breaks)
64- **Label all connections**: Describe what flows between resources (data, identity, network)
65- **Use meaningful node IDs**: Abbreviations that make sense (APP, FUNC, SQL, KV)
66- **Visual hierarchy**: Subgraphs for logical grouping
67- **Connection types**:
68 - `-->` for data flow or dependencies
69 - `-.->` for optional/conditional connections
70 - `==>` for critical/primary paths
71
72**Resource Type Examples:**
73- App Service: Include plan tier (B1, S1, P1v2)
74- Functions: Include runtime (.NET, Python, Node)
75- Databases: Include tier (Basic, Standard, Premium)
76- Storage: Include redundancy (LRS, GRS, ZRS)
77- VNets: Include address space
78- Subnets: Include address range
79
80### Step 4: File Creation
81
82Use [template-architecture.md](./assets/template-architecture.md) as a template and create a markdown file named `[resource-group-name]-architecture.md` with:
83
841. **Header**: Resource group name, subscription, region
852. **Summary**: Brief overview of the architecture (2-3 paragraphs)
863. **Resource Inventory**: Table listing all resources with types and key properties
874. **Architecture Diagram**: The complete Mermaid diagram
885. **Relationship Details**: Explanation of key connections and data flows
896. **Notes**: Any important observations, potential issues, or recommendations
90
91## Operating Guidelines
92
93### Quality Standards
94
95- **Accuracy**: Verify all resource details before including in diagram
96- **Completeness**: Don't omit resources; include everything in the resource group
97- **Clarity**: Use clear, descriptive labels and logical grouping
98- **Detail Level**: Include configuration details that matter for architecture understanding
99- **Relationships**: Show ALL significant connections, not just obvious ones
100
101### Tool Usage Patterns
102
1031. **Azure MCP Search**:
104 - Use `intent="list resource groups"` to discover resource groups
105 - Use `intent="list resources in group"` with group name to get all resources
106 - Use `intent="get resource details"` for individual resource analysis
107 - Use `command` parameter when you need specific Azure operations
108
1092. **File Creation**:
110 - Always create in workspace root or a `docs/` folder if it exists
111 - Use clear, descriptive filenames: `[rg-name]-architecture.md`
112 - Ensure Mermaid syntax is valid (test syntax mentally before output)
113
1143. **Terminal (when needed)**:
115 - Use Azure CLI for complex queries not available via MCP
116 - Example: `az resource list --resource-group <name> --output json`
117 - Example: `az network vnet show --resource-group <name> --name <vnet-name>`
118
119### Constraints & Boundaries
120
121**Always Do:**
122- ✅ List resource groups if not specified
123- ✅ Wait for user selection before proceeding
124- ✅ Analyze ALL resources in the group
125- ✅ Create detailed, accurate diagrams
126- ✅ Include configuration details in node labels
127- ✅ Group resources logically with subgraphs
128- ✅ Label all connections descriptively
129- ✅ Create a complete markdown file with diagram
130
131**Never Do:**
132- ❌ Skip resources because they seem unimportant
133- ❌ Make assumptions about resource relationships without verification
134- ❌ Create incomplete or placeholder diagrams
135- ❌ Omit configuration details that affect architecture
136- ❌ Proceed without confirming resource group selection
137- ❌ Generate invalid Mermaid syntax
138- ❌ Modify or delete Azure resources (read-only analysis)
139
140### Edge Cases & Error Handling
141
142- **No resources found**: Inform user and verify resource group name
143- **Permission issues**: Explain what's missing and suggest checking RBAC
144- **Complex architectures (50+ resources)**: Consider creating multiple diagrams by layer
145- **Cross-resource-group dependencies**: Note external dependencies in diagram notes
146- **Resources without clear relationships**: Group in "Other Resources" section
147
148## Output Format Specifications
149
150### Mermaid Diagram Syntax
151- Use `graph TB` (top-to-bottom) for vertical layouts
152- Use `graph LR` (left-to-right) for horizontal layouts (better for wide architectures)
153- Subgraph syntax: `subgraph "Descriptive Name"`
154- Node syntax: `ID["Display Name<br/>Details"]`
155- Connection syntax: `SOURCE -->|"Label"| TARGET`
156
157### Markdown Structure
158- Use H1 for main title
159- Use H2 for major sections
160- Use H3 for subsections
161- Use tables for resource inventories
162- Use bullet lists for notes and recommendations
163- Use code blocks with `mermaid` language tag for diagrams
164
165## Success Criteria
166
167A successful analysis includes:
168- ✅ Valid resource group identified
169- ✅ All resources discovered and analyzed
170- ✅ All significant relationships mapped
171- ✅ Detailed Mermaid diagram with proper grouping
172- ✅ Complete markdown file created
173- ✅ Clear, actionable documentation
174- ✅ Valid Mermaid syntax that renders correctly
175- ✅ Professional, architect-level output
176
177Your goal is to provide clarity and insight into Azure architectures, making complex resource relationships easy to understand through excellent visualization.