dushyant30suthar avatar

Endiagram Mcp

dushyant30suthar/endiagram-mcp

Brings deterministic structural analysis of concurrent systems into Claude via seven tools backed by graph theory and Petri net semantics. You hand it EN Diagram source code (a simple text format where actors, actions, and resources connect by name) and ask whether the system can deadlock, whether two systems are equivalent, if paths exist between nodes, what the conservation laws are, or how subsystems compose. Every answer references a named theorem. The `structure` tool maps shape and critical paths, `invariant` checks custom rules like "every path from X to Y passes through a guard", `live` detects siphons and unbounded cycles, and `render` outputs annotated diagrams. Runs via stdio or zero install HTTP transport at api.endiagram.com/mcp. Reach for this when designing workflows, protocols, or pipelines where race conditions and bottlenecks matter more than behavior simulation.

GitHub stars
7
tools
7
transport
STDIO, HTTP
last updated
Apr 21, 2026

Install

From registry metadata
$ npx add-mcp https://api.endiagram.com/mcp --name endiagram-mcp

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http endiagram-mcp https://api.endiagram.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 7 tools

Verified live against the running server on Nov 6, 2026.

structureWhat is this system? Returns shape (Pipeline, Fork-Join, DAG, Star, Cycle, Tree, Complete, etc.), stages with roles, bridge nodes, cycles, parallelism, critical path, dominator tree, min-cuts, subsystems, interface nodes, actors (who does what, workload entropy), locations (wh...3 params

What is this system? Returns shape (Pipeline, Fork-Join, DAG, Star, Cycle, Tree, Complete, etc.), stages with roles, bridge nodes, cycles, parallelism, critical path, dominator tree, min-cuts, subsystems, interface nodes, actors (who does what, workload entropy), locations (wh...

Parameters* required
detect_findingsstring
Set to 'true' to flag named structural findings. Possible values: unguarded-sink, single-cut-path, multi-cut-path.
nodestring
Node name. When provided, returns per-node centrality (betweenness, closeness, eigenvector) for this specific node instead of the overview.
source*string
EN source code, or path to .en/.txt file
invariantWhat's always true — automatic findings and on-demand checks. Automatic outputs: conservationLaws (weighted entity sums constant across executions), sustainableCycles (T-invariants — action sequences returning to start state), depletableSets (entity groups whose simultaneous d...2 params

What's always true — automatic findings and on-demand checks. Automatic outputs: conservationLaws (weighted entity sums constant across executions), sustainableCycles (T-invariants — action sequences returning to start state), depletableSets (entity groups whose simultaneous d...

Parameters* required
rulesstring
Custom structural rules, one per line. Four supported sentence shapes (regex-matched): (1) `no bridge that is also hub` — flags nodes that are both a bridge and a hub. (2) `every path from X to Y p...
source*string
EN source code, or path to .en/.txt file
liveCan it deadlock? Can entities overflow? isStructurallyLive means every siphon contains a trap — no structural deadlock possible. uncoveredSiphons are entity groups that can drain permanently, with the actors and locations affected. isStructurallyBounded means no entity can acc...1 params

Can it deadlock? Can entities overflow? isStructurallyLive means every siphon contains a trap — no structural deadlock possible. uncoveredSiphons are entity groups that can drain permanently, with the actors and locations affected. isStructurallyBounded means no entity can acc...

Parameters* required
source*string
EN source code, or path to .en/.txt file
reachableCan X reach Y? Follows directed data flow first; falls back to undirected. `from` and `to` accept entity names or action names (resolved against the program). Path shows each step with actor and location. locationCrossings counts boundary transitions. defense_nodes checks if g...4 params

Can X reach Y? Follows directed data flow first; falls back to undirected. `from` and `to` accept entity names or action names (resolved against the program). Path shows each step with actor and location. locationCrossings counts boundary transitions. defense_nodes checks if g...

Parameters* required
defense_nodesstring
Comma-separated guard nodes to check coverage
from*string
Starting node name
source*string
EN source code
to*string
Target node name
equivalentAre two systems the same, or what changes if I change this one? Compare mode (source_a + source_b): structural differences, edit distance, spectral equivalence. isCospectral=true means identical graph structure up to relabeling — topologically the same despite different names,...4 params

Are two systems the same, or what changes if I change this one? Compare mode (source_a + source_b): structural differences, edit distance, spectral equivalence. isCospectral=true means identical graph structure up to relabeling — topologically the same despite different names,...

Parameters* required
patchstring
EN patch for evolve mode. Three directive types: plain EN statement (`actor do: X needs: Y yields: Z at: W`) adds action X; a line starting with `-` (and not containing `do:`) removes the named act...
sourcestring
EN source code for evolve mode
source_astring
EN source code or path to .en/.txt file for the first system
source_bstring
EN source code or path to .en/.txt file for the second system
composeHow do parts combine, or how does a part stand alone? Merge mode (source_a + source_b + links): declare which entities in A are the same as entities in B; the combined graph is wired via string-equality of shared names. Extract mode (source + subsystem): pull a named subsystem...5 params

How do parts combine, or how does a part stand alone? Merge mode (source_a + source_b + links): declare which entities in A are the same as entities in B; the combined graph is wired via string-equality of shared names. Extract mode (source + subsystem): pull a named subsystem...

Parameters* required
linksstring
Entity identifications, one per line. Format: `a.<entity name>=b.<entity name>` (A's entity is the same as B's entity). `#` starts a comment. Example: `a.user session=b.authenticated session`.
sourcestring
EN source code for extract mode
source_astring
EN source code or path to .en/.txt file for the first system
source_bstring
EN source code or path to .en/.txt file for the second system
subsystemstring
Subsystem name to extract. Valid names come from structure's `subsystems` field — call structure on the source first to discover them.
renderSVG or PNG diagram. Only call when user explicitly asks to visualize. The rendered image is delivered to the user, not injected into the model's context. See the server instructions for EN language syntax.10 params

SVG or PNG diagram. Only call when user explicitly asks to visualize. The rendered image is delivered to the user, not injected into the model's context. See the server instructions for EN language syntax.

Parameters* required
colorstring
Seed color hex (#RRGGBB) to generate a custom theme. Overrides theme parameter. One color generates the entire palette.
directionstring
Layout direction: LR (left-to-right) or TB (top-to-bottom). Default auto-detects from condensation DAG aspect ratio.
isDarkstring
true or false. Selects the dark or light variant of a named preset. If omitted, defaults to dark unless theme=light.
outputstring
File path to save the rendered image
qualitystring
Output quality: small, mid, or max
source*string
EN source code, or path to .en/.txt file
structure_layersstring
Bitmask for structure overlays. Bits: 1=subsystems, 2=pipelines, 4=cycles, 8=forks, 16=joins, 32=hubs, 64=deadlock, 128=overflow. Default 255 (all on). Pass 0 to hide all.
themestring
Color theme. Curated presets (each with light + dark variants; pair with `isDark`): `Editorial` (stone paper + rust focal, adapted from cathrynlavery/diagram-design), `Primer` (GitHub design system...
typestring
Output format: png (default) or svg. PNG is rasterized server-side via Batik.
viewstring
Group by: actors (partition by actor) or locations (partition by location). Default auto-detects topology.

Sponsors

Readme

@endiagram/mcp

MCP server for EN Diagram — deterministic structural analysis powered by graph theory. Every result is backed by a named mathematical theorem. No AI inside the computation.

Installation

Run directly:

npx @endiagram/mcp

Or install globally:

npm install -g @endiagram/mcp

Connect

Claude Code

claude mcp add endiagram npx @endiagram/mcp

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "endiagram": {
      "command": "npx",
      "args": ["@endiagram/mcp"]
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "endiagram": {
      "command": "npx",
      "args": ["@endiagram/mcp"]
    }
  }
}

HTTP (zero install)

Any MCP client that supports HTTP transport:

https://api.endiagram.com/mcp

Smithery

smithery mcp add dushyant30suthar/endiagram

Environment Variables

VariableDefaultDescription
EN_API_URLhttps://api.endiagram.comAPI endpoint for the EN Diagram service

Tools


View the full README on GitHub

Details

Repository
github.com/dushyant30suthar/endiagram-mcp
Category
Design & Creative
Package
@endiagram/mcp
Transport
STDIO, HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related Design & Creative MCP servers

View all
1getcutpro avatarCutProgetcutpro/mcpCreate images, videos, music, voices, sound effects and 3D with any AI model, plus AI video clips.0stars
2paradoxsyn avatarPolymationparadoxsyn/rivemcp-releasesAuthor Rive; convert Lottie, After Effects, Animate and Figma into it; animate AI and pixel art.0stars
3forge-space avatarBranding Mcpforge-space/branding-mcpAI-powered brand identity generation via MCP with design tokens, typography, and logo assets.1stars
4iamjrmh avatarMCPBridgeiamjrmh/mcpbridgeUnified MCP server bridging Claude Code and Ollama to Roblox Studio and Blender.1stars
5jeda avatarJeda Aiai.jeda/jeda-aiVisual AI for strategic thinking — SWOT, flowcharts, mindmaps, Gantt diagrams as polished SVG.0stars
6clauxel avatarOpendesignguard Mcpclauxel/open-design-guard-mcpPaid remote MCP for agent design system guard MCP, structured receipts, audit logs, and reviewer-rea0stars