Interactive PlantUML diagram editor and renderer with MCP Apps extension support. Allows rendering and editing PlantUML diagrams with real-time visualization, selection support, and AI agent integration.
Single tool with adequate schema but weak naming and description. Tool name 'plantuml_diagram' lacks action verb (should be 'render_plantuml' or 'generate_diagram'). Description is lengthy (400+ chars) but reads as syntax documentation rather than LLM-optimized guidance on WHEN to use the tool. Input schema present with types and descriptions, but output schema is undocumented, LLM cannot predict what fields to expect. No error handling guidance. Tool is read-only (low risk) but lacks composition context.
Render and edit PlantUML diagrams interactively. Generates a visual diagram from PlantUML syntax code. Syntax notes (PlantUML server uses latest syntax): - Activity diagram colors: use `:text; <<#HexColor>>` (NOT `#HexColor:text;` which is deprecated) Example: `:Success; <<#90EE90>>` instead of `#90EE90:Success;` - Wrap code in @startuml / @enduml - skinparam goes after @startuml, before diagram content - Use "as" aliases for long names: `participant "Long Name" as LN` - Arrow styles: -> (solid), --> (dashed), ->> (async), ..> (dotted) - Notes: `note left of X : text` or `note over X,Y : text`
Tool name lacks action verb. 'plantuml_diagram' is a noun; should start with verb like 'render_', 'generate_', or 'create_'. LLMs infer intent from the name before reading description.
Output schema is undocumented. Tool returns {content: [{type, text}]} but LLM has no schema to predict structure. Documentation must state: 'Returns text summary of rendered diagram (SVG is rendered in UI resource, not returned here).'
Description is syntax reference, not LLM guidance. Current text (400+ chars) teaches PlantUML syntax but does not answer: WHEN should the LLM call this? What does it return? How does it differ from other diagram tools? Rewrite as: 'Render PlantUML diagrams from code. Use when user requests a sequence, class, activity, or other diagram. Returns confirmation; diagram displays in interactive UI.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No error handling guidance. If PlantUML syntax is invalid, tool returns generic text. Should return structured error: {error: 'Invalid PlantUML syntax', details: '...', suggestion: 'Check @startuml/@enduml wrapping and syntax rules.'}
diagramType parameter is optional but lacks enum constraint. Should enumerate: 'class|sequence|activity|usecase|component|deployment|state|object|timing|gantt|mindmap' to prevent LLM hallucination of invalid types.