Skip to main content
Glama

GEML — a plain-text document format built to be edited in place, one section at a time

Validate a document

geml_check
Read-only

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. This server is STATELESS: the document travels in source and a write comes back as document for you to save; it holds no other documents, so a cross-document reference such as [[other.geml#id]] cannot be resolved here and is reported as unresolvable-document.

Input Schema

NameRequiredDescriptionDefault
nameNoThe document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: document.geml.
sourceYesThe document's full text. This server keeps no files: what you send is the document.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover readOnlyHint and openWorldHint; the description goes well beyond them by disclosing the server is STATELESS, that no files are kept, that `source` is the entire document, that writes return a `document`, and that cross-document references like `[[other.geml#id]]` cannot be resolved here and surface as `unresolvable-document`. These is exactly the non-obvious context an agent needs before calling.

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?

Front-loaded with purpose and return shape, then usage, then the stateless caveat. Every sentence carries information, though the final sentence packs three separate facts (statelessness, write round-trip, unresolvable references) and runs long. Dense rather than 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?

There is no output schema, so the description carries the full burden of describing return values and does so precisely. Combined with the stateless-model explanation and the meaning of an empty diagnostic list, an agent has everything needed to call and interpret this tool correctly.

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%, so both `name` (GEML vs Markdown dispatch) and `source` are already fully documented in the schema. The description reinforces that the document travels in `source` and that nothing is persisted, but adds no format or syntax detail beyond the schema. Baseline 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 without changing it') and immediately defines what comes back: diagnostics with a stable `code`, severity and line, plus the empty-list-means-valid rule. This distinguishes it cleanly from the mutation siblings (geml_add, geml_set, geml_delete) 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 Guidelines5/5

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

Explicitly says when to reach for it ('confirm a document is sound before reporting work as finished') and when it is redundant ('every write through this server runs the same check before it lands, so a refused write already carries this information'). It also states the boundary condition for the stateless model, so the agent knows an `unresolvable-document` diagnostic is expected rather than a bug.

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.