mcpField
M
MCP E-Invoicing Core

MCP E-Invoicing Core

本地服务
github.com/cmendezs金融数据01 周前更新

关于 MCP E-Invoicing Core

MCP E-Invoicing Core 是用于构建各国电子发票服务的 Python 基础库,面向相关服务器开发者。它整合发票模型与格式转换,以及 Peppol、签名、验证和合规审计组件。

主要功能

  1. 01共享发票与 EN 16931 模型
  2. 02UBL 和 CII 解析与序列化
  3. 03Peppol 查询与 AS4 传输
  4. 04数字签名基础组件
  5. 05架构与 Schematron 验证
  6. 06合规审计框架

适用场景

  1. 01构建各国电子发票 MCP 服务
  2. 02在 UBL 和 CII 间转换发票
  3. 03查询 Peppol 参与方和端点
  4. 04验证发票文档与合规覆盖情况

MCP 相关

提供共享服务器组件及可挂载的 FastMCP 插件,包括 Peppol 和 EN 16931 代码表工具、PDF 工具。基础服务器类可用于构建电子发票 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cmendezs-mcp-einvoicing-core": {
"command": "uvx",
"args": [
"mcp-einvoicing-core"
]
}
}
}
启动命令uvx mcp-einvoicing-core

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-einvoicing-core1.34.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-einvoicing-core

English | 法语 | 德语 | 意大利语 | 西班牙语 | 巴西葡萄牙语 | 阿拉伯语

许可证 PyPI 版本 Pythonmcp-einvoicing-core MCP 服务

主题: mcp mcp-server e-invoicing electronic-invoicing python fastmcp peppol en16931 ubl fatturapa xp-z12-013 nfe xml base-library

用于电子发票 MCP 服务的基础包。

提供共享的 Pydantic 模型、EN 16931 发票树、UBL/CII 线格式序列化器、 OAuth2 HTTP 客户端、Peppol SMP 查询、数字签名基础功能和合规性 审计框架,使各国家/地区专用包可以共享通用基础,而无需重复编写代码。


此软件包提供的内容

