MCP server for generating systems design visuals with draw.io
Single tool with basic schema and description. Tool name 'generate_system_diagram' follows verb_noun convention (+). Description is 67 chars, adequate but generic. Input schema present with proper types and enum constraint on diagramType. However, no output schema documented, LLMs cannot predict response structure. Parameter 'diagramType' has description; 'description' param description is minimal (47 chars). No error handling guidance. Tool does not declare idempotency or side effects. Missing per-tool annotations (readOnlyHint, destructiveHint). No pagination, no rate-limit guidance. Implementation returns unstructured text responses ('System diagram generated successfully...') rather than typed objects. Baseline: 194 chars avg description, 72 chars avg param annotation, this tool underperforms on both.
Generate a system diagram based on a textual description
No output schema documented. LLMs cannot predict response structure (link, xml, error format). Baseline: 100% of A+ tools document return types.
Tool description (67 chars) lacks WHEN to use it and prerequisites. Does not state that it generates a draw.io URL or that the diagram is editable. Baseline: 194 chars avg, 50-200 chars recommended for LLM optimization.
Parameter 'description' has minimal annotation (47 chars). No guidance on expected format, length, or complexity. LLMs may pass empty strings or extremely long inputs without constraint.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tool is read-only but LLM cannot infer this from schema alone. Baseline: A+ tools use annotations for clarity.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Error handling returns plain text ('Error generating diagram: ...') without recovery guidance. LLM cannot determine if error is retryable or user-fixable. Baseline: errors must guide next action.