Skip to main content
Glama
cmendezs

mcp-einvoicing-core

by cmendezs

mcp-einvoicing-core

License PyPI version Python

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

Базовый пакет для европейских MCP-серверов электронного документооборота.

Предоставляет абстрактные базовые классы, общие модели Pydantic, утилиты для XML и HTTP-клиент, чтобы пакеты для конкретных стран (mcp-facture-electronique-fr, mcp-fattura-elettronica-it и др.) имели общую основу без дублирования кода.


Что предоставляет этот пакет

Модуль

Содержимое

Используется в

models.py

InvoiceParty, InvoiceLineItem, VATSummary, PaymentTerms, InvoiceDocument, DocumentValidationResult

IT (генерация структурированных счетов), в будущем BE/PL/DE/ES

base_server.py

BaseDocumentGenerator, BaseDocumentValidator, BaseDocumentParser, BaseLifecycleManager, BasePartyValidator, EInvoicingMCPServer

Все адаптеры стран

xml_utils.py

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

IT (извлечено дословно), будущие форматы на основе XML

http_client.py

TokenCache, OAuthConfig, BaseEInvoicingClient (OAuth2 + без авторизации)

FR (извлечено дословно), будущие API-ориентированные страны

exceptions.py

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

Все адаптеры стран

logging_utils.py

setup_logging, get_logger

Все адаптеры стран

Related MCP server: mcp-facture-electronique-fr

Установка

pip install mcp-einvoicing-core

Этот пакет не имеет зависимостей, специфичных для конкретных стран. lxml (необходим для XSD-валидации в IT и будущих странах) объявляется каждым пакетом страны отдельно.

Архитектура

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

Шаблон регистрации плагинов

Пакеты стран регистрируют свои инструменты в общем или отдельном экземпляре FastMCP:

# 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()

Совместимость с Claude Desktop / Cursor / Kiro

Существующие конфигурации для mcp-facture-electronique-fr и mcp-fattura-elettronica-it не требуют изменений: имена инструментов, сигнатуры, переменные окружения и точки входа (server:main) полностью сохранены.

Совместимость с дорожной картой

Страна

Статус

Стандарт

Транспорт

Наследует

Переопределяет

Известные пробелы

🇫🇷 FR

✅ Готово

XP Z12-013

Гибрид / PPF hub

BaseEInvoicingClient, BaseLifecycleManager

submit_lifecycle_status, healthcheck

Нет

🇮🇹 IT

✅ Готово

FatturaPA v1.6.1

Прямой / SDI

BaseDocumentGenerator, BaseDocumentValidator, BaseDocumentParser, BasePartyValidator

все абстрактные методы

to_invoice_document() еще не реализован

🇧🇪 BE

✅ Готово

Peppol BIS 3.0

AS4 / Peppol

все базовые классы

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

Нет

🇵🇱 PL

🔄 В процессе

KSeF FA(2)

Прямой API

BaseDocumentGenerator, BaseDocumentValidator, BaseLifecycleManager

Поток сессионной авторизации KSeF

Режим авторизации MTLS еще не реализован

🇩🇪 DE

🔄 В процессе

ZUGFeRD / XRechnung

AS4 / Peppol

все базовые классы

generate() возвращает байты PDF (base64)

Неоднозначность типа возвращаемого значения generate(): str против bytes

🇪🇸 ES

🔄 В процессе

FACeB2B / FacturaE

Прямой API

все базовые классы

mTLS авторизация

Режим авторизации MTLS еще не реализован

🇷🇴 RO

📋 Бэклог

RO-UBL (EN 16931)

Прямой API / клиринг

BaseDocumentGenerator, BaseLifecycleManager

Поток клиринга ANAF

Нужен вариант BaseSchematronValidator

🇬🇷 GR

📋 Бэклог

myDATA XML

Прямой API / отчетность

BaseEInvoicingClient, BaseLifecycleManager

Поток авторизации + отчетности myDATA

Клиент API myDATA еще не спроектирован

🇳🇱🇸🇪🇩🇰🇳🇴 Северные страны/NL

📋 Бэклог

Peppol BIS 3.0 / UBL

AS4 / Peppol

все базовые классы

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

Повторно использует транспортный уровень BE AS4

🇵🇹 PT

📋 Бэклог

CIUS-PT + QR-код

Подпись / прямой

BaseDocumentGenerator, BaseDocumentValidator

Квалифицированная подпись + внедрение QR

Интеграция квалифицированной подписи не спроектирована

Архитектурные заметки

Интерфейс транспорта

По мере роста количества адаптеров абстракция TransportInterface в ядре предотвратит дублирование в странах, использующих один и тот же транспортный уровень:

Транспорт

Страны

Прямой API (клиринг / отчетность)

FR, RO, GR, HU

AS4 / Сеть Peppol

BE, DE, Северные страны/NL

Гибрид / хаб

FR (двойной путь PPF/PDP)

Германия: 80% повторного использования из FR

Немецкий мандат (действующий с января 2025 года для получения B2B) в значительной степени отдает предпочтение ZUGFeRD/Factur-X — той же модели XML, встроенной в PDF, что и французский профиль Factur-X. Логика генерации и валидации XML из mcp-facture-electronique-fr может быть повторно использована с минимальными изменениями, что делает DE следующим адаптером с наименьшими затратами усилий после BE.

ViDA / DRR (2030)

К июлю 2030 года все национальные системы должны быть приведены в соответствие с требованиями ЕС к цифровой отчетности (Digital Reporting Requirement) для трансграничных транзакций. Использование EN 16931 в качестве внутренней модели данных InvoiceDocument в этом базовом пакете уже обеспечивает готовность проекта к будущим изменениям: адаптеры стран переводят EN 16931 → локальный формат, а не наоборот.

Лицензия

Apache 2.0 — см. 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