A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images or SVG files
Single tool 'generate' has a complete input schema with proper types and enums, and a basic description. However, the description is generic (10 words) and lacks context on when/why to use it, what it returns, or error recovery guidance. Parameter descriptions are present but minimal. No output schema is documented. The tool accepts file I/O parameters (name, folder) which introduce complexity around file handling and error cases that are not well-explained in the schema. Missing guidance on idempotency, side effects, and error recovery.
Generate PNG image or SVG from mermaid markdown
Tool description is too generic and lacks context. 'Generate PNG image or SVG from mermaid markdown' (10 words) does not explain when to use this tool, what it returns, or how to handle errors.
Output schema is not documented. The tool returns either a base64-encoded image (when CONTENT_IMAGE_SUPPORTED=true) or a file path (when saved to disk). LLMs cannot plan downstream actions without knowing the response structure. LLMs need to know what fields to expect.'
Parameter descriptions are minimal and lack format/constraint guidance. 'backgroundColor' says 'e.g. white, transparent, #F0F0F0' but should use a pattern constraint instead. 'code' lacks guidance on valid Mermaid syntax or size limits.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Error handling is not documented. The tool can fail due to invalid Mermaid syntax, missing files, permission errors, or Puppeteer timeouts. No guidance on recovery (e.g., 'If rendering fails, check Mermaid syntax at mermaid.js.org').
File I/O behavior is complex and conditionally required but not clearly explained. When CONTENT_IMAGE_SUPPORTED=false, 'name' and 'folder' become required, but the schema description changes dynamically. LLMs cannot reason about conditional requirements.