Skip to main content
Glama

Zovo Class Diagram

Check class diagram text

check_class_diagram
Read-onlyIdempotent

Use this when the user wants class diagram text checked without a drawing, for example "check my class diagram for errors" or "are there inheritance cycles in this model". Takes the same text as make_class_diagram. Returns the syntax problems with their line numbers, relations to classes that are not declared, duplicate classes and members, inheritance cycles named class by class, and model warnings (abstract members in a concrete class, a class that inherits from an interface, realization of a class that is not an interface, repeated relations). Draws nothing and makes no files. Does not read source code files.

Input Schema

NameRequiredDescriptionDefault
sourceYesThe class diagram text in this grammar, up to 100,000 characters. One item per line. Classes: "class Name {", "interface Name {", "abstract class Name {" or "enum Name {", then one member per line, then "}" on its own line ("class Name" alone declares an empty class; a stereotype may follow the name, e.g. "class Name <<entity>> {"). Fields: "+name: Type". Methods: "+name(arg: Type, other: Type): ReturnType". Visibility + public, - private, # protected, ~ package (optional). "{static}" or "{abstract}" before the name marks static or abstract members. Enum constants: one NAME per line. Relations: "Animal <|-- Dog" (inheritance), "Shape <|.. Circle" (realization), "Car *-- Wheel" (composition), "Team o-- Player" (aggregation), "Customer --> Order" (association), "Report ..> Printer" (dependency), "A -- B" (link); arrows may point either way (Dog --|> Animal). Optional multiplicities in quotes next to each class and a label after a colon: Customer "1" --> "0..*" Order : places. "%%" starts a comment line. Example: "class Customer {\n+name: String\n+orders(): List<Order>\n}\nclass Order {\n-total: Decimal\n}\nCustomer \"1\" --> \"*\" Order : places".

Output Schema

NameRequiredDescriptionDefault
readyYes
shownNo
countsYes
errorsYes
limitsYes
relation_linesYes
warnings_foundYes
unknown_classesYes
duplicate_membersYes
relations_by_kindYes
inheritance_cyclesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered; the description still adds real behavior the annotations do not carry, namely explicit side-effect guarantees ('Draws nothing and makes no files', no source-file reading). The enumeration of returned problem categories is helpful for judging whether the tool answers a user's question, though it partly pre-empts the output schema.

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

Conciseness4/5

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

The most decision-relevant content (trigger condition, example utterances, sibling equivalence) is front-loaded, and the negative guarantees come next. The long error-category list is information-dense but borders on duplicating the output schema, making it slightly longer than needed.

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 single-input, read-only validator with annotations covering safety and an output schema covering return shape, the description supplies everything else an agent needs: trigger intent, input equivalence, side-effect guarantees, and the scope of what gets checked. Nothing material is missing.

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

Parameters3/5

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

With one parameter at 100% schema coverage, the schema already documents the grammar exhaustively, so the baseline is 3. The only semantic addition is 'Takes the same text as make_class_diagram', which usefully tells the agent the accepted input format matches the sibling, but the description adds no syntax detail of its own.

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

Purpose5/5

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

The description opens with a specific verb and resource ('class diagram text checked') and immediately distinguishes itself from the sibling: 'without a drawing' and 'Takes the same text as make_class_diagram'. An agent can tell which of the two tools to pick without opening either schema.

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

Usage Guidelines5/5

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

It states the triggering user intent plus two concrete example phrasings ('check my class diagram for errors', 'are there inheritance cycles in this model'), and it names the boundary conditions: 'Draws nothing and makes no files. Does not read source code files.' That covers both when to use it and when not to.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources