Skip to main content
Glama

Validate PlantUML diagram text

validate_plantuml

Check PlantUML diagram text structure and rendering, returning errors, warnings, and fix hints without raising exceptions.

Instructions

Validate PlantUML diagram text through the strict validation chain (the frozen rulebook specmgr://uc/plantuml §3): the structure check always runs first (on a structure red the parser is never called -- no subprocess, no network), then the single configured source (the first set of SPECMGR_PLANTUML_JAR/SPECMGR_PLANTUML_BIN/SPECMGR_PLANTUML_URL; no fall-through -- a set-but-unavailable source is a hard failure with reason + fix hint), and the all-unset state degrades to the structure-only floor. A PlantUML server crash page (200 + the embedded Java-exception trace -- the recognised 1.2026.8 crash line of the rulebook §5.2 matrix, the known self-message/note-left shape bug) is a recognised INVALID row: valid=false with the line-0 crash finding carrying the exception class and a fix hint pointing at the rulebook §2.9 anchored notes. Content-based: pass the diagram text (a CLI reads the file and passes its text). Never raises for validation content -- returns the non-raising §3.6 result model: structure_ok, valid/rendered (None = not run, never run-and-failed), checked_by (jar/bin/url/structure), errors and warnings (1-based line + message + fix hint), source_state (ok/misconfigured/unavailable/inconclusive/none), available, reason, fix_hint.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
validYes
errorsYes
reasonNo
fix_hintNo
renderedYes
warningsYes
availableNo
checked_byYes
source_stateNonone
structure_okYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.36.0

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discharges it richly: it discloses the always-first structure check with no subprocess/network on a structure red, the single configured source with no fall-through, the all-unset structure-only floor, the recognised crash-page handling, and the 'never raises' contract. This is exactly the behavioral context an agent needs that structured fields do not supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and ordering constraint are front-loaded, which is good, but the bulk is a single dense run-on sentence overloaded with parentheticals and semicolons. The long enumeration of the return model is also largely redundant given an output schema exists, so several clauses do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool whose output schema already documents the result model, the description still covers the full validation flow, all source states, and failure modes, leaving no ambiguity about what the call does or how it behaves. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single 'text' parameter, so the description must compensate, and it does by specifying that the input is the diagram text itself (content-based), not a file path. That resolves the main ambiguity around the one parameter, though it stops short of format or length guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (validate) and resource (PlantUML diagram text) and precisely delineates the validation chain it runs. It does not, however, explicitly distinguish itself from the sibling tools 'validate' and 'validate_adr', so an agent must infer the boundary from the resource name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Content-based: pass the diagram text (a CLI reads the file and passes its text)' clause gives a concrete invocation cue, and the chain description implies when full strict validation is needed. But there is no explicit when-to-use vs. when-not, nor any routing to sibling validators, so guidance remains implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.