mcpField
F
Facture Électronique France

Facture Électronique France

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

关于 Facture Électronique France

Facture Électronique France 是面向处理法国电子发票改革的 AI Agent 和系统的 Python MCP 服务。它实现 AFNOR XP Z12-013 流程、目录和 Webhook API;发票最终验收由认可平台负责。

主要功能

  1. 01提交和搜索发票流程
  2. 02获取流程详情与附件
  3. 03管理 PPF 目录条目和路由代码
  4. 04创建和管理事件 Webhook
  5. 05使用 Schematron 验证 Factur-X
  6. 06检查 API 连通性

适用场景

  1. 01提交 Factur-X、UBL 或 CII 发票
  2. 02查找企业和电子收票地址
  3. 03跟踪流程状态和附件
  4. 04订阅流程事件通知

MCP 相关

将法国电子发票流程、PPF Annuaire、Webhook 和 Factur-X 验证操作作为 MCP 工具提供。它通过 OAuth2 凭据和 XP Z12-013 接口连接认可平台。

配置

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

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

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

安装包
pypimcp-facture-electronique-fr0.9.1

工具

34

收录的工具列表 · 更新于 2 周前

参数类型必填说明
file_namestring是带扩展名的文件名(例如 'invoice_2024_001.xml'、'invoice_2024_001.pdf')。当 flow_syntax 不明确时,AP 会根据扩展名检测格式。
flow_typestring是所提交流程的业务类型。常见值:Invoice、CreditNote、DebitNote、EReportingB2B、EReportingB2C、LifecycleStatus。完整列表请参阅 Approved Platform 的文档。
file_base64string是以 base64 编码的文件内容。接受的格式:Factur-X(嵌入 XML 的 PDF/A-3)、UBL 2.1(XML)、UN/CEFACT CII D22B(XML)。最大文件大小由 Approved Platform 定义(通常为几 MB)。
flow_syntaxstring是所提交文件的语法/格式(必填)。常见值:FacturX — 嵌入 Factur-X XML 的 PDF/A-3;UBL — UBL 2.1 XML 发票或贷项通知单;CII — UN/CEFACT CII D22B XML 发票;CDAR — XML 生命周期状态文档;EReporting — B2B 或 B2C 电子报告流程。
tracking_idany否由发送方分配的跟踪标识符(自由格式,maxLength 36)。建议使用发票编号或内部 UUID。之后可通过 search_flows(tracking_id=...) 检索此特定流程。
processing_ruleenum是决定路由和 PPF 传输义务的处理规则。B2B:法国 VAT 注册实体之间的国内发票(路由并报告至 PPF)。B2BInt:国际发票或跨境电子报告。B2C:向非应税实体开具的发票或 B2C 电子报告。B2G:向公共部门实体开具的发票(v1.2.0)。B2GInt:向公共部门实体开具的国际发票(v1.2.0)。B2GOutOfScope:改革范围之外的公共部门交易(v1.2.0)。OutOfScope:改革范围之外的交易(仅归档)。ArchiveOnly:仅归档,不路由至收件人。NotApplicable:用于生命周期状态(CDAR)流程。B2B | B2BInt | B2C | OutOfScope | ArchiveOnly | NotApplicable | B2G | B2GInt | B2GOutOfScope
confirmation_tokenany否此前调用此工具时返回的确认令牌。实际提交时必填;首次调用时省略,以获取供用户审批的摘要和令牌。

详细介绍

mcp-facture-electronique-fr 🇫🇷

English | Français

License PyPI version Python mcp-facture-electronique-fr MCP server

一个 Python MCP 服务,提供法国电子发票改革(自 2026 年 9 月 1 日起生效)所采用的标准化 AFNOR XP Z12-013 API。该项目使 AI Agent(Claude、IDE)能够以原生方式与作为兼容解决方案(SC)的获批平台(PA/PDP)生态系统交互。


简介

此软件包基于 mcp-einvoicing-core 构建。这是一个供欧洲电子发票 MCP 服务共用的基础库,提供本软件包使用的 OAuth2 HTTP 客户端、令牌缓存、共享模型、日志工具和异常层级。

mcp-einvoicing-core 会作为传递依赖自动安装,无需额外操作。

贡献者须知: pip install -e ".[dev]" 会自动从 PyPI 安装基础软件包。

此服务以法国电子发票改革所定义的**兼容解决方案(CS)**模式运行。CS 充当企业信息系统与获批平台(AP/PDP)之间的中介。这意味着:

  • 不验证调用方提供的负载是否符合配置文件。 服务会按原样传输发票文件(Factur-X PDF/A-3、UBL 2.1 或 CII XML)。结构和业务规则验证(NF XP Z12-012 配置文件、Schematron 规则)由接收方获批平台执行,而非本服务。
  • 电子报告负载仅进行 XSD 架构级验证。 调用 validate_ereporting_xml 时,会根据 DGFiP v3.2 XSD 架构验证交易报告(Flux 10.1/10.3)和付款报告(Flux 10.2/10.4),但更深入的业务规则检查(例如,声明金额与发票总额之间的一致性)由 AP 负责。
  • 不生成 PDF/A-3 封装文件。 调用方必须生成符合要求且内嵌 CII XML 的 Factur-X PDF/A-3 文件。本服务负责传输生成完毕的二进制文件。

获批平台会执行最终验证,并可能以错误代码和消息拒绝不合规的提交。

安装

通过 PyPI 安装(推荐)
pip install mcp-facture-electronique-fr

也可以使用 uvx,无需预先安装:

uvx mcp-facture-electronique-fr

如需进行 Factur-X Schematron 验证(validate_facturx,需要 XSLT 2.0 / Saxon-HE 后端——请参阅下文「可用工具」中的 FR-XSLT2-1):

pip install mcp-facture-electronique-fr[xslt2]
从源代码安装
# Clone the repository
git clone https://github.com/cmendezs/mcp-facture-electronique-fr.git
cd mcp-facture-electronique-fr

# Create the virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in editable mode
pip install -e ".[dev]"
# Initial configuration
cp .env.example .env
# Edit .env with the credentials provided by your PA/PDP

配置(.env)

服务需要以下变量,以便通过获批平台(PA)进行身份验证:

变量描述
PA_BASE_URL_FLOWPA Flow Service 的基础 URL
PA_BASE_URL_DIRECTORY已弃用——不再读取;请参阅 PPF_ANNUAIRE_BASE_URL
PPF_ANNUAIRE_BASE_URLPPF Annuaire 服务的基础 URL(默认为生产环境 swagger servers URL;沙盒测试时可覆盖)
PA_CLIENT_IDOAuth2 客户端 ID
PA_CLIENT_SECRETOAuth2 客户端密钥
PA_TOKEN_URL身份验证服务器 URL
PA_ORGANIZATION_ID多租户 AP 的组织标识符(可选)
HTTP_TIMEOUT请求超时时间(默认值:30s)
PPF_GLOBAL_ID用于 CDAR 第二个 RecipientTradeParty 的 PPF 参与方 GlobalID(可选,默认未设置;请参阅 submit_lifecycle_status)
PPF_SCHEME_IDPPF_GLOBAL_ID 的 schemeID(默认值 0238)
PPF_NAMEPPF RecipientTradeParty 的名称(默认值 PPF)
PPF_ROLE_CODEPPF RecipientTradeParty 的 RoleCode(默认值 DFH)

Claude Desktop 集成

要在 Claude 中使用此服务,请将以下配置添加到 claude_desktop_config.json 文件中:

{
  "mcpServers": {
    "facture-electronique-fr": {
      "command": "uvx",
      "args": ["mcp-facture-electronique-fr"],
      "env": {
        "PA_BASE_URL_FLOW": "https://api.votre-pdp.fr/flow",
        "PPF_ANNUAIRE_BASE_URL": "https://aife.economie.gouv.fr/ppf/annuaire-public/v1",
        "PA_CLIENT_ID": "votre-id",
        "PA_CLIENT_SECRET": "votre-secret",
        "PA_TOKEN_URL": "https://auth.votre-pdp.fr/oauth/token"
      }
    }
  }
}

Cursor 集成

Cursor 支持通过 stdio 使用 MCP 服务。请在以下位置添加配置:

  • 全局(所有项目):~/.cursor/mcp.json
  • 项目(仅此仓库):.cursor/mcp.json
{
  "mcpServers": {
    "facture-electronique-fr": {
      "command": "uvx",
      "args": ["mcp-facture-electronique-fr"],
      "env": {
        "PA_BASE_URL_FLOW": "https://api.votre-pdp.fr/flow",
        "PPF_ANNUAIRE_BASE_URL": "https://aife.economie.gouv.fr/ppf/annuaire-public/v1",
        "PA_CLIENT_ID": "votre-id",
        "PA_CLIENT_SECRET": "votre-secret",
        "PA_TOKEN_URL": "https://auth.votre-pdp.fr/oauth/token"
      }
    }
  }
}

重新加载 Cursor 窗口(按 Ctrl+Shift+P,然后选择 Reload Window)以应用更改。

Kiro 集成

Kiro 通过专用配置文件支持 MCP 服务。可选择以下两个级别:

  • 全局(所有项目):~/.kiro/settings/mcp.json
  • 工作区(仅此仓库):.kiro/settings/mcp.json
{
  "mcpServers": {
    "facture-electronique-fr": {
      "command": "uvx",
      "args": ["mcp-facture-electronique-fr"],
      "env": {
        "PA_BASE_URL_FLOW": "https://api.votre-pdp.fr/flow",
        "PPF_ANNUAIRE_BASE_URL": "https://aife.economie.gouv.fr/ppf/annuaire-public/v1",
        "PA_CLIENT_ID": "votre-id",
        "PA_CLIENT_SECRET": "votre-secret",
        "PA_TOKEN_URL": "https://auth.votre-pdp.fr/oauth/token"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

文件在保存时会自动重新加载。也可以通过命令面板(Cmd+Shift+P / Ctrl+Shift+P)打开配置,然后选择 MCP。

Kiro 安全提示:不要以纯文本形式写入密钥,而应使用语法 "PA_CLIENT_SECRET": "${PA_CLIENT_SECRET}";Kiro 会在启动时解析 shell 环境变量。

可用工具

服务领域标准MCP 工具
Flow Service发票流和电子报告Annex A,v1.2.05 个工具
PPF Annuaire(目录)中央目录(SIREN/SIRET/路由/寻址)PPF swagger v1.11.020 个工具
Webhook Service事件通知订阅Annex A,v1.2.05 个工具
Factur-X ServiceCII XML 验证(Schematron)Factur-X 1.09.21 个工具

文本已更新至 2026 年 6 月(当前 swagger 版本为 v1.2.0)——AFNOR 于 2026 年 6 月重新提供了 XP Z12-013 的叙述性文本,但未更新 swagger;该服务继续实现 v1.2.0 线协议。

**注意(FR-XSLT2-1,已解决):**随附的 Factur-X 1.09.2 Schematron 样式表需要 XSLT 2.0,而 lxml/libxslt(仅支持 XSLT 1.0)无法编译这些样式表——根本原因与 ZUGFeRD 的 DE-XSLT2-1 问题相同。 validate_facturx 现在通过 Saxon-HE 执行真正的 Schematron 验证。要使用此功能,请安装可选的 xslt2 扩展: pip install mcp-facture-electronique-fr[xslt2]。若未安装,该工具会平稳降级为 level="unavailable"。

**注意(FR-FLUX11-2026-06,PPF Annuaire):**目录工具直接基于随附的 PPF-platform swagger ppf-openapi-annuaire-api-public-1.11.0-openapi.json 接入——这是 PPF-platform 专用接口,并非与 PDP 无关的 Annex B 抽象。 根据 swagger 自身的说明,这些端点可能发生变化,使用前必须先发布 PISTE 应用。

Flow Service(流管理)
  • submit_flow:提交发票(Factur-X、UBL、CII)或电子报告数据。
  • search_flows:使用标准筛选条件,对已发送或已接收的流进行多条件搜索。
  • submit_lifecycle_status:更新生命周期状态(例如:已开放、已收集、争议)。
  • get_flow:检索特定流的完整详情和附件。
  • healthcheck_flow:测试 PA Flow API 的连接性和可用性。
PPF Annuaire(目录)

直接基于随附的 PPF-platform swagger ppf-openapi-annuaire-api-public-1.11.0-openapi.json 构建 — 请参阅上文说明。

  • search_company / get_company_by_siren / get_company_by_id_instance:查询法人单位(SIREN)。
  • search_establishment / get_establishment_by_siret / get_establishment_by_id_instance:查询营业场所(SIRET)。
  • search_routing_code / get_routing_code_by_siret_and_code / get_routing_code_by_id_instance / create_routing_code / update_routing_code / replace_routing_code:管理路由代码(code-routage)。
  • search_directory_line / get_directory_line_by_code / get_directory_line / create_directory_line / update_directory_line / replace_directory_line / delete_directory_line:管理目录条目(ligne-annuaire),即电子发票接收地址。
  • check_ppf_annuaire_health:检查 PPF Annuaire 服务的可用性。
Webhook 服务(Webhook 管理)
  • list_webhooks:列出当前令牌持有者的所有 Webhook 订阅 ID。
  • get_webhook:获取 Webhook 订阅的完整详情。
  • create_webhook:订阅流事件通知(按流类型、方向和处理规则筛选)。
  • update_webhook:更新 Webhook 的技术参数(身份验证、签名)。
  • delete_webhook:取消 Webhook 订阅。

架构

该服务充当 AI Agent 与改革相关技术基础设施之间的智能通信接口:

[ ERP / Business IS ] <--> [ MCP Server ] <--> [ Approved Platform (PA/PDP) ]
          ^                        |
          |                        v
   [ AI Agent (Claude) ] <--- (XP Z12-013 Standard)

供应商中立性

此服务本身实现了该标准:在本地构建、验证并签署文档。它不是商业发票平台的客户端,您的签名密钥和凭据绝不会离开您自己的基础设施。

法律要求使用 PDP(Plateforme de Dématérialisation Partenaire),但其 API 已根据 XP Z12-013 标准化,因此更换服务商只需修改配置,无需更改代码。

支持的标准

  • AFNOR XP Z12-012:发票消息格式、配置文件和生命周期状态(v1.4,2026 年 6 月版)。
  • AFNOR XP Z12-013:服务接口规范(2026 年 6 月版;v1.2.0 线路契约)。
  • AFNOR XP Z12-014:业务用例技术实施指南(v1.4,2026 年 6 月版)。
  • 法国 B2B 改革:强制实施时间表(2024-2026)。

测试

# Run the unit and integration test suite
pytest tests/ -v

贡献

欢迎贡献 — 请参阅 CONTRIBUTING.md 了解指南。

其他电子发票 MCP 服务

国家/地区服务
🌍 全球mcp-einvoicing-core
🇧🇪 比利时mcp-einvoicing-be
🇧🇷 巴西mcp-nfe-br
🇫🇷 法国mcp-facture-electronique-fr
🇩🇪 德国mcp-einvoicing-de
🇮🇳 印度mcp-einvoicing-in
🇮🇹 意大利mcp-fattura-elettronica-it
🇲🇽 墨西哥mcp-cfdi-mx
🇵🇱 波兰mcp-ksef-pl
🇸🇬 新加坡mcp-invoicenow-sg
🇪🇸 西班牙mcp-facturacion-electronica-es
🇦🇪 阿联酋mcp-einvoicing-ae

许可证

本项目根据 Apache 2.0 许可证发布。详情请参阅 LICENSE 文件。完整的版本历史请参阅 CHANGELOG.md。

评论

支持 Markdown

第一次接触 MCP?

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

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