Skip to main content
Glama

spintax.net MCP server

Validate a spintax template

validate_spintax
Read-onlyIdempotent

Static validation: returns diagnostics with severity, stable code, message and 1-based line/column. No "error"-severity diagnostic means the template is structurally sound — read the warnings before rendering, because some of them (plural.locale-missing) mean a block will not resolve. Pass knownVariables for names you will supply at render time to silence their variable.undefined warnings.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "template": "<template>"
    },
    "name": "validate_spintax"
  }
}

Input Schema

NameRequiredDescriptionDefault
localeNoLocale for {plural …} arity, e.g. "en" (2-form), "ru" (3-form: ru/uk/be/sr/hr/bs) or "ar" (6-form). Omit for the 2-form default.
templateYesSpintax template source (max 8192 characters). #include is disabled on this server.
knownVariablesNoVariable names the caller will supply at render time (case-insensitive).

Output Schema

NameRequiredDescriptionDefault
validYesTrue when no error-severity diagnostics.
errorCountYes
diagnosticsYes
warningCountYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / locale / description
      Previous value: -"Locale for {plural …} arity, e.g. \"en\" (2-form) or \"ru\" (3-form: ru/uk/be/sr/hr/bs). Omit for the 2-form default."New value: +"Locale for {plural …} arity, e.g. \"en\" (2-form), \"ru\" (3-form: ru/uk/be/sr/hr/bs) or \"ar\" (6-form). Omit for the 2-form default."
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, closed-world), so the bar is lower, and the description adds real behavioral context on top: the severity/code/message/location diagnostic shape, the semantic meaning of a clean error set, and the fact that specific warnings such as plural.locale-missing indicate a block will not resolve. It doesn't discuss limits like the 8192-char cap beyond what the schema says, but the diagnostic interpretation is substantive added value.

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?

Three sentences, front-loaded with the return contract before the guidance, and every sentence carries information (output shape, interpretation rule, parameter effect). The middle sentence is dense with an em-dash aside, which costs a little readability but no content is wasted.

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

Completeness4/5

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

With an output schema present, the description needn't enumerate return fields, yet it explains how to interpret them (no error severity = structurally sound), which is the missing piece for correct use. Combined with full schema coverage and annotations, an agent has what it needs; only explicit sibling disambiguation is absent.

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 description coverage is 100%, so the baseline is 3, and the description earns above that by explaining the effect of knownVariables (it silences variable.undefined warnings, not merely declares names) — an operational consequence the schema does not state. Locale semantics are left entirely to the schema, so it is not a 5.

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?

The description opens with a specific verb+resource combination ("Static validation") and immediately describes the output shape (diagnostics with severity, code, message, line/column), so an agent knows exactly what the tool produces. The word "static" implicitly separates it from render_spintax, but it never names analyze_spintax or otherwise explicitly differentiates itself from its siblings.

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?

It gives clear situational context: run this before rendering, and read the warnings because some (plural.locale-missing) block resolution. It also tells the caller when to supply knownVariables. It stops short of naming an alternative tool or stating when-not to use this one, so it falls just under fully explicit routing guidance.

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