endiagram-mcp
Server Details
EN Diagram — structural verification for concurrent systems. Pure math, no AI.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- dushyant30suthar/endiagram-mcp
- GitHub Stars
- 8
- Server Listing
- endiagram
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
- Changed
render1 field changed- changed
Input schema / properties / theme / descriptionPrevious value: -"Color theme. Named presets (curated, each with light + dark variants; pair with isDark): Blueprint (architectural drafting paper), Swiss (International Typographic — black/white with red accent), Bauhaus (primary-color geometric), Brutalist (high-contrast stark). Seed-derived (auto-generated palettes from themes.json): Nord, Catppuccin, etc. Or pass 'dark'/'light' for the default theme in that mode. Overridden by `color` if provided."New value: +"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 — blue accent, data-vis roles), `Carbon` (IBM Carbon — sharp 0px corners, corporate blue). Or seed-derived palettes generated on the fly from `color`. Pass 'dark'/'light' for the default variant. Overridden by `color` if provided."
5 tool updates
- Changed
compose2 fields changed- changed
Input schema / properties / links / descriptionPrevious value: -"Entity links e.g. 'a.node1=b.node2'"New value: +"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`." - changed
Input schema / properties / subsystem / descriptionPrevious value: -"Subsystem name for extract mode"New value: +"Subsystem name to extract. Valid names come from structure's `subsystems` field — call structure on the source first to discover them."
- Changed
equivalent1 field changed- changed
Input schema / properties / patch / descriptionPrevious value: -"EN patch for evolve mode"New value: +"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 action; a new statement with an existing action name replaces the original. Multiple directives allowed, one per line."
- Changed
invariant1 field changed- changed
Input schema / properties / rules / descriptionPrevious value: -"Structural rules to check, one per line"New value: +"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 passes through at least one of [A, B, C]` — encodes precedence/coverage; use to check `A must happen before Y produces Z` by rewriting as `every path from Z's input to Z passes through [A]`. (3) `no node with centrality above 0.5` — flags over-central nodes (replace 0.5 with any threshold). (4) `removing any single node disconnects at most N others` — connectivity robustness check. Unrecognized rules return satisfied:false with an explanation listing these shapes."
- Changed
render1 field changed- changed
Input schema / properties / theme / descriptionPrevious value: -"Color theme: named preset (Blueprint, Swiss, etc.) or dark/light"New value: +"Color theme. Named presets (curated, each with light + dark variants; pair with isDark): Blueprint (architectural drafting paper), Swiss (International Typographic — black/white with red accent), Bauhaus (primary-color geometric), Brutalist (high-contrast stark). Seed-derived (auto-generated palettes from themes.json): Nord, Catppuccin, etc. Or pass 'dark'/'light' for the default theme in that mode. Overridden by `color` if provided."
- Changed
structure2 fields changed- changed
Input schema / properties / detect_findings / descriptionPrevious value: -"Set to 'true' to detect structural findings"New value: +"Set to 'true' to flag named structural findings. Possible values: unguarded-sink, single-cut-path, multi-cut-path." - changed
Input schema / properties / node / descriptionPrevious value: -"Node name for centrality query"New value: +"Node name. When provided, returns per-node centrality (betweenness, closeness, eigenvector) for this specific node instead of the overview."
1 tool update
- Changed
render1 field changed- changed
Input schema / properties / type / descriptionPrevious value: -"Output format: svg (default) or png. PNG is rasterized server-side via Batik."New value: +"Output format: png (default) or svg. PNG is rasterized server-side via Batik."
1 tool update
- Changed
render6 fields changed- added
Input schema / properties / directionAdded value: +{ + "description": "Layout direction: LR (left-to-right) or TB (top-to-bottom). Default auto-detects from condensation DAG aspect ratio.", + "type": "string" +} - added
Input schema / properties / isDarkAdded value: +{ + "description": "true or false. Selects the dark or light variant of a named preset. If omitted, defaults to dark unless theme=light.", + "type": "string" +} - changed
Input schema / properties / output / descriptionPrevious value: -"File path to save the SVG"New value: +"File path to save the rendered image" - changed
Input schema / properties / structure_layers / descriptionPrevious value: -"Bitmask for structure overlays. Bits: 1=subsystems, 2=pipelines, 4=cycles, 8=forks, 16=joins, 32=hubs. Default 63 (all on). Pass 0 to hide all."New value: +"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." - changed
Input schema / properties / theme / descriptionPrevious value: -"Color theme: dark or light"New value: +"Color theme: named preset (Blueprint, Swiss, etc.) or dark/light" - added
Input schema / properties / typeAdded value: +{ + "description": "Output format: svg (default) or png. PNG is rasterized server-side via Batik.", + "type": "string" +}
1 tool update
- Changed
render1 field changed- added
Input schema / properties / colorAdded value: +{ + "description": "Seed color hex (#RRGGBB) to generate a custom theme. Overrides theme parameter. One color generates the entire palette.", + "type": "string" +}
6 tool updates
- Changed
compose2 fields changed- changed
Input schema / properties / source_a / descriptionPrevious value: -"EN source code for the first system"New value: +"EN source code or path to .en/.txt file for the first system" - changed
Input schema / properties / source_b / descriptionPrevious value: -"EN source code for the second system"New value: +"EN source code or path to .en/.txt file for the second system"
- Changed
equivalent2 fields changed- changed
Input schema / properties / source_a / descriptionPrevious value: -"EN source code for the first system"New value: +"EN source code or path to .en/.txt file for the first system" - changed
Input schema / properties / source_b / descriptionPrevious value: -"EN source code for the second system"New value: +"EN source code or path to .en/.txt file for the second system"
- Changed
invariant1 field changed- changed
Input schema / properties / source / descriptionPrevious value: -"EN source code describing the system"New value: +"EN source code, or path to .en/.txt file"
- Changed
live1 field changed- changed
Input schema / properties / source / descriptionPrevious value: -"EN source code describing the system"New value: +"EN source code, or path to .en/.txt file"
- Changed
render2 fields changed- changed
Input schema / properties / source / descriptionPrevious value: -"EN source code describing the system"New value: +"EN source code, or path to .en/.txt file" - changed
Input schema / properties / view / descriptionPrevious value: -"View mode: flow (default), actors (swimlane by actor), locations (grouped by context), summary (one node per subsystem)"New value: +"Group by: actors (partition by actor) or locations (partition by location). Default auto-detects topology."
- Changed
structure1 field changed- changed
Input schema / properties / source / descriptionPrevious value: -"EN source code describing the system"New value: +"EN source code, or path to .en/.txt file"
1 tool update
- Changed
render2 fields changed- removed
Input schema / properties / show_regionsRemoved value: -{ - "description": "Show structural regions like fork, pipeline, join. Default true", - "type": "string" -} - added
Input schema / properties / structure_layersAdded value: +{ + "description": "Bitmask for structure overlays. Bits: 1=subsystems, 2=pipelines, 4=cycles, 8=forks, 16=joins, 32=hubs. Default 63 (all on). Pass 0 to hide all.", + "type": "string" +}
1 tool update
- Changed
render1 field changed- removed
Input schema / properties / show_locationsRemoved value: -{ - "description": "Show location zones from at: clauses. Default true", - "type": "string" -}
1 tool update
- Changed
render2 fields changed- added
Input schema / properties / show_locationsAdded value: +{ + "description": "Show location zones from at: clauses. Default true", + "type": "string" +} - added
Input schema / properties / show_regionsAdded value: +{ + "description": "Show structural regions like fork, pipeline, join. Default true", + "type": "string" +}
1 tool update
- Changed
render1 field changed- added
Input schema / properties / viewAdded value: +{ + "description": "View mode: flow (default), actors (swimlane by actor), locations (grouped by context), summary (one node per subsystem)", + "type": "string" +}
1 tool update
- Changed
render1 field changed- added
Input schema / properties / outputAdded value: +{ + "description": "File path to save the SVG", + "type": "string" +}
19 tool updates
- Removed
analyze - Removed
between - Removed
categorize - Changed
compose4 fields changed- changed
Input schema / properties / links / descriptionPrevious value: -"Entity links e.g. 'a.node1=b.node2, a.node3=b.node4'"New value: +"Entity links e.g. 'a.node1=b.node2'" - added
Input schema / properties / sourceAdded value: +{ + "description": "EN source code for extract mode", + "type": "string" +} - added
Input schema / properties / subsystemAdded value: +{ + "description": "Subsystem name for extract mode", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "source_a", - "source_b", - "links" -]New value: +[]
- Removed
conserve - Removed
detail - Removed
diff - Removed
distance - Added
equivalent - Removed
evolve - Removed
extract - Removed
impact - Added
invariant - Added
live - Removed
locality - Added
reachable - Removed
responsibility - Added
structure - Removed
trace
2 tool updates
- Added
locality - Added
responsibility
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Signed Buildability Oracle for AI-for-science papers. ed25519 receipts, Wave proofs, divergence.
Architecture compiler for AI code. 11 tools, 92 actions, 872 Lean4 proofs, 100/100 self-cert.
Formally-verified injection/exfiltration detector for AI agents (MCP-02).
Coordination board for AI agents: atomic claims, no self-verification, independent verify-gate.
Related MCP Servers
- AlicenseAqualityBmaintenanceAI-native architecture diagramming for MCP clients (Claude Code, Cursor, Windsurf). The calling agent authors the graph (nodes, groups, edges); Flowgraf validates it, lays it out deterministically with ELK, renders an SVG + Mermaid, and returns a link to a live, editable canvas you can refine by chat, drag, or one-click AI design review. Agent-authored ops — no API key and no LLM cost to the calle371MIT
- AlicenseNot gradedqualityAmaintenanceThe diagram-quality layer for AI agents — an opinionated Excalidraw methodology (isomorphism test, evidence artifacts, multi-zoom, container discipline) plus a render-view-fix loop. Accepts skeleton and Mermaid input, 5 publishable themes, dual Node/Python renderer. Proven on a 77-diagram published book.4MIT
- AlicenseAqualityAmaintenanceDeterministic AI safety policy engine with Z3 formal verification. Write, verify, simulate, and enforce machine-verifiable safety constraints for AI agents. Completely outside the LLM.616Apache 2.0
- AlicenseAqualityAmaintenanceArchitecture diagram with concurrency capacity and bottleneck estimates from any codebase.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct analysis operation: compose for merging/extracting, equivalent for comparison, invariant for property checking, live for deadlock/boundedness, reachable for reachability, render for visualization, and structure for overall shape. No overlapping purposes.
All tool names are single-word verbs in lowercase, following a consistent imperative style (compose, equivalent, invariant, live, reachable, render, structure). No mixing of conventions.
With 7 tools, the server covers the essential analysis operations for system diagrams without being overly large or minimal. Each tool earns its place.
The tool surface covers structural analysis (structure), behavioral properties (invariant, live, reachable), comparison (equivalent), composition (compose), and visualization (render). No obvious gaps for the stated analysis purpose.