Skip to main content
Glama
verifactu-mcp

verifactu-mcp

by ArceeDev

validate_verifactu_xml

Read-onlyIdempotent

Validates VERI*FACTU XML against the official AEAT schema and runs invoice chain and fingerprint checks to detect broken links or tampered records.

Instructions

Audit VERI*FACTU XML exported by an invoicing program (RegFactuSistemaFacturacion, a SOAP envelope, or any XML holding RegistroAlta / RegistroAnulacion elements, in document order).

Validates RegFactuSistemaFacturacion against the official AEAT schema (SuministroLR.xsd) when present, then runs every chain and fingerprint check of validate_invoice_chain. XML that holds no records is not charged.

Input Schema

NameRequiredDescriptionDefault
contentNo
content_base64No
continues_fromNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare read-only and idempotent, so the bar is lower. The description still adds real value: schema validation against SuministroLR.xsd happens 'when present' (i.e., conditionally), all chain and fingerprint checks are re-run, and empty-record XML is not billed — a billing behavior not visible in annotations.

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?

Two short sentences plus a note, front-loaded with the verb and resource and then the validation steps in execution order. Minor line-wrapping aside, no filler sentences.

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 output schema covers return values and annotations cover safety, so the remaining burden is input semantics and they are unaddressed. For a three-parameter tool with two mutually exclusive content fields, the definition leaves a material gap.

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% across three parameters, so the description must carry parameter meaning and does not. It never explains whether to populate content versus content_base64, or what continues_from does (presumably resuming a chain across documents); an agent must guess.

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?

Names a specific verb (Audit) and resource (VERI*FACTU XML) and enumerates the accepted document shapes (RegFactuSistemaFacturacion, SOAP envelope, raw RegistroAlta/RegistroAnulacion). It also positions itself relative to validate_invoice_chain by running that tool's checks on top of schema validation, though the wrapper relationship could be stated more directly.

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?

Usage is implied by the accepted-format list and the note that empty XML is not charged, so an agent can infer this is for auditing exported invoice files. There is no explicit when-not guidance or statement of when to call validate_invoice_chain directly instead of this wrapper.

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