Skip to main content
Glama
verifactu-mcp

verifactu-mcp

by ArceeDev

validate_facturae

Read-onlyIdempotent

Checks Facturae 3.2.2 XML/XSIG files against official XSD, FACe arithmetic rules, NIF/DIR3 requirements, and signature status before submission to FACe or a client.

Instructions

Validate a Facturae 3.2.2 file (.xml or signed .xsig) before sending it to FACe or a client.

Checks the official XSD, the arithmetic FACe checks (line amounts, tax quotas, header vs line bases, totals, batch totals, installments), NIFs of resident parties, the three DIR3 codes for public administrations, and whether the file is signed. Files that are not Facturae are not charged.

Input Schema

NameRequiredDescriptionDefault
contentNo
content_base64No

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: the specific check families performed (XSD, arithmetic FACe checks, NIF, DIR3 codes, signature presence) and the billing caveat that non-Facturae files are not charged. Annotations already cover read-only/idempotent/closed-world safety, and the output schema covers results, so this is solid but stops short of describing failure modes or severity reporting.

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 in the first sentence, then a compact enumeration of checks. The single long sentence listing checks is dense but every clause conveys a distinct validation category, so little is wasted.

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

Completeness3/5

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

The existence of an output schema relieves the description of explaining return values, and the check list is thorough. However, with zero required parameters and two empty-defaulted content fields, the description gives no guidance on which field to populate or what happens when both are empty, which is a genuine gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and both parameters (content, content_base64) are undocumented, yet the description never clarifies which one accepts raw XML versus base64-encoded data, nor how a signed .xsig should be supplied. The only hint is the file-format mention, which does not map to a parameter.

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), a specific resource (Facturae 3.2.2 .xml/.xsig), and the target destination (FACe or a client). This clearly separates it from siblings like build_facturae or validate_verifactu_xml without the agent needing to open a 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 clear timing context ('before sending it to FACe or a client') and enumerates the check categories, so the agent knows when this tool is applicable. It does not explicitly exclude or route against sibling validators (validate_verifactu_xml, validate_invoice_chain), which keeps it short of a 5.

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