mcp-facturacion-electronica-es
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AEAT_ENV | No | Sandbox or production environment for AEAT (VERI*FACTU/SII) | |
| AEAT_NIF | No | NIF of the taxpayer for AEAT submissions | |
| FACE_ENV | No | Sandbox or production environment for FACe | |
| LOG_LEVEL | No | Logging level (DEBUG, INFO, WARNING, ERROR) | INFO |
| TICKETBAI_ENV | No | Sandbox or production environment for TicketBAI | |
| FACE_CLIENT_ID | No | OAuth2 client ID for FACe | |
| FACE_CLIENT_SECRET | No | OAuth2 client secret for FACe | |
| AEAT_CERTIFICATE_PATH | No | Path to FNMT-RCM PKCS#12 certificate for AEAT submissions | |
| AEAT_CERTIFICATE_PASSWORD | No | Password for the AEAT certificate | |
| TICKETBAI_CERTIFICATE_PATH | No | Path to the provincial signing certificate for TicketBAI | |
| TICKETBAI_CERTIFICATE_PASSWORD | No | Password for the TicketBAI certificate |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| es__generate_verifactu_recordA | Genera un registro de factura VERI*FACTU (Orden HAC/1177/2024) con cadena SHA-256 Huella. Devuelve el XML del registro y la Huella para encadenar con el siguiente registro. Llame a es__detect_regional_regime antes para confirmar que el régimen es VERIFACTU. |
| es__validate_verifactu_recordA | Valida un registro VERI*FACTU XML. Realiza validación estructural y, si el XSD v1.0 (HAC/1177/2024) está disponible en resources/verifactu/, también validación de esquema. |
| es__submit_verifactu_to_aeatA | Envía un registro VERI*FACTU firmado al endpoint en tiempo real de la AEAT mediante MTLS. Usa el certificado FNMT-RCM. Requiere AEAT_ENV, AEAT_CERTIFICATE_PATH y AEAT_CERTIFICATE_PASSWORD. Si la respuesta trae parsed_response.status == 'deferred' (TiempoEsperaEnvio), espere retry_after_seconds y llame a es__query_verifactu_status para confirmar el EstadoRegistro final antes de encadenar el siguiente registro. HUMAN-IN-THE-LOOP: llame sin confirmation_token para recibir un resumen de confirmación y un token; muéstrelo al usuario y vuelva a llamar con confirmation_token para ejecutar el envío real. |
| es__query_verifactu_statusA | Consulta el EstadoRegistro de un registro VERI*FACTU ya enviado. (ConsultaFactuSistemaFacturacion / ConsultaLR.xsd). Use esta tool tras un resultado 'deferred' de es__submit_verifactu_to_aeat, esperando retry_after_seconds, para confirmar el estado final (Correcto / AceptadoConErrores / Anulado) antes de encadenar el siguiente registro. Requiere AEAT_ENV, AEAT_CERTIFICATE_PATH y AEAT_CERTIFICATE_PASSWORD, igual que es__submit_verifactu_to_aeat. |
| es__generate_qr_verifactuA | Genera el código QR obligatorio VERI*FACTU (HAC/1177/2024 Art. 10) como PNG en base64. Encodes la URL de verificación de la AEAT: https://www2.agenciatributaria.gob.es/wlpl/TIKE-CONT/ValidarQR?... |
| es__cancel_verifactu_recordA | Genera un registro de anulacion VERI*FACTU (TipoHuella=01). Encadenado a la secuencia de huellas actual. |
| es__generate_facturae_xmlA | Genera una factura XML conforme a Facturae 3.2.2 para envío B2G al portal FACe. El documento generado está sin firmar; use es__sign_facturae_xades para firmarlo. |
| es__sign_facturae_xadesA | Aplica una firma digital XAdES-EPES (ETSI EN 319 132-1) a un documento Facturae XML. Usa el certificado PKCS#12 indicado para firmar con SHA-256 + RSA. La política de firma por defecto es la de Facturae (Orden EHA/962/2007). HUMAN-IN-THE-LOOP: llame sin confirmation_token para recibir un resumen de confirmación y un token; muéstrelo al usuario y vuelva a llamar con confirmation_token para aplicar la firma real. |
| es__submit_to_faceA | Envía un XML Facturae firmado con XAdES a FACe a través de la API REST B2B de FACe v2. FACe = Punto General de Entrada de Facturas Electrónicas. Autenticación JWS (RS256 + x5c) per FACe-manual-api-integradores.pdf s2.3: requiere FACE_ENV y AEAT_CERTIFICATE_PATH (+ AEAT_CERTIFICATE_PASSWORD). HUMAN-IN-THE-LOOP: llame sin confirmation_token para recibir un resumen de confirmación y un token; muéstrelo al usuario y vuelva a llamar con confirmation_token para ejecutar el envío real. |
| es__get_face_invoice_statusB | Consulta el estado de tramitación de una factura en FACe. Códigos: 1200 Registrada, 2400 Reconocida, 3100 Rechazada, 4100 Pagada. |
| es__validate_facturae_schemaA | Valida un XML Facturae contra el XSD oficial 3.2.2. Realiza validación estructural y, si el XSD está disponible en resources/facturae/, también validación de esquema completa. |
| es__build_sii_invoice_recordB | Construye un registro XML AEAT SII en formato SOAP. Emisión FacturaExpedida o recepción FacturaRecibida, conforme a la guía técnica SII v3.0 (abril 2024). Soporta TipoComunicacion A0 (alta), A1 (modificación) y A4 (baja). |
| es__submit_sii_batchA | Envía un lote de facturas (máximo 10.000 registros) al endpoint SOAP SII de la AEAT. Requiere AEAT_ENV, AEAT_CERTIFICATE_PATH y AEAT_CERTIFICATE_PASSWORD (MTLS). HUMAN-IN-THE-LOOP: llame sin confirmation_token para recibir un resumen de confirmación y un token; muéstrelo al usuario y vuelva a llamar con confirmation_token para ejecutar el envío real. |
| es__query_sii_statusB | Consulta el estado de facturas en el SII mediante ConsultaFactInformadasEmitidas/Recibidas (SOAP). ES-LC-2: reemplaza el REST GET no funcional por el envelope SOAP correcto. Filtra por ejercicio, periodo y, opcionalmente, por NIF del emisor y numero de factura. |
| es__generate_sii_correctionA | Genera un registro de modificación SII (A1) o baja (A4). Referencia la factura original mediante IDFactura. |
| es__generate_b2b_einvoice_esC | Genera una factura B2B conforme a EN 16931 en formato UBL 2.1 o Facturae 3.2.2. Según la Ley 18/2022 'Crea y Crece'. RD 238/2026 publicado; formatos confirmados (EN 16931: CII/UBL/EDIFACT/Facturae). Orden Ministerial (Hacienda) pendiente para la solución pública. |
| es__check_b2b_mandate_applicabilityA | Determina el régimen de facturación electrónica aplicable. VERI*FACTU, SII, TicketBAI, NaTicket, a partir del volumen de operaciones, código de provincia y enrolamiento en SII. Aplica la lógica de exclusión mutua del Real Decreto 254/2025. |
| es__detect_regional_regimeA | Detecta el régimen de facturación electrónica aplicable. A partir del código de provincia INE de dos dígitos. Devuelve VERIFACTU, TICKETBAI, NATICKET o VERIFACTU+SII. Usar siempre antes de llamar a cualquier otra herramienta de este servidor. |
| es__get_compliance_statusC | Devuelve los plazos de mandato vigentes y el sistema operativo para un perfil de empresa. Refleja el RD-ley 15/2025 — sujeto a cambios por legislación posterior. |
| es__parse_aeat_responseA | Analiza y normaliza una respuesta XML de la AEAT (VERI*FACTU o SII) a JSON estructurado. Extrae EstadoEnvio, CSV (código seguro de verificación) y detalle de errores. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
The tools are grouped by distinct fiscal systems (VERI*FACTU, Facturae/FACe, SII, B2B), and each verb-object pair is clearly distinguishable. However, several high-level patterns overlap (multiple generate, validate, submit, query tools), and detect_regional_regime vs check_b2b_mandate_applicability both determine applicable regimes, requiring careful reading of descriptions.
All tool names follow an es__<verb>_<object> pattern consistently, using snake_case throughout. Minor variations like submit_to_face and generate_b2b_einvoice_es are still within the same predictable structure and do not break the convention.
Twenty tools sits at the upper boundary of a reasonable scope, but the server covers four distinct compliance domains (VERI*FACTU, FACe, SII, B2B) plus cross-cutting regime detection and response parsing. Each tool has a clear role, so the count is slightly heavy but justifiable.
The server provides generation, validation, submission, status querying, and correction/cancellation for all major Spanish e-invoicing systems, along with QR generation, schema validation, regime detection, and AEAT response parsing. No significant lifecycle gaps are apparent for its stated purpose.