Skip to main content
Glama
cmendezs

mcp-einvoicing-core

by cmendezs

mcp-einvoicing-core

License PyPI version Python

Temas: mcp mcp-server e-invoicing electronic-invoicing european-invoicing python fastmcp peppol en16931 ubl fatturapa xp-z12-013 xml base-library

Paquete base para servidores MCP de facturación electrónica europea.

Proporciona clases base abstractas, modelos Pydantic compartidos, utilidades XML y un cliente HTTP para que los paquetes específicos de cada país (mcp-facture-electronique-fr, mcp-fattura-elettronica-it, …) compartan una base común sin duplicar código.


Qué proporciona este paquete

Módulo

Contenido

Utilizado por

models.py

InvoiceParty, InvoiceLineItem, VATSummary, PaymentTerms, InvoiceDocument, DocumentValidationResult

IT (generación de facturas estructuradas), futuros BE/PL/DE/ES

base_server.py

BaseDocumentGenerator, BaseDocumentValidator, BaseDocumentParser, BaseLifecycleManager, BasePartyValidator, EInvoicingMCPServer

Todos los adaptadores de país

xml_utils.py

format_amount, format_quantity, validate_date_iso, validate_iban, xml_element, xml_optional, format_error, filter_empty_values

IT (extraído literalmente), futuros formatos basados en XML

http_client.py

TokenCache, OAuthConfig, BaseEInvoicingClient (OAuth2 + sin autenticación)

FR (extraído literalmente), futuros países basados en API

exceptions.py

EInvoicingError, ValidationError, PartyValidationError, XSDValidationError, DocumentGenerationError, AuthenticationError, PlatformError

Todos los adaptadores de país

logging_utils.py

setup_logging, get_logger

Todos los adaptadores de país

Related MCP server: mcp-facture-electronique-fr

Instalación

pip install mcp-einvoicing-core

Este paquete no tiene dependencias específicas de ningún país. lxml (necesario para la validación XSD en IT y futuros países) es declarado por cada paquete de país individualmente.

Arquitectura

mcp-einvoicing-core           ← this package
  ├── BaseDocumentGenerator   ← abstract: generate(InvoiceDocument) → str
  ├── BaseDocumentValidator   ← abstract: validate(xml) → DocumentValidationResult
  ├── BaseDocumentParser      ← abstract: parse(xml) → dict
  ├── BaseLifecycleManager    ← abstract: submit/search/get_status (async HTTP)
  ├── BasePartyValidator      ← abstract: validate_seller/buyer/tax_id
  ├── BaseEInvoicingClient    ← concrete: async HTTP + OAuth2/no-auth/token
  ├── InvoiceDocument (Pydantic)  ← shared data model
  └── EInvoicingMCPServer     ← plugin registry wrapping FastMCP

mcp-facture-electronique-fr   ← country adapter (FR)
  ├── PAConfig(OAuthConfig)
  ├── FlowClient(BaseEInvoicingClient)      ← OAuth2, XP Z12-013 Annex A
  ├── DirectoryClient(BaseEInvoicingClient) ← OAuth2, XP Z12-013 Annex B
  └── FrLifecycleManager(BaseLifecycleManager)

mcp-fattura-elettronica-it    ← country adapter (IT)
  ├── ItalyPartyValidator(BasePartyValidator)   ← Partita IVA modulo-10
  ├── FatturaGenerator(BaseDocumentGenerator)   ← FatturaPA XML v1.6.1
  ├── FatturaValidator(BaseDocumentValidator)   ← lxml XSD v1.6.1
  └── FatturaParser(BaseDocumentParser)         ← lxml xpath

Patrón de registro de plugins

Los paquetes de país registran sus herramientas en una instancia de FastMCP compartida o independiente:

# Standalone (existing server.py — no changes required)
from fastmcp import FastMCP
mcp = FastMCP(name="mcp-fattura-elettronica-it", instructions="…")
register_header_tools(mcp)
register_body_tools(mcp)
register_global_tools(mcp)

# Multi-country (optional EInvoicingMCPServer)
from mcp_einvoicing_core import EInvoicingMCPServer
server = EInvoicingMCPServer(name="mcp-einvoicing-eu", instructions="…")
server.register_plugin(register_header_tools, "it-header")
server.register_plugin(register_flow_tools, "fr-flow")
server.run()

Compatibilidad con Claude Desktop / Cursor / Kiro

Las configuraciones existentes para mcp-facture-electronique-fr y mcp-fattura-elettronica-it no requieren cambios: los nombres de las herramientas, firmas, variables de entorno y puntos de entrada (server:main) se conservan totalmente.

Compatibilidad con la hoja de ruta

País

Estado

Estándar

Transporte

Hereda

Sobrescribe

Brechas conocidas

🇫🇷 FR

✅ Hecho

XP Z12-013

Híbrido / Hub PPF

BaseEInvoicingClient, BaseLifecycleManager

