excalidraw-architect-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_diagramA | Create a new Excalidraw diagram of any supported type. Two input modes:
|
| mermaid_to_excalidrawA | Convert Mermaid flowchart syntax into an Excalidraw diagram. Supports the mermaid flowchart subset that AI agents commonly generate:
Component types are auto-detected from node labels (e.g., a node labeled "PostgreSQL DB" automatically gets database styling). |
| 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. For typed diagrams (sequence, pyramid, bar, swimlane, ...) there is a single operation: The patch is deep-merged into the stored spec and the diagram re-rendered. Lists are replaced wholesale, so send the complete list to change one entry. The node/connection operations below apply to architecture and flowchart diagrams only. |
| 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. |
| export_diagramA | 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. |
| list_diagram_typesA | List every supported diagram type with guidance on when to use it. Call this BEFORE create_diagram when the right diagram type isn't obvious. Picking the wrong type is the most common way a diagram fails - a swimlane drawn as a flowchart loses the handoffs that were the point. Two rules worth applying whatever you pick:
Returns: A table of type -> family, when to use it, and when not to. |
| get_diagram_schemaA | Get the JSON schema and selection guidance for one diagram type. Call this before passing a |
| kg_initB | 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_serviceB | Add or update a service in the knowledge graph. |
| kg_remove_serviceC | Remove a service and all dependencies touching it. |
| kg_linkA | Add a directed dependency: Both services must already exist (add them with kg_add_service first).
|
| kg_unlinkC | Remove the dependency |
| kg_set_domainC | Assign a service to a domain (optionally set the domain's display label). |
| kg_infoA | Summarize the whole knowledge graph: services, domains, and topology. Call this before mutating the graph to reason about current state. |
| kg_renderC | Render the entire architecture to an .excalidraw file. |
| kg_render_viewC | Render a focused diagram of just the given services (induced subgraph). |
| kg_render_aroundB | Render a service plus everything within
|
| kg_render_domainC | Render only the services belonging to one domain. |
| kg_importB | Import an existing .excalidraw diagram's services into the knowledge graph. Bootstraps the graph from diagrams you already created with this tool. |
| whats_connected_toA | Impact analysis: what breaks if Reports direct dependents, the full transitive upstream blast radius, and what the service itself depends on. |
| kg_pathC | Trace the shortest dependency path between two services. |
| kg_lintA | Architecture health check: cycles, single points of failure, orphans, dangling references, and (optionally) unowned services. |
| kg_exportC | Export the knowledge graph to another format. |
| kg_diffB | Show how the architecture changed since a git ref (default HEAD). Compares the current knowledge file against its version at |
| kg_onboarding_docC | Generate a human onboarding guide (entry points, hubs, domains) from the graph. |
| kg_driftA | Detect drift between the declared architecture and Python imports under Best-effort: treats each top-level package as a service and infers edges from imports. Reports undocumented and possibly-stale dependencies. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Most tools target clearly distinct operations, and descriptions separate KG management, diagram creation, and analysis queries well. The four kg_render* variants (full, domain, view, around) are close enough to cause some misselection risk, though each has a well-defined scope.
The kg_ prefix provides a strong, predictable pattern for graph operations, and most diagram tools use clear verb_noun names. Minor exceptions like whats_connected_to and mermaid_to_excalidraw break the pattern, but overall the naming is disciplined and readable.
At 26 tools, the server sits just above the heavy band, and the kg_render_domain/view/around trio could plausibly be consolidated into one parameterized render operation. The breadth is partly justified by spanning diagram authoring and knowledge-graph management, but the surface is still large.
The toolset covers the full lifecycle for both the knowledge graph and diagrams: init, add/update/remove, link/unlink, query, render, export, plus analysis features like lint, drift, diff, impact, and path tracing. The only missing operations are non-essential file-management tasks like deleting a rendered diagram.