Skip to main content
Glama

E-invoice validator & repair check (XRechnung, Peppol BIS 3, EN 16931)

Validate an e-invoice

validate_einvoice
Read-only

Validate an XRechnung / Peppol BIS 3 / EN 16931 e-invoice (UBL 2.1 Invoice/CreditNote or CII CrossIndustryInvoice XML) with the official KoSIT validator. Returns accepted/rejected, the matched scenario and every error and warning with rule id, message, location and a link to a plain-language explanation. For rejected files it also reports which errors an automatic repair removes (measured on this file).

Input Schema

NameRequiredDescriptionDefault
xmlYesThe complete invoice XML as text (max 5 MB).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, closed-world), so the description focuses on the right extras: the verdict shape (accepted/rejected), the matched scenario, error/warning detail with rule id, message, location and explanation link, plus the repair-preview for rejected files. It does not mention latency, file-size handling at runtime, or what happens on malformed/non-invoice XML, which would be the remaining behavioral gaps.

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 capability then standards then return shape; every sentence carries information. The sentences are long and the repair-preview clause is packed into the last one, so it is dense rather than wasteful.

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?

With no output schema, the description carries the full return-value burden and does so: verdict, scenario, per-diagnostic fields, and the extra repair reporting. Combined with the fully documented single parameter, an agent has enough to call this correctly and interpret the result.

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?

Only one parameter and the schema already documents it at 100% coverage including the 5 MB cap, so the baseline is 3. The description still adds real meaning by enumerating the accepted vocabularies (UBL 2.1 Invoice/CreditNote, CII CrossIndustryInvoice) and the standards the XML will be checked against, telling the agent what valid input actually looks like.

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 (validate) and resource (e-invoice) and pins down scope precisely: XRechnung / Peppol BIS 3 / EN 16931, UBL 2.1 Invoice/CreditNote and CII CrossIndustryInvoice, via the official KoSIT validator. The only sibling, explain_rule, is clearly a different function (explaining a single rule), so the boundary is obvious without naming it.

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 purpose implies when to use it (you have invoice XML and want a conformance verdict), and the mention of rule ids with links hints at the hand-off to explain_rule, but nothing states that hand-off explicitly or lists exclusions (e.g. non-European formats, oversized files). Usage is inferable rather than guided.

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