Skip to main content
Glama

archdiagram

CI License: MIT Python 3.11+

Turn an architecture description into an editable diagram whose nodes are the official vendor service icons (Azure App Service, AKS, Key Vault, S3, GKE, ...) - not a flowchart of labelled boxes.

A coding agent (Cursor, Claude Code, Codex) translates a natural-language architecture into a small JSON spec; the deterministic Python core renders that spec to:

Format

Best for

Vendor icons

Editable after import

.pdf

Lucidchart visual fidelity, handoff, printing

baked in, always render

no (Lucid embeds as image)

.drawio

editing in draw.io / diagrams.net

native stencils or embedded

yes

.vsdx

Visio / Lucid editable import

embedded PNG glyphs

yes

Lucid note: Lucid does not map draw.io's named vendor stencils or its img/lib/... icon references, so those render blank on import. .drawio/.vsdx therefore embed icons (--drawio-mode portable) to maximise render success, and the PDF is the reliable icons-always-render deliverable for Lucid.

Rendered from the specs in examples/ - same engine, real vendor icons.

Azure

AWS

GCP

Azure AI Foundry

AWS

GCP

Related MCP server: tech-icons

Design constraints

  • Core engine = pure Python stdlib. No graphviz, no browser, no third-party Python deps. Spec validation is hand-rolled (no jsonschema). .vsdx is written with zipfile + xml.

  • Python 3.11+. Tests use stdlib unittest.

  • Optional, isolated, non-stdlib deps:

    • mcp SDK - only inside mcp_server/.

    • Node + @resvg/resvg-js - rasterise icons to PNG; used by .vsdx (embedded glyphs) and .pdf. If absent, .vsdx falls back to labelled boxes and .pdf errors with an install hint.

    • Node + pdfkit + svg-to-pdfkit - SVG -> PDF for .pdf.

  • Vendor icons are not committed. Fetch them with tools/download_icons.py.

Quick start

# 1. (optional) fetch vendor icons into the local cache
python -m tools.download_icons --vendors azure,aws,gcp,kubernetes

# 2. (optional) install the Node rasterise/pdf bridge
cd node && npm install && cd ..

# 3. render a spec
python -m archdiagram.cli render examples/sample_spec.json --format pdf    -o out/arch.pdf
python -m archdiagram.cli render examples/sample_spec.json --format drawio -o out/arch.drawio --drawio-mode portable
python -m archdiagram.cli render examples/sample_spec.json --format vsdx   -o out/arch.vsdx

Spec format

{
  "title": "Web platform",
  "direction": "LR",
  "groups": [{ "id": "app", "label": "Application tier", "vendor": "azure" }],
  "nodes": [
    { "id": "web", "service": "azure.app_service", "label": "Web App", "group": "app" },
    { "id": "aks", "service": "azure.aks",         "label": "AKS",     "group": "app" },
    { "id": "kv",  "service": "azure.key_vault",   "label": "Key Vault" }
  ],
  "edges": [
    { "source": "web", "target": "aks", "label": "http" },
    { "source": "aks", "target": "kv" }
  ]
}

service is "<vendor>.<service_key>". Unknown services degrade gracefully to a labelled box.

Layout

Node positions are computed by a deterministic, hand-rolled layered layout (no graphviz). Provide explicit x/y on a node to override the computed position.

Use from an AI agent

This repo is built to be driven by agentic AI tools (Cursor, Claude Code/Desktop, Codex, ...) straight from Git. Pick either path:

1. As a skill

Clone the repo and point your agent at skill/SKILL.md. It teaches the agent the spec schema, catalog lookup, and render commands so it can go from a natural-language architecture to rendered files. See also AGENTS.md.

git clone https://github.com/bharathgnana/archdiagram.git
cd archdiagram && python -m tools.download_icons

2. As an MCP server

pip install "archdiagram[mcp]"
python -m mcp_server.server          # stdio transport

Exposes validate_spec, render_diagram, search_catalog, and list_catalog tools. A sample client config is in examples/mcp.json (drop it into .cursor/mcp.json or claude_desktop_config.json).

Repository layout

archdiagram/        pure-Python core (spec, layout, catalog, emitters)
mcp_server/         optional MCP server (only place the `mcp` SDK is used)
node/               optional Node bridge (resvg rasterise + svg->pdf)
tools/              icon downloader + icon source map
skill/              SKILL.md for agentic AI tools
examples/           sample specs + mcp.json
tests/              stdlib unittest suite

Tests

python -m unittest discover -s tests

Contributing

Anyone can clone, install (pip install -e .), and use it. To propose changes, fork and open a pull request - see CONTRIBUTING.md for the dev setup and workflow.

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that generates professional infrastructure diagrams using the Python diagrams DSL, with first-class Azure support and GitHub Copilot integration for natural language diagram generation.
    4
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    MCP server exposing 3100+ cloud technology icons (AWS, Azure, GCP, Microsoft, CNCF, Devicon) with 3-tier search and multiple output formats for integration into presentations and architecture diagrams.
    7
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for generating diagrams, charts, and visualizations using Gemini image generation on Vertex AI. Supports auto-detection of diagram types, multiple style modes, and iterative refinement.
    3
    16
    1
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    An MCP server that generates standalone SVG architecture diagrams from text descriptions, running entirely on your machine with no dependencies or network access.
    8

View all related MCP servers

Related MCP Connectors

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • MCP server for AI access to Swagger by SmartBear.

  • MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bharathgnana/archdiagram'

If you have feedback or need assistance with the MCP directory API, please join our Discord server