submit_lifecycle_status, healthcheck

Ninguna

🇮🇹 IT

✅ Hecho

FatturaPA v1.6.1

Directo / SDI

BaseDocumentGenerator, BaseDocumentValidator, BaseDocumentParser, BasePartyValidator

todos los métodos abstractos

to_invoice_document() aún no implementado

🇧🇪 BE

✅ Hecho

Peppol BIS 3.0

AS4 / Peppol

todas las clases base

generate() → UBL 2.1, validate() → Schematron EN16931

Ninguna

🇵🇱 PL

🔄 En progreso

KSeF FA(2)

API directa

BaseDocumentGenerator, BaseDocumentValidator, BaseLifecycleManager

Flujo de autenticación de sesión KSeF

Modo de autenticación MTLS aún no implementado

🇩🇪 DE

🔄 En progreso

ZUGFeRD / XRechnung

AS4 / Peppol

todas las clases base

generate() devuelve bytes PDF (base64)

Ambigüedad en el tipo de retorno de generate(): str vs bytes

🇪🇸 ES

🔄 En progreso

FACeB2B / FacturaE

API directa

todas las clases base

Autenticación mTLS

Modo de autenticación MTLS aún no implementado

🇷🇴 RO

📋 Pendiente

RO-UBL (EN 16931)

API directa / clearance

BaseDocumentGenerator, BaseLifecycleManager

Flujo de clearance ANAF

Se necesita variante BaseSchematronValidator

🇬🇷 GR

📋 Pendiente

myDATA XML

API directa / reporting

BaseEInvoicingClient, BaseLifecycleManager

Flujo de autenticación + reporting myDATA

Cliente API myDATA aún no diseñado

🇳🇱🇸🇪🇩🇰🇳🇴 Nórdicos/NL

📋 Pendiente

Peppol BIS 3.0 / UBL

AS4 / Peppol

todas las clases base

generate() → UBL 2.1, validate() → Schematron

Reutiliza la capa de transporte AS4 de BE

🇵🇹 PT

📋 Pendiente

CIUS-PT + Código QR

Firma / directo

BaseDocumentGenerator, BaseDocumentValidator

Firma cualificada + inyección QR

Integración de firma cualificada no diseñada

Notas arquitectónicas

Interfaz de transporte

A medida que aumenta el número de adaptadores, una abstracción TransportInterface en el núcleo evitará la duplicación entre países que comparten la misma capa de transporte:

Transporte

Países

API directa (clearance / reporting)

FR, RO, GR, HU

Red AS4 / Peppol

BE, DE, Nórdicos/NL

Híbrido / hub

FR (ruta dual PPF/PDP)

Alemania: 80% de reutilización de FR

El mandato de Alemania (activo desde enero de 2025 para recepción B2B) favorece fuertemente ZUGFeRD/Factur-X, el mismo modelo XML incrustado en PDF que el perfil francés Factur-X. La lógica de generación y validación XML de mcp-facture-electronique-fr puede reutilizarse con cambios mínimos, convirtiendo a DE en el siguiente adaptador de menor esfuerzo después de BE.

ViDA / DRR (2030)

Para julio de 2030, todos los sistemas nacionales deben alinearse con el Requisito de Reporte Digital de la UE para transacciones transfronterizas. El uso de EN 16931 como modelo de datos interno InvoiceDocument en este paquete central ya prepara el proyecto para el futuro: los adaptadores de país traducen EN 16931 → formato local, no al revés.

Licencia

Apache 2.0 — ver LICENSE.

Install Server
A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
4dRelease cycle
29Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for DACH e-invoicing. Create XRechnung (UBL) and ZUGFeRD 2.3 (Factur-X CII) invoices, validate against EN 16931 rules, extract data from XML, and convert between UBL, CII and JSON formats.
    6
    56
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Model Context Protocol (MCP) server for French Electronic Invoicing (NF XP Z12-013). Provide tools to validate, generate, and explore API specifications for PDP/OD interoperability.
    34
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Model Context Protocol (MCP) server for Italian Electronic Invoicing (FatturaPA / SDI). Provide tools to validate, generate, and explore API specifications for Sistema di Interscambio (SDI) interoperability.
    27
    1
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Model Context Protocol (MCP) server for Belgian Electronic Invoicing (Peppol BIS 3.0 / PINT-BE / Mercurius). Provides tools to validate, generate, and transform UBL 2.1 e-invoices, and look up BCE/KBO enterprise data and Peppol participants.
    7
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Brazilian fiscal MCP server - issue NF-e, NFC-e, NFS-e, CT-e, MDF-e and DC-e via SEFAZ.

  • Create, validate, convert & extract compliant e-invoices (UBL, Factur-X, ZUGFeRD, XRechnung)

  • Workflow diagnostics, capability routing, and x402 settlement for MCP-compatible agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cmendezs/mcp-einvoicing-core'

If you have feedback or need assistance with the MCP directory API, please join our Discord server