UML diagram generation server with MCP interface for creating diagrams using PlantUML, Mermaid, and other backends
The server demonstrates good definition quality with proper naming conventions, comprehensive descriptions, and complete input schemas. All 5 tools follow verb_noun patterns (list_, generate_, validate_). Descriptions are detailed and meet LLM optimization standards (50-200 chars). Tool annotations are correctly applied to signal read-only vs. write operations. However, there are notable gaps: output schemas are referenced but not fully visible in the provided code; error handling and recovery guidance are not evident; some parameter descriptions could be more specific about constraints and allowed values.
Render one diagram. Returns url, playground, and chat markdown. Use output_format=png for inline bytes, or call generate_uml_image.
Render several diagrams with bounded concurrency. Each item uses the same fields as generate_uml. Partial failures stay isolated per index.
INLINE IMAGE: render a diagram as MCP ImageContent (PNG default) for chat. Use when the user asks to show or display the diagram. Fetches bytes even under URL-only.
List supported diagram types and formats. Optional filters: query, backend, output_format, limit.
Check diagram source code for syntax errors before rendering. Returns diagnostics only (no file output).
Output schema definitions referenced but implementation not fully visible in code, cannot verify that all return types match the pattern:response-shaper requirement for structured, typed responses with pagination metadata.
Parameter 'limit' lacks explicit constraint documentation in description. The code enforces 1-100 bounds, but the parameter description does not state this range, forcing LLMs to guess valid values. Should read: 'Optional maximum number of results, must be between 1 and 100 (default: <value>).'
Error handling and recovery guidance not evident in tool definitions. No descriptions indicate what error states are possible (e.g., invalid diagram_type, syntax errors in code, unsupported output_format) or how the agent should recover (e.g., 'Call list_diagram_types() to see supported types'). Violates pattern:recovery-guide.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 76 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 59 | - | v1 |
generate_uml and generate_uml_batch accept 'output_dir' parameter (local filesystem path). No validation hints in descriptions warn about path traversal risks or directory creation. Requires input sanitization per pattern:tool-gateway.
Parameter descriptions for 'theme' and 'scale' state they are 'ignored' for certain backends, but do not explain what happens if an LLM passes them anyway (silently dropped vs. error). This creates ambiguity about expected behavior.