Skip to main content
Glama

Validate a Romanian e-Factura XML

validate_efactura

Validates a UBL 2.1 invoice/credit note against RO e-Factura rules (CIUS-RO) using ANAF's official public validator (XSD + Schematron, no ANAF account needed) plus fast local checks (totals, VAT breakdown, CUI checksums, RO county codes, Bucharest SECTORn). Returns valid true/false and the exact rule codes (BR-xx, BR-RO-xx) with English/Romanian messages. Costs 1 credit; not billed if ANAF is unreachable.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xmlYesUBL 2.1 Invoice or CreditNote XML (RO e-Factura / CIUS-RO)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations present, the description carries the full burden and does so well: it discloses the external dependency (ANAF's official public validator via XSD + Schematron), the auth situation (no ANAF account needed), the cost model (1 credit, not billed if ANAF is unreachable, avoiding surprise charges on failure), and the return shape (valid boolean plus exact BR-xx/BR-RO-xx rule codes with bilingual messages). This is materially richer than any structured field provides.

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 dense sentences, front-loaded with the core action and validator engine before moving to output and billing. No filler, no repetition of the title, and each clause adds a distinct fact an agent would otherwise have to guess.

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 no output schema and no annotations, the description does the heavy lifting by describing both the validation engine stack and the return values, so an agent knows what it gets back. Minor gaps remain: no mention of latency/timeouts for the remote ANAF call or behavior on malformed input, but nothing critical to correct invocation 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?

There is a single parameter and schema description coverage is 100%, so the schema already documents that it expects UBL 2.1 Invoice or CreditNote XML for RO e-Factura/CIUS-RO. The description restates the same format constraint but adds no syntax, encoding, or size guidance beyond the schema's maxLength, so the baseline of 3 is appropriate.

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 (validates), a specific resource (UBL 2.1 invoice/credit note), and a specific standard/rule set (RO e-Factura CIUS-RO), which cleanly separates it from the sibling generate_efactura, parse_efactura, and efactura_to_pdf. An agent can pick this tool 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 Guidelines3/5

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

The description implies the use case (checking an e-Factura before submission) and notes that no ANAF account is required, which is useful selection context. However, it never explicitly says when to use this versus generate_efactura or parse_efactura, nor when validation is unnecessary, leaving the routing to inference.

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