Skip to main content
Glama
FacturX (Factur-X / ZUGFeRD e-invoicing)

FacturX (Factur-X / ZUGFeRD e-invoicing)

facturx_validate

Read-only

Validates an existing Factur-X PDF or CII XML file against EN 16931 or French 2026 PA rules, returning validity status and the first validation errors.

Instructions

Validate an existing Factur-X PDF or CII XML file from the local disk against validation_target (default en16931, the same target as facturx_dry_run and facturx_convert; pass france_2026 to check the invoice is ready for a French PA, plateforme agréée). Returns valid, validationStatus, profile, target and the first errors as reported by the API. Counts 1 invoice of the account quota when the API returns a report.

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": {
      "file_path": "<file_path>"
    },
    "name": "facturx_validate"
  }
}

Input Schema

NameRequiredDescriptionDefault
file_pathYes
validation_targetNoen16931

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.2

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuinely non-structured behavior: quota consumption (1 invoice counted when the API returns a report) and that errors are truncated to the first ones reported by the API. It stops short of describing failure modes such as unreachable API or malformed files.

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-loads the core action and target semantics, then appends return shape and quota note in a compact sequence. Dense but every clause carries information; the parenthetical about sibling defaults is slightly verbose but justified for routing.

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?

An output schema exists, yet the description still usefully names the returned fields and the error truncation, and it covers the quota side effect that no structured field exposes. For a two-parameter read-only validation tool this is close to complete, with only edge-case error behavior left implicit.

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 coverage is 0%, so the description must carry the load, and it does explain the two meaningful values of validation_target (en16931 default, france_2026 for PA readiness) and constrains file_path to a local-disk Factur-X PDF or CII XML. It does not discuss path formats, relative vs absolute paths, or invalid-target handling.

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 precise resource (an existing Factur-X PDF or CII XML file on local disk), plus the axis of validation (validation_target). It is clearly separable from facturx_dry_run and facturx_convert because it operates on an already-existing file rather than a conversion flow.

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 context: use this on an existing file, with the default target matching facturx_dry_run and facturx_convert, and france_2026 as the alternative when checking readiness for a French PA. It does not explicitly state when NOT to use it (e.g. validating a not-yet-generated invoice), so it stops short of full when/when-not guidance.

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