Skip to main content
Glama

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(IT 及未来国家进行 XSD 验证所需)由每个国家的包单独声明。

架构

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 中心

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 认证 + 报告流程

myDATA API 客户端尚未设计

🇳🇱🇸🇪🇩🇰🇳🇴 北欧/荷兰

📋 待办

Peppol BIS 3.0 / UBL

AS4 / Peppol

所有基类

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

复用 BE AS4 传输层

🇵🇹 PT

📋 待办

CIUS-PT + 二维码

签名 / 直接

BaseDocumentGenerator, BaseDocumentValidator

合格签名 + 二维码注入

合格签名集成尚未设计

架构说明

传输接口

随着适配器数量的增加,核心库中的 TransportInterface 抽象将防止在共享相同传输层的国家之间出现重复:

传输

国家

直接 API (清算 / 报告)

FR, RO, GR, HU

AS4 / Peppol 网络

BE, DE, 北欧/荷兰

混合 / 中心

FR (PPF/PDP 双路径)

德国:80% 复用自法国

德国的授权(自 2025 年 1 月起对 B2B 接收生效)非常倾向于 ZUGFeRD/Factur-X —— 与法国 Factur-X 配置文件中嵌入 XML 的 PDF 模型相同。mcp-facture-electronique-fr 的 XML 生成和验证逻辑可以以最小的改动进行复用,使 DE 成为继 BE 之后工作量最小的下一个适配器。

ViDA / DRR (2030)

到 2030 年 7 月,所有国家系统必须符合欧盟跨境交易数字报告要求。在本核心包中使用 EN 16931 作为内部 InvoiceDocument 数据模型,已经为项目提供了面向未来的保障:国家适配器将 EN 16931 转换为本地格式,而不是反向转换。

许可证

Apache 2.0 — 参见 LICENSE。

Related MCP Connectors

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
    49 npm
    2
    MIT
  • A
    license
    A
    quality
    A
    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.
    2
    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.
    43
    110 PyPI
    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.
    50
    Apache 2.0