MCP server for creating and manipulating Mermaid diagrams and charts with auto-save functionality
The server defines a single tool 'create_diagram' with a schema that is present but incomplete. The tool name follows the verb_noun pattern correctly ('create_diagram'), and a description exists but lacks critical details about when to use it vs alternatives, prerequisites, and the format of returned content. The input schema has type definitions for all parameters but lacks granular descriptions for several fields. Parameter descriptions exist but are generic and do not explain constraints, dependencies, or format requirements. The schema does not document the output structure at all, LLMs have no way to know what fields the response contains or how to chain this tool with others. Error handling is not visible in the provided source. The tool performs a stateful operation (WRITE risk) without documenting idempotence, confirmation requirements, or how failures should be recovered. The template feature and auto-save behavior are mentioned in the description but lack formal constraint documentation.
Create a new Mermaid diagram with AUTOMATIC SAVING. **KEY IMPROVEMENT**: Diagrams are now automatically saved to disk when created, preventing data loss from session timeouts or forgetting to save manually. Args: diagram_type: Type of diagram (flowchart, sequence, gantt, class, er, git, pie, journey, mindmap, etc.) content: Mermaid syntax content. If not provided, uses template or default name: Optional name for the diagram use_template: Whether to use a template (default: False) Returns: Diagram ID, content, and auto-save status
No output schema documented. LLMs have no visibility into what the tool returns (field names, types, structure). This breaks downstream tool chaining and forces the LLM to guess at response structure.
Parameter descriptions are vague and lack constraints. 'Mermaid syntax content' does not explain valid syntax variants, line length limits, or what happens on parse errors. 'Type of diagram' lacks an explicit enum list, the description mentions examples but no formal constraint.
Tool description is under 100 characters focused on implementation detail ('AUTO-SAVING') rather than when/why to use it. Lacks guidance on when to call this vs alternative diagram tools, what prerequisites exist, or error recovery paths.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 42 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 22 | - | v1 |
Write operation lacks idempotence declaration and confirmation mechanism. The tool modifies state (creates diagrams on disk), but there is no indication whether repeated calls with identical inputs are safe or whether the LLM should confirm before execution.
No error handling guidance visible. The source shows file I/O operations (aiofiles.open) and JSON parsing that can fail, but no documented error messages, recovery steps, or categorization of retryable vs fatal errors.
'diagram_type' parameter lists examples in description ('flowchart, sequence, gantt...') instead of declaring as an enum. This invites LLM hallucination of unsupported types and wastes tokens on validation errors.
Parameter 'use_template' defaults to False but the description does not explain what happens if content is omitted and use_template is False. Undocumented interaction between parameters creates ambiguity.