Skip to main content
Glama

Validate a document

geml_check
Read-only

Validate a GEML document without changing it, returning diagnostics with codes, severities and lines; an empty list confirms it is valid before you report work as finished.

Instructions

Validate a GEML document without changing it: returns every diagnostic with a stable code, a severity and a line, and an empty list means the document is valid. Use it to confirm a document is sound before reporting work as finished. Every write through this server runs the same check before it lands, so a refused write already carries this information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileYesDocument path relative to the server's --root directory, e.g. notes/spec.geml
rootNoDirectory (inside the server root) against which cross-document references resolve. Defaults to the server root itself. This is a REFERENCE root and is distinct from the server's own --root sandbox, which it can only narrow.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only cover readOnlyHint=true and openWorldHint=false; the description goes well beyond them by disclosing the return contract (every diagnostic with a stable code, severity and line, empty list means valid) and the cross-cutting behavior that all writes run the same check. This is substantive context an agent cannot get from the annotations.

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

Conciseness5/5

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

Three sentences, each doing distinct work: what it does, how to read the result, and why a re-check may be redundant. The non-mutating constraint is front-loaded and nothing is padded.

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?

No output schema exists, but the description supplies the return semantics (diagnostic fields, empty-list-means-valid), so an agent knows how to interpret results. Combined with the schema covering both parameters, nothing needed to call or read this tool 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?

Schema description coverage is 100%, and both parameters (file, root) are documented in the schema itself, including the subtle reference-root vs. sandbox-root distinction. The description adds no parameter-level meaning, so the baseline of 3 applies.

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?

States a specific verb and resource ('Validate a GEML document') plus the crucial constraint 'without changing it', which immediately separates it from the write siblings (geml_set, geml_add, geml_delete, geml_rename, geml_revert). An agent can pick this out of the sibling list without opening any schema.

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

Usage Guidelines4/5

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

Gives an explicit use case ('confirm a document is sound before reporting work as finished') and an implicit when-not-to-use: since every write already runs the same check, a refused write already carries this information, so re-validating is often redundant. It stops short of naming a specific sibling alternative, but the guidance is clear.

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