Single-tool server with a well-structured schema and comprehensive parameter documentation. Tool naming follows verb_noun convention (generate_mermaid_diagram). Input schema is complete with JSON Schema types, descriptions, and enums for constrained inputs (theme, look, outputType). Description is clear and actionable (150 chars). However, output schema is not formally documented in the tool definition itself, the server returns different content types based on outputType parameter, but the LLM cannot introspect what each output looks like. Error handling is present (safeParse validation, McpError with ErrorCode) but lacks recovery guidance. No tool annotations (readOnlyHint, idempotentHint, etc.). The tool is idempotent by design (rendering the same mermaid syntax produces the same diagram) but this is not declared. Overall solid definition quality with clear room for improvement in output schema documentation and error guidance.
Generate mermaid diagram and chart with mermaid syntax dynamically. Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development.
Output schema not formally documented. Tool returns different content types (text, image, file path) depending on outputType parameter, but LLM cannot introspect what fields/types are in each response. Document expected output for each outputType variant.
Error messages lack recovery guidance. When validation fails, error is 'Invalid parameters: <zod error>' which is technical and unhelpful. Should say 'Invalid parameters: <detail>. Valid themes are: default, base, forest, dark, neutral.'
Tool annotations missing. Tool is idempotent (same mermaid input always produces same diagram) and read-only (generateOnly, no side effects). Add readOnlyHint and idempotentHint for agent planning.
Parameter descriptions could explicitly state format/constraints. E.g., 'mermaid' param says 'The mermaid diagram syntax' but doesn't explain it's a Mermaid graph definition language string. Add example or link to Mermaid syntax docs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 72 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 53 | - | v1 |