模块内容
modelsInvoiceDocument、InvoiceParty、InvoiceLineItem、PartyAddress、VATSummary、PaymentTerms、DocumentValidationResult、TaxIdentifier(各国税号验证器:IT、FR、DE、BE、ES、PL、BR、AE、SG、MX、IN)、TaxIdValidationResult
en16931EN16931Invoice、EN16931Party、EN16931LineItem、EN16931Address、EN16931Tax、EN16931AllowanceCharge、EN16931PaymentMeans
credit_noteEN16931CreditNote(类型代码 381/383/384/385)、BillingReference
ubl_documentsBaseUBLDocument——用于非发票 UBL/Peppol 文档系列(Peppol 订购、司法管辖区扩展)的共享信封;明确位于 InvoiceDocument/EN16931Invoice 树之外
wire_formatsEN16931UBLSerializer、EN16931UBLParser、EN16931CIISerializer、EN16931CIIParser、UBL_NSMAP、CII_NSMAP
convertSyntax(UBL、CII)、convert_wire_format(自动检测源格式并序列化为目标格式)
base_serverEInvoicingMCPServer、BaseDocumentGenerator、BaseDocumentValidator、BaseDocumentParser、BaseLifecycleManager、BasePartyValidator、BaseScopeInfo、SubmissionMetadata、SearchCriteria、SubmitResult、assert_not_read_only、scrub
http_clientBaseEInvoicingClient(OAuth2、mTLS、bearer、API 密钥、JWS、无)、OAuthConfig、OAuthValues、JWSConfig、APIKeyConfig、TokenCache、AuthMode
peppolPeppolSMPClient、PeppolParticipantId、PeppolServiceInfo、PeppolLookupResult、PeppolEnvironment、PEPPOL_BIS_BILLING_30、resolve_naptr(独立的 U-NAPTR/SML DNS 诊断工具)
peppol.toolsregister_peppol_tools(可挂载的 FastMCP 插件:参与方查询、服务端点、DNS 诊断、AS4 发送、目录搜索,以及 8 个 eDEC 代码列表工具)、default_id_adapter、IdentifierAdapter(国家标识符适配器规范)
peppol.codelistsCodeList、CodelistNotConfiguredError、load_codelist 和 eDEC 查询函数(文档类型、流程、参与方 ID 方案、传输配置文件、SPIS 用例)。需要设置 EINVOICING_PEPPOL_CODELIST_DIR,参见下方的配置
genericodeparse_genericode、CodeList、CodelistNotConfiguredError——共享的 OASIS Genericode 1.0 解析器(由 peppol.codelists 和 en16931_codelists 使用)
en16931_codelistsen16931_codelist_tools.register_en16931_codelist_tools(可挂载的 FastMCP 插件:国家、货币、ICD、UNCL1001/1153/4461/5305、折让/商品/费用原因、MIME、EAS、VATEX 查询)。需要设置 EINVOICING_EN16931_CODELIST_DIR,参见下方的配置
peppol.directoryPeppolDirectoryClient(公开的 Peppol Directory REST 搜索,无需身份验证)、PeppolDirectorySearchResult、PeppolBusinessCard、PeppolBusinessEntity
peppol.transportAS4MessageEnvelope、AS4TransportClient、AS4ReceiptHandler、PeppolTransmitter、AS4Receipt、AS4Credentials(Peppol AS4 出站传输,现已支持真实的 WS-Security 消息签名);AS4InboundHandler、AS4InboundMessage、AS4InboundError、StandardBusinessDocumentHeader(AS4 入站接收器,C3 角色);sign_as4_message、verify_as4_signature(WS-Security 基元)
peppol.trustPeppolTrustStore、validate_certificate_chain、check_revocation、verify_smp_signature——OpenPeppol PKI 链/吊销/签名验证。需要设置 EINVOICING_PEPPOL_PKI_DIR(截至此版本发布时,OpenPeppol 尚未发布根证书,因此在提供证书前仅包含逻辑)
peppol.reportingparse_eusr、parse_tsr、validate_eusr、validate_tsr——Peppol EUSR/TSR 服务提供商统计报告模型和验证(捆绑的 XSD + Schematron,可选 [xslt2] 附加项)
peppol.mlsparse_mls、validate_mls、build_mls——Peppol 消息级状态(MLS)模型和验证(捆绑的 Schematron,可选 [xslt2] 附加项)
schematronSchematronValidator(XSLT 1.0)、SaxonSchematronValidator(XSLT 2.0/3.0,可选 [xslt2] 附加项)、load_schematron_validator(自动分派工厂)、get_xslt_version、BaseStructuredValidator、BaseXSDValidator、XSDValidator(通用的具体 XSD 验证器)、BaseJSONValidator、ValidationMessage、ValidationResult
schematron_artifactsen16931_base_schematron_validator(捆绑的、已编译的 CEN EN16931 基础 Schematron——仅包含 BR-* 规则,不含 Peppol 覆盖规则;可选 [xslt2] 附加项)
digital_signatureBaseDocumentSigner、XAdESEPESSigner、XAdESSignerConfig、XMLDSigSigner、XMLDSigSignerConfig、CAdESSigner、CAdESSignerConfig、SelloDigitalSigner、SelloDigitalSignerConfig、load_certificate_der
endpointsBaseEnvironmentEndpoints、EndpointSet、EndpointEnvironment(沙盒/生产环境 URL 路由)
routingRoutingIdentifier(静态验证器:validate_de_leitweg)、RoutingIdValidationResult
profile_registryProfileEntry、ProfileRegistry、profile_registry、set_profile_registry
pdfPDFEmbedder(PDF/A-3 XML 嵌入);extract(filename=None) 会依次尝试规范的 Factur-X/XRechnung/ZUGFeRD 文件名,identify() 会读取 XMP,以检测混合 PDF 及其符合性级别
pdf_toolsregister_pdf_tools(可挂载的 FastMCP 插件:identify_and_extract_pdf)、identify_and_extract_pdf
qrgenerate_qr_png_base64
xml_utilsformat_amount、format_quantity、xml_element、xml_optional、validate_date_iso、validate_iban、resolve_xml_input、mark_untrusted、mark_untrusted_fields、filter_empty_values、format_error
download_rulesDownloadSpec、download_artefacts
testingInvoiceFixtureFactory(共享的 pytest 夹具)
audit_logAuditLog、AuditAction、get_audit_log
confirmationConfirmationGate、ConfirmationStore(人机交互确认关卡)
exceptionsEInvoicingError、ValidationError、PartyValidationError、XSDValidationError、SchematronValidationError、DocumentGenerationError、AuthenticationError、PlatformError
logging_utilssetup_logging、get_logger
audit合规审计框架:AuditReport、CheckResult、CheckFinding、严重性常量、make_report、render_summary_table、parse_audit_args、run_check_core_coverage、run_check_version_compatibility、run_check_known_shared_helpers、run_check_resource_paths、TaxRate、load_rates(可选 [audit] 附加项)

国家套餐

