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 skills add https://github.com/thomast1906/github-copilot-agent-skills --skill azure-drawio-mcp-diagramming
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 containersfillColor=#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 routingstrokeWidth=3)fillColor=#fff9cc)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:
shape=mxgraph.azure2.* may not render in some hosts.image;aspect=fixed;html=1;...;image=img/lib/azure2/<category>/<Icon_Name>.svg;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.Assess Kubernetes workloads and cluster configuration for AKS Automatic compatibility. Identifies incompatibilities, generates fixes, and guides migration from AKS Standard to AKS Automatic. WHEN: migrate to AKS Automatic, check AKS Automatic readiness, validate manifests for Automatic, assess cluster for Automatic compatibility, fix deployment for Automatic compatibility, identify AKS Automatic migration blockers, is my cluster ready for AKS Automatic.
Discovers available Azure OpenAI model capacity across regions and projects. Analyzes quota limits, compares availability, and recommends optimal deployment locations based on capacity requirements. USE FOR: find capacity, check quota, where can I deploy, capacity discovery, best region for capacity, multi-project capacity search, quota analysis, model availability, region comparison, check TPM availability. DO NOT USE FOR: actual deployment (hand off to preset or customize after discovery), quota increase requests (direct user to Azure Portal), listing existing deployments.
Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard/Standard/ProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).
Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version/SKU/capacity/RAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create deployment, model deployment, deploy openai model, set up model, provision model, find capacity, check model availability, where can I deploy, best region for model, capacity analysis. DO NOT USE FOR: listing existing deployments (use foundry_models_deployments_list MCP tool), deleting deployments, agent creation (use agent/create), project creation (use project/create).
Intelligently deploys Azure OpenAI models to optimal regions by analyzing capacity across all available regions. Automatically checks current region first and shows alternatives if needed. USE FOR: quick deployment, optimal region, best region, automatic region selection, fast setup, multi-region capacity check, high availability deployment, deploy to best location. DO NOT USE FOR: custom SKU selection (use customize), specific version selection (use customize), custom capacity configuration (use customize), PTU deployments (use customize).
This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.
Latch platform for bioinformatics workflows. Build pipelines with Latch SDK, @workflow/@task decorators, deploy serverless workflows, LatchFile/LatchDir, Nextflow/Snakemake integration.
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.
Take thomast1906/azure-drawio-mcp-diagramming from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.