# BV-Venky/excalidraw-architect-mcp [Health: Active]

**Category:** 📐 Architecture & Design  
**Repository:** https://github.com/BV-Venky/excalidraw-architect-mcp  
**GitHub Stars:** 149  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/bv-venky-excalidraw-architect-mcp

## Description
Generate beautiful Excalidraw architecture diagrams with auto-layout, architecture-aware component styling, and stateful editing. 50+ technology mappings including databases, message queues, caches, and more. No API keys required.

## Tools
Capabilities this server exposes over MCP:

- **create_diagram** — 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.
- **mermaid_to_excalidraw** — 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).
- **modify_diagram** — 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.
- **get_diagram_info** — 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.
- **export_diagram** — Export an .excalidraw file to SVG or PNG image.

Converts an existing .excalidraw diagram into a portable image file
without requiring a browser or the Excalidraw application.
- **kg_init** — Create a new architecture knowledge graph file (markdown).

The knowledge graph is the persistent source of truth for your system's
services and dependencies. Diagrams are rendered *from* it.
- **kg_add_service** — Add or update a service in the knowledge graph.
- **kg_remove_service** — Remove a service and all dependencies touching it.
- **kg_link** — Add a directed dependency: ``from_id`` depends on / calls ``to_id``.

Both services must already exist (add them with kg_add_service first).
``style`` is one of solid/dashed/dotted/thick.
- **kg_unlink** — Remove the dependency ``from_id`` -> ``to_id``.
- **kg_set_domain** — Assign a service to a domain (optionally set the domain's display label).
- **kg_info** — Summarize the whole knowledge graph: services, domains, and topology.

Call this before mutating the graph to reason about current state.
- **kg_render** — Render the entire architecture to an .excalidraw file.
- **kg_render_view** — Render a focused diagram of just the given services (induced subgraph).
- **kg_render_around** — Render a service plus everything within ``depth`` hops of it.

``direction``: "downstream" (its dependencies), "upstream" (its
dependents), or "both".
- **kg_render_domain** — Render only the services belonging to one domain.
- **kg_import** — Import an existing .excalidraw diagram's services into the knowledge graph.

Bootstraps the graph from diagrams you already created with this tool.
- **whats_connected_to** — Impact analysis: what breaks if ``service_id`` fails?

Reports direct dependents, the full transitive upstream blast radius,
and what the service itself depends on.
- **kg_path** — Trace the shortest dependency path between two services.
- **kg_lint** — Architecture health check: cycles, single points of failure, orphans,
dangling references, and (optionally) unowned services.
- **kg_export** — Export the knowledge graph to another format.
- **kg_diff** — Show how the architecture changed since a git ref (default HEAD).

Compares the current knowledge file against its version at ``ref``.
- **kg_onboarding_doc** — Generate a human onboarding guide (entry points, hubs, domains) from the graph.
- **kg_drift** — Detect drift between the declared architecture and Python imports under ``code_root``.

Best-effort: treats each top-level package as a service and infers edges
from imports. Reports undocumented and possibly-stale dependencies.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "excalidraw-architect-mcp": {
    "command": "uvx",
    "args": ["excalidraw-architect-mcp"]
  }
}
```

## Documentation

## What BV-Venky/excalidraw-architect-mcp MCP server does

BV-Venky/excalidraw-architect-mcp MCP server creates Excalidraw files from structured nodes and connections, or from a supported subset of Mermaid flowchart syntax. The server owns positioning and visual treatment, so callers provide relationships and labels instead of drawing coordinates. Labels can trigger architecture-aware styling; for example, a node mentioning PostgreSQL can receive database styling.

The project supports a broad set of diagram forms, including architecture diagrams, flowcharts, sequence diagrams, state machines, entity-relationship models, swimlanes, timelines, Gantt charts, quadrants, funnels, trees, organizational charts, and several chart types. It can also export an existing diagram as SVG or PNG without requiring the Excalidraw application or a browser.

## How it works

For direct diagram creation, an agent sends component and connection data to `create_diagram`. The layout engine determines placement and renders a real `.excalidraw` file. `mermaid_to_excalidraw` accepts directions such as top-down, left-to-right, bottom-to-top, and right-to-left, along with several node shapes, edge styles, labels, and subgraphs.

Existing diagrams can be changed incrementally. The recommended sequence is to call `get_diagram_info`, inspect the returned node IDs, labels, types, and connections, and then call `modify_diagram`. This supports adding components, deleting nodes, changing labels, and rewiring relationships without rebuilding the complete file.

The optional knowledge graph uses a markdown file as its persistent architecture model. Services, domains, and directed dependencies can be added, removed, linked, queried, rendered, and exported. Focused views can show a selected service neighborhood, a domain, or an induced subgraph. The graph also supports dependency paths, failure-impact analysis, architecture linting, Git-based diffs, onboarding documentation, and best-effort comparison with Python imports.

## Tools and capabilities

The MCP tool set includes:

- Create diagrams from structured node and connection data.
- Convert supported Mermaid flowcharts into Excalidraw files.
- Inspect and modify diagrams iteratively.
- Export diagrams to SVG and PNG.
- Initialize and maintain a markdown architecture knowledge graph.
- Render complete, domain-specific, or service-focused graph views.
- Analyze dependency paths, upstream impact, cycles, orphans, and single points of failure.
- Compare the graph with a Git reference or Python import structure.
- Generate an onboarding guide from the recorded architecture.

## Limitations and notes

Mermaid conversion is limited to the documented flowchart subset: four graph directions, four node-shape forms, the listed arrow styles and labels, and `subgraph ... end` blocks. Knowledge-graph drift analysis is best effort: it treats top-level Python packages as services and infers relationships from imports, so its findings may require review.

The project is described as running offline and requiring no API keys. The supplied material names Cursor, Claude Code, and Windsurf as supported usage environments; it does not provide a Claude Desktop configuration or a complete installation command. Before changing a diagram or mutating the knowledge graph, inspect its current state with `get_diagram_info` or `kg_info` respectively. BV-Venky/excalidraw-architect-mcp MCP server is therefore most suitable when the source structure can be represented as nodes, edges, services, domains, or supported diagram data.

_Full upstream README: https://allmcps.com/mcp/bv-venky-excalidraw-architect-mcp/readme_

