A TypeScript library and MCP server for creating, editing, and visualizing flow diagrams with support for multiple output formats (SVG, HTML, Mermaid, JSON, text)
The server implements 11 tools with mostly complete input schemas and descriptions, but has significant gaps in schema completeness, parameter documentation, output schema definition, and error handling. Tool naming follows the verb_noun pattern well (create_, add_, visualize_, etc.). However, descriptions are adequate but could be more LLM-optimized (average ~80 chars, below the 50-200 baseline target). Most parameters have descriptions, but several lack proper type definitions or format constraints. No output schemas are documented for any tool. Error handling is absent, tools appear to return success/error booleans but lack recovery guidance or categorization. Security concerns include file I/O operations with user-provided filenames without apparent path validation.
Add an edge between two nodes
Add a node to a flow diagram
Build the complete flow chart and output as a file (svg, html, mermaid, json, text)
Create a decision tree diagram
Create a new flow diagram
Create a linear flow diagram (A -> B -> C -> D)
Create a process flow with optional parallel branches
No output schemas documented for any tool. LLMs cannot plan downstream operations or know what fields to extract from responses.
Missing error handling with recovery guidance. Tools return boolean success/error but do not tell LLMs what went wrong or what to do next. No categorization of retryable vs user-fixable vs fatal errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 29 | - | v1 |
Edit an existing diagram by importing data from JSON, text, or object format. If diagramId is not provided, creates a new diagram.
Get information about a diagram
List all available diagrams
Generate a visualization of the diagram
File I/O operations (visualize_diagram, build_complete_flow_chart with writeToFile=true) accept user-provided filenames without apparent path validation. Risk of directory traversal or unintended file overwrites in current working directory.
Parameter constraints not fully documented. 'format' and 'theme' enums are specified, but other string/number parameters lack range, pattern, or format documentation. E.g., backgroundColor, width, height have no constraints documented.
Descriptions are brief (average ~80 chars, below optimal 50-200 range). Many lack depth about WHEN to use the tool vs similar tools (e.g., create_diagram vs create_linear_flow vs create_decision_tree distinction unclear).
list_diagrams tool has empty required array and no description of what fields are returned (diagram IDs? titles? summaries?). Lacks pagination parameters (limit, offset, cursor) despite being a list operation that could return many items.
build_complete_flow_chart has complex nested object parameters (nodes, edges, parallelNodes as arrays of unspecified type). Schema shows 'type: array' but item type definitions are missing, LLMs cannot construct valid input.
Composition issue: create_diagram, create_linear_flow, create_decision_tree, and create_process_flow all create diagrams but with overlapping / unclear responsibilities. When should agent use create_diagram vs create_linear_flow? Documentation does not explain.
edit_diagram accepts 'diagramData' as 'string|object' union type with format 'json|text|auto'. Schema does not define expected structure when string format is used, LLMs will not know whether to pass JSON string, CSV, or plaintext.
No tool provides response format documentation. Tools like visualize_diagram and build_complete_flow_chart return file content or SVG but response schema is nowhere documented, agent cannot plan next steps.