Skip to main content
Glama
SamDreamsMaker

facturx-mcp

facturx_validate

Ensures invoice accuracy before Factur-X generation: verifies mandatory fields, date/country/VAT formats, and line amount totals, then reports blocking errors and warnings.

Instructions

Valide les données d'une facture avant génération : vérifie les champs obligatoires, les formats (dates, codes pays, TVA), la cohérence des montants lignes. Retourne les erreurs bloquantes et les avertissements.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDate d'émission (YYYY-MM-DD)
buyerYes
linesYes
notesNoNotes libres sur la facture
numberYesNuméro de facture unique
sellerYes
dueDateNoDate d'échéance (YYYY-MM-DD)
paymentNo
profileNoProfil Factur-XEN_16931
buyerRefNoRéférence interne acheteur
currencyYesCode devise ISO 4217EUR
typeCodeNo380=facture, 381=avoir, 389=auto-facturation380
contractRefNoRéférence contrat
deliveryDateNoDate de livraison (YYYY-MM-DD)
purchaseOrderRefNoRéférence bon de commande

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.3

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries behavioral disclosure. It clearly indicates the operation is non-mutating (checks, returns) and explains the result categories: blocking errors and warnings. It does not explicitly state the absence of side effects, but the verbs and return description implicitly convey a read-only validation behavior.

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?

The description is a single, dense sentence that front-loads the main verb and object, then expands with specific validation checks and the output type. Every clause adds value; there is no redundant or filler content.

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 tool is complex (15 parameters, nested objects, no output schema) and the description states the broad purpose and result types but does not detail the structure of returned errors/warnings or explain how an agent should interpret them. This leaves a clear gap for consuming the validation result, though it is minimally adequate for deciding whether to call the tool.

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?

The schema already covers 73% of parameters with descriptions (dates, country codes, VAT, line amounts), and the description's summary restates these same categories without adding parameter-level details. With high schema coverage, the baseline of 3 applies; the description does not compensate for the remaining undocumented parameters.

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 clearly identifies the tool as a validator ('Valide les données d'une facture'), specifies what it checks (required fields, formats, line amount consistency), and states its output (errors/warnings). It situates the action 'avant génération', giving pipeline context, but does not explicitly name or differentiate any sibling tool.

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?

The phrase 'avant génération' is a clear temporal/usage condition, telling the agent to invoke this before creating an invoice. It does not explicitly mention alternatives or excluded cases, but this context is sufficient for choosing the tool among siblings that generate, parse, or compute totals.

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