国家套餐标准适用范围覆盖状态
🇧🇪 比利时mcp-einvoicing-bePeppol BIS 3.0 / PINT-BEB2B,2026 年 1 月 1 日已上线;尚未检查 Peppol 特定叠加规则(仅覆盖 EN 16931 基础规则)
🇧🇷 巴西mcp-nfe-brNF-e / NFC-e (modelo 55/65, schema 4.00) / NFS-e NacionalB2B(NF-e)+ B2C(NFC-e),自 2008 年起均为强制要求已上线;IBS/CBS 税制改革将持续推进至 2033 年
🇫🇷 法国mcp-facture-electronique-frNF XP Z12-012 / NF XP Z12-013 / Factur-X / UBL 2.1 / CIIB2B,自 2026 年 9 月 1 日起分阶段实施已上线
🇩🇪 德国mcp-einvoicing-deZUGFeRD 2.x / XRechnung 3.xB2B,2025 年至 2028 年分阶段实施已上线
🇮🇳 印度mcp-einvoicing-inGST e-invoicing / FORM GST INV-01 schema v1.1 / IRP-IRN (INV + CRN + DBN)B2B + B2G;根据 CGST Rule 48(4),自 2023 年 8 月 1 日起,AATO 超过 ₹5 crore 的纳税人必须使用预发布(v0.1.0,未发布);仅阶段 A(构建 + 离线验证 + QR 渲染)——实时 IRP 提交功能待 NIC API 规范发布
🇮🇹 意大利mcp-fattura-elettronica-itFatturaPA / SDIB2G + B2B + B2C,自 2019 年起为强制要求(B2G 自 2014 年起)已上线
🇲🇽 墨西哥mcp-cfdi-mxCFDI 4.0 / Complemento de Pagos 2.0B2B + B2G,全国范围内强制要求已上线;PAC 提交传输功能待实现
🇵🇱 波兰mcp-ksef-plKSeF FA(3) / FA(2) / Peppol BIS 3.0B2B,2026 年 2 月至 2027 年 1 月分阶段实施已上线;尚未实现批量会话流程
🇸🇬 新加坡mcp-invoicenow-sgPINT-SG v1.4.1 / SG Peppol BIS Billing 3.0B2B,2026 年 4 月起 GST 注册企业必须使用已上线;验证范围仅限 IRAS C5 验收检查,尚未接入 PINT-SG 管辖区 Schematron 和 EN 16931 基础验证
🇪🇸 西班牙mcp-facturacion-electronica-esFactura-e / VeriFactu / SII / FACe尚待 Orden Ministerial,目标日期为 2026-10-01VeriFactu/SII 已上线;B2B 格式接入受阻于尚未发布的 Orden Ministerial
🇦🇪 阿拉伯联合酋长国mcp-einvoicing-aePINT AE (billing + self-billing) / Peppol AE TDDB2B + B2G,2026 年 7 月起自愿试点,2027 年 1 月起大型纳税人必须使用已上线;仅验证 CEN EN16931 基础 Schematron,尚未提供 PINT AE 管辖区叠加规则和 TDD 验证

安装

pip install mcp-einvoicing-core

用于合规审计框架(由国家套餐 CI 使用):

pip install mcp-einvoicing-core[audit]

用于 XSLT 2.0/3.0 Schematron 验证(SaxonSchematronValidator——使用 XPath 2.0+ 结构的 Schematron 规则集需要此项,例如 FNFE-MPE Factur-X 1.08 / ZUGFeRD):

pip install mcp-einvoicing-core[xslt2]

配置

变量使用方用途
EINVOICING_PEPPOL_CODELIST_DIRpeppol.codelists(以及 peppol.tools 中的代码列表工具)包含你自己的 OpenPeppol eDEC 代码列表副本的本地目录。此软件包不附带这些数据:OpenPeppol 尚未确认授予 eDEC 代码列表的再分发许可,因此核心包仅提供解析器和查询工具,不包含数据本身。请从 docs.peppol.eu/edelivery/codelists 下载每项内容(文档类型、参与方标识符方案、流程、传输配置文件、SPIS 用例)的“As GeneriCode”导出文件,并将此变量指向包含这些文件的目录。文件名按前缀匹配,因此升级版本(例如从 v9.7 升至 v9.8)无需修改代码。若未设置此变量,代码列表工具会返回包含设置说明的 configured: false 结果,而不会抛出异常。
EINVOICING_EN16931_CODELIST_DIRen16931_codelists(及其 FastMCP 工具)包含你自己的 CEF EN 16931 语义代码列表副本的本地目录(国家/地区、货币、ICD、UNCL1001/1153/4461/5305、折让/项目/费用原因、MIME、EAS、VATEX)。不附带这些数据,与上面的 eDEC 代码列表相同——请从 CEF EN 16931 代码列表页面下载“As GeneriCode”导出包。文件名必须完全一致(Country.gc,而非带版本前缀的名称)。若未设置此变量,工具会返回 configured: false。
EINVOICING_PEPPOL_PKI_DIRpeppol.trust本地目录,包含 test/ 和 prod/ 子目录,其中存放 PEM 编码的 OpenPeppol PKI 根 CA/中间 CA 证书,用于验证 AS4 消息签名和 SMP 响应签名链。OpenPeppol 尚未在任何位置发布可供打包的数据——在设置此变量前,信任功能会报告 trust_anchors_configured: false。
EINVOICING_SMP_ALLOWLISTpeppol(PeppolSMPClient、resolve_naptr)以逗号分隔的主机名后缀,用于扩展内置的 Peppol 接入点允许列表,该列表用于验证解析出的 SMP 主机名。
EINVOICING_CERT_PINShttp_client(BaseEInvoicingClient)和 peppol.transport.client(AS4TransportClient)以逗号分隔的 host:sha256hex 配对,用于对出站 HTTP 请求启用 SHA-256 证书固定。若未设置此变量,则不会强制执行证书固定。

架构

各国家/地区的软件包继承核心抽象类,并在共享或独立的 MCP 服务上注册其工具:

mcp-einvoicing-core
  ├── EN16931Invoice / InvoiceDocument  ← canonical invoice models
  ├── EN16931CreditNote                 ← credit note (type codes 381/383/384/385)
  ├── EN16931UBL/CII Serializer/Parser  ← wire format round-trip
  ├── convert_wire_format               ← CII ↔ UBL conversion
  ├── BaseDocumentGenerator/Validator/Parser/LifecycleManager
  ├── BaseEInvoicingClient              ← async HTTP (OAuth2/mTLS/bearer/API key/JWS)
  ├── PeppolSMPClient                   ← participant lookup via SMP/SML
  ├── PeppolTransmitter                 ← AS4 outbound transmission
  ├── BaseDocumentSigner                ← XAdES-EPES / XMLDSig
  ├── BaseEnvironmentEndpoints          ← sandbox/production URL routing
  ├── RoutingIdentifier                 ← country-specific routing ID validation
  ├── EInvoicingMCPServer               ← plugin registry wrapping FastMCP
  └── Audit framework                   ← per-package compliance checks

厂商中立性

此系列中的每个服务都自行实现该标准。它会在本地构建、验证并签署文档,签名密钥则保留在你的基础设施中。这些软件包都不是商业电子发票平台的客户端,运行它们也无需厂商账户。

各国/地区的差异在于最后一环:你与税务机关之间是否必须经过中介,以及中介是谁。mcp-einvoicing-core 支持以下三种方式,各国家/地区软件包则会实现其司法管辖区所采用的方式:

  • 直接连接税务机关。 法律不要求中介;软件包使用你自己的认证信息与政府端点通信。(意大利、波兰、巴西、西班牙)
  • 可替换的中介。 必须使用中介,但其 API 已标准化,因此更换服务提供商只需修改配置,无需修改代码。(法国依据 XP Z12-013 标准的 PDP;比利时、新加坡、阿联酋的 Peppol 接入点)
  • 按厂商适配的中介。 必须使用中介,且各厂商的 API 各不相同。文档和密钥仍归你所有;只有传输适配器因厂商而异。(墨西哥的 PAC、印度的 GSP)

无论采用哪种方式,合规逻辑和私钥都由你掌控。

插件注册模式

国家级软件包在共享或独立的 FastMCP 实例上注册工具:

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

核心也提供了自己的可挂载 Peppol 工具插件,这样国家级软件包就不必再重复实现 SMP 查询和 AS4 发送功能。提供一个国家标识符适配器(一个小型函数,用于将裸国家编号(例如增值税号)规范化为 Peppol "<scheme>:<value>" 参与方 ID):

from mcp_einvoicing_core.peppol.tools import register_peppol_tools

def be_id_adapter(identifier: str) -> str:
    if ":" in identifier:
        return identifier
    return f"0208:{normalize_vat_be(identifier)[2:]}"  # KBO/BCE scheme

server.register_plugin(
    lambda m: register_peppol_tools(m, id_adapter=be_id_adapter), "peppol"
)

这会注册 peppol_lookup_participant、peppol_get_service_endpoint、resolve_peppol_dns、peppol_send、peppol_directory_search,以及 8 个 OpenPeppol eDEC 代码列表工具(这些代码列表工具需要配置 EINVOICING_PEPPOL_CODELIST_DIR,详见上文的配置)。另有独立的可挂载插件,分别用于 EN 16931 语义代码列表(en16931_codelist_tools.register_en16931_codelist_tools)、Peppol 报告(peppol.reporting_tools.register_peppol_reporting_tools)和 MLS(peppol.mls_tools.register_peppol_mls_tools)。

Claude Desktop / Cursor / Kiro 兼容性

现有国家级软件包的配置无需更改:工具名称、签名、环境变量和入口点(server:main)均保持不变。

许可证

Apache 2.0——详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。