Skip to main content
Glama

arch7

Architecture diagram generator for Excalidraw, exposed as an MCP server.

Fork of excalidraw-architect-mcp by Bhukya Venkatesh (MIT License).

What's different

  • Cylinder shapes: vertical (databases), horizontal flattened (topics/queues)

  • 60+ components with auto-styling: GCP (GKE, Cloud Run, GCS, BigQuery, Pub/Sub, VPC, PSC), Kong, Confluent (Kafka, Schema Registry, ksqlDB), Dynatrace, OpenTelemetry, AI/Agentic (LLM, Agent, MCP, Vector DB, RAG)

  • Smaller diamonds for agent nodes

  • Repackaged as arch7_mcp

Related MCP server: GCP Diagram MCP Server

Install

pip install -e .

MCP server (Claude Code)

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "arch7": {
      "command": "python",
      "args": ["-m", "arch7_mcp"]
    }
  }
}

Tools

Tool

Description

create_diagram

Structured nodes/connections → .excalidraw

mermaid_to_excalidraw

Mermaid syntax → .excalidraw

modify_diagram

Add/remove/update nodes on existing file

get_diagram_info

Read diagram state for iteration

Usage (Python)

from arch7_mcp.core.models import Node, Edge, DiagramGraph, Direction
from arch7_mcp.engine.layout import compute_layout
from arch7_mcp.engine.renderer import build_excalidraw_file, save_excalidraw

nodes = [
    Node(id="gke", label="GKE Cluster", component_type="gke"),
    Node(id="kafka", label="Kafka Topics", component_type="kafka"),
    Node(id="pg", label="PostgreSQL", component_type="postgresql"),
]
edges = [
    Edge(from_id="gke", to_id="kafka"),
    Edge(from_id="kafka", to_id="pg"),
]

graph = DiagramGraph(nodes=nodes, edges=edges, direction=Direction.LEFT_RIGHT)
layout = compute_layout(graph)
doc = build_excalidraw_file(layout)
save_excalidraw(doc, "arch.excalidraw")

License

MIT — see LICENSE. Original copyright Bhukya Venkatesh.

Available Tools

4 tools
create_diagramA

Create a new Excalidraw diagram from structured node and connection data.

The LLM provides a relationship map - this tool handles layout, styling, and rendering. No need to specify coordinates.

Inputs: nodes (required), connections (required), output_path (required), direction, +2 more. Returns: result

get_diagram_infoA

Get a structured summary of an existing Excalidraw diagram.

Call this BEFORE modify_diagram to understand what nodes and connections currently exist. The summary includes node ids, labels, component types, and the full connection topology.

Inputs: file_path (required). Returns: result

mermaid_to_excalidrawA

Convert Mermaid flowchart syntax into an Excalidraw diagram.

Supports the mermaid flowchart subset that AI agents commonly generate:

  • Directions: graph TD, LR, BT, RL

  • Node shapes: [text], {text}, ((text)), ([text])

  • Edge types: -->, ---, -.-> ==> with |label|

  • Subgraphs: subgraph Title ... end

Component types are auto-detected from node labels (e.g., a node labeled "PostgreSQL DB" automatically gets database styling).

Inputs: mermaid_syntax (required), output_path (required), theme. Returns: result

modify_diagramA

Modify an existing Excalidraw diagram created by this tool.

Supports iterative editing: add components, remove nodes, update labels, and rewire connections - without recreating the entire diagram.

IMPORTANT: Call get_diagram_info first to understand the current diagram state before making modifications.

Inputs: file_path (required), operations (required), theme. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clear, distinct role: creating a new diagram, retrieving diagram info, converting mermaid syntax, and modifying an existing diagram. No overlap in functionality.

    Naming Consistency4/5

    Three tools follow a consistent verb_noun pattern (create_diagram, get_diagram_info, modify_diagram), while mermaid_to_excalidraw breaks the pattern but remains clear and predictable given its conversion purpose.

    Tool Count5/5

    Four tools is a well-scoped number for a diagramming server, covering the essential operations (create, read, update, plus conversion) without being too few or excessive.

    Completeness4/5

    The tool set covers core create, read, and modify operations, with conversion support. A full delete diagram tool is missing, but modify_diagram allows node removal, so the gap is minor.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers