.github/skills/azure-drawio-mcp-diagramming/SKILL.md
Create and edit architecture diagrams using Draw.io MCP (`drawio/create_diagram`) with reliable Azure icon rendering guidance and troubleshooting. compatibility Requires Python 3 and internet access to refresh the icon catalog (periodic, not per-run).
npx skillsauth add thomast1906/github-copilot-agent-skills azure-drawio-mcp-diagrammingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to create or update diagrams through the Draw.io MCP tool and to avoid common Azure icon rendering problems.
See references/REFERENCE.md for reference artifacts and refresh commands.
For non-Azure diagrams, you can skip icon discovery/validation scripts and proceed directly to drawio/create_diagram.
drawio/create_diagramdrawio server:{
"servers": {
"drawio": {
"type": "http",
"url": "https://mcp.draw.io/mcp"
}
}
}
references/azure2-complete-catalog.txt to verify icon paths — no scripts needed at runtime.mxGraphModel payload using verified icons when applicable.drawio/create_diagram with the XML..drawio wrapped in <mxfile><diagram>...</diagram></mxfile>.Apply these defaults unless the user explicitly asks for a dense/technical view:
1, 2, 3, 4) instead of many edge labels.For worked examples of common layout problems (stacked edges, repeated labels, observability inside VNet, etc.), see references/layout-antipatterns.md.
When creating Azure infrastructure network diagrams with VNets, subnets, and network isolation:
pageWidth="1900" pageHeight="1500"strokeWidth=4) and large containers
fillColor=#fff2cc, strokeColor=#d6b656)fillColor=#d5e8d4, strokeColor=#82b366)fillColor=#dae8fc, strokeColor=#6c8ebf)strokeWidth=2, dashed=1, dashPattern=8 8)
edgeStyle=orthogonalEdgeStyle for clean routing<Array> waypoints for complex routingTraffic Legend Box (bottom-left)
strokeWidth=3)Network Isolation Explanation Box (top-left)
fillColor=#fff9cc)Zone Separation
fillColor=#f5f5f5, strokeColor=#666666)fillColor=#ffe6cc, strokeColor=#d79b00)<mxGraphModel pageWidth="1900" pageHeight="1500">
<!-- VNet Container with thick border -->
<mxCell id="vnet" value="Internal VNet - 10.x.0.0/16"
style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;
verticalAlign=top;fontSize=16;fontStyle=1;align=center;strokeWidth=4;">
<mxGeometry x="220" y="580" width="1340" height="820"/>
</mxCell>
<!-- Subnet Container with dashed border inside VNet -->
<mxCell id="subnet-app" value="Application Subnet - 10.x.2.0/24"
style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f4ea;strokeColor=#82b366;
verticalAlign=top;fontSize=13;fontStyle=1;align=center;strokeWidth=2;dashed=1;dashPattern=8 8;">
<mxGeometry x="260" y="650" width="480" height="340"/>
</mxCell>
<!-- Resources inside subnet -->
<mxCell id="vm" style="image;aspect=fixed;html=1;points=[];align=center;
image=img/lib/azure2/compute/Virtual_Machine.svg;">
<mxGeometry x="300" y="720" width="64" height="59"/>
</mxCell>
<!-- Labeled traffic edge -->
<mxCell id="edge" value="PostgreSQL:5432"
style="edgeStyle=orthogonalEdgeStyle;strokeWidth=2;strokeColor=#6c8ebf;dashed=1;"
edge="1" source="vm" target="postgres">
<mxGeometry relative="1"/>
</mxCell>
</mxGraphModel>
This section applies only when the diagram includes Azure services/icons.
references/azure2-complete-catalog.txt contains all 648 Azure2 icons.
grep -i "gateway" references/azure2-complete-catalog.txtdrawio/create_diagram.cd .github/skills/drawio-mcp-diagramming/scripts
python3 search_azure2_icons_github.py --max-results 9999 > ../references/azure2-complete-catalog.txt
Azure icon rendering in draw.io can fail for two common reasons:
Wrong style type
shape=mxgraph.azure2.* may not render in some hosts.image;aspect=fixed;html=1;...;image=img/lib/azure2/<category>/<Icon_Name>.svg;Library/environment mismatch
img/lib/azure2/... consistently.app.diagrams.net.Grep the static catalog — no scripts needed at agent runtime:
grep -i "gateway" references/azure2-complete-catalog.txt
grep -i "virtual_machine\|load_balancer\|key_vault" references/azure2-complete-catalog.txt
Use verified paths in diagram cell styles:
image;aspect=fixed;html=1;...;image=img/lib/azure2/<category>/<Icon_Name>.svg;
For renderer resilience, absolute URLs also work:
image;aspect=fixed;html=1;...;image=https://raw.githubusercontent.com/jgraph/drawio/dev/src/main/webapp/img/lib/azure2/networking/Application_Gateways.svg;
If local rendering still fails, open in app.diagrams.net.
image=img/lib/azure2/networking/Front_Doors.svg
image=img/lib/azure2/networking/Private_Link_Hub.svg
image=img/lib/azure2/networking/Network_Watcher.svg
image=img/lib/azure2/app_services/API_Management_Services.svg
image=img/lib/azure2/app_services/App_Services.svg
image=img/lib/azure2/databases/Azure_Cosmos_DB.svg
image=img/lib/azure2/identity/Managed_Identities.svg
image=img/lib/azure2/management_governance/Policy.svg
image=img/lib/azure2/analytics/Log_Analytics_Workspaces.svg
image=img/lib/azure2/management_governance/Monitor.svg
image=img/lib/azure2/devops/Application_Insights.svg
image=img/lib/azure2/devops/API_Connections.svg
If Azure icons still do not render:
OK, then generate the diagram.MCP: List Servers.MCP: Reset Cached Tools if tool list is stale.image=img/lib/azure2/... for Azure2 icon mode.references/azure2-complete-catalog.txt for alternatives.See references/REFERENCE.md for full example prompt templates.
references/azure2-complete-catalog.txt before calling drawio/create_diagram.drawio/create_diagram only with confirmed icon paths.development
Assess Azure architectures against Well-Architected Framework (WAF) five pillars - Reliability, Security, Cost Optimization, Operational Excellence, and Performance Efficiency. Provide scores and recommendations.
devops
Safe Terraform provider upgrades with automatic resource migration, breaking change detection, and state management using moved blocks. Use when upgrading provider versions, handling removed resources, migrating deprecated syntax, or performing major version upgrades.
development
Comprehensive skills for creating, compiling, debugging, and managing GitHub Agentic Workflows (gh-aw) with best practices and common patterns
tools
Create and edit diagrams on a live Excalidraw canvas using the Excalidraw MCP server. Use when asked to draw, diagram, sketch, or visualise architectures, workflows, data flows, system designs, flowcharts, mind maps, or sequence diagrams. Trigger phrases include "create an excalidraw", "draw me a diagram", "make a flowchart", "visualise the system", "diagram this architecture", "export to PNG/SVG". Can export to PNG, SVG, .excalidraw file, or a shareable URL. Do NOT use for Draw.io or diagrams.net output (use drawio-mcp-diagramming instead).