The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Diagrams MCP listing page.
MCP server for generating cloud architecture diagrams, flowcharts, sequence diagrams, and more — powered by three rendering engines: mingrammer/diagrams, Mermaid, and PlantUML.

Connect to the public hosted server — no installation required. All rendering engines and dependencies are pre-installed.
Add to your claude_desktop_config.json (Settings → Developer → Edit Config):
Run:
Or add to your .mcp.json:
Add to your .cursor/mcp.json:
Add to your ~/.codeium/windsurf/mcp_config.json:
Add to your .vscode/mcp.json:
Graphviz is required for the default local/in-process rendering mode. Mermaid CLI and PlantUML are optional — install them only if you need those specific rendering engines locally.
| Dependency | Required for | Install |
|---|---|---|
| Graphviz | render_diagram (cloud architecture) | brew install graphviz |
| Mermaid CLI | render_mermaid (flowcharts, sequence, etc.) | npm install -g @mermaid-js/mermaid-cli |
| Java + PlantUML | render_plantuml (UML diagrams) | brew install openjdk + download plantuml.jar |
Note: The hosted server runs as a slim MCP facade plus a separate renderer service, and has all render dependencies pre-installed in the renderer. Local prerequisites only apply if you're running in-process rendering yourself.
Via uvx (recommended):
Via pip:
From source:
Add to your claude_desktop_config.json (Settings → Developer → Edit Config):
uvx (recommended):
pip:
Run:
Or add to your .mcp.json:
uvx (recommended):
pip:
Add to your .cursor/mcp.json:
uvx (recommended):
pip:
Add to your ~/.codeium/windsurf/mcp_config.json:
uvx (recommended):
pip:
Add to your .vscode/mcp.json:
uvx (recommended):
pip:
list_providers() → list[str] — List all diagram providers (aws, gcp, k8s, azure, onprem, etc.)list_services(provider) → list[str] — List service categories within a provider (e.g. aws → compute, database, network)list_nodes(provider, service) → list[dict] — List node classes for a provider.service pair with import pathssearch_nodes(query) → list[dict] — Search for nodes by keyword across all providers (e.g. "postgres", "lambda")render_diagram(code) → Image (PNG) — Execute a Python script using mingrammer/diagrams in a sandboxed subprocess. Returns a rendered cloud architecture diagram.render_mermaid(definition) → Image (PNG/SVG) — Render a Mermaid diagram definition (flowcharts, sequence, class, ER, state, Gantt, and more).render_plantuml(definition) → Image (PNG) — Render a PlantUML diagram definition (sequence, class, component, activity, state, deployment).find_equivalent(node, target_provider?) → dict — Find equivalent services across cloud providers (e.g. EC2 → ComputeEngine on GCP).list_categories() → list[dict] — List all 30 infrastructure role categories with mapped nodes across providers.The server provides reference documentation accessible via MCP resource URIs:
| URI | Description |
|---|---|
diagrams://reference/diagram | Diagram constructor parameters, defaults, and usage |
diagrams://reference/edge | Edge operators, labels, styling, and chaining |
diagrams://reference/cluster | Cluster nesting, styling, and graph attributes |
diagrams://reference/mermaid | Mermaid syntax examples for 6 diagram types |
diagrams://reference/plantuml | PlantUML syntax examples for 6 diagram types |
"Draw an AWS architecture with an ALB routing to two ECS services, backed by RDS and ElastiCache"
"Create a flowchart showing a CI/CD pipeline"

"Show the authentication flow between a client, API gateway, and auth service"

For hosted deployments, the MCP server can run as a lightweight facade that delegates render work to a separate renderer service. This keeps the always-on MCP process small while Graphviz, Chromium, Mermaid CLI, Java, and PlantUML live only in the renderer image.
Docker/Railway examples are included:
| File | Purpose |
|---|---|
Dockerfile.facade | Slim MCP facade image without renderer-only binaries |
Dockerfile.renderer | Renderer image with Graphviz, Chromium, Mermaid CLI, Java, and PlantUML |
railway.facade.toml | Example Railway facade service config |
railway.renderer.toml | Example Railway renderer service config |
Key environment variables:
| Variable | Purpose |
|---|---|
DIAGRAMS_RENDERER_MODE=remote | Makes the facade use the HTTP renderer service |
DIAGRAMS_RENDERER_URL | Renderer base URL, for example http://diagrams-renderer.railway.internal:8080 |
DIAGRAMS_IMAGE_STORE_DIR | Optional file-backed temporary image store directory |
BASE_URL | Optional public base URL used when returning absolute download links |
The render_diagram tool supports all providers from the mingrammer/diagrams library, including:
AWS, GCP, Azure, Kubernetes, On-Premise, AlibabaCloud, OCI, OpenStack, DigitalOcean, Elastic, Outscale, Generic, and Custom nodes.
Use list_providers() and search_nodes(query) to discover available nodes.
MIT