mcp-facture-electronique-fr đ«đ·
Serveur MCP Python exposant les APIs standardisĂ©es AFNOR XP Z12-013 pour la rĂ©forme de la facturation Ă©lectronique française (entrĂ©e en vigueur le 1er septembre 2026). Ce projet permet aux agents IA (Claude, IDEs) dâinteragir nativement avec lâĂ©cosystĂšme des Plateformes Agréées (PA/PDP) en tant que Solution Compatible (SC).
Introduction
Ce package repose sur mcp-einvoicing-core, une bibliothĂšque de base partagĂ©e pour les serveurs MCP de facturation Ă©lectronique europĂ©ens. Elle fournit le client HTTP OAuth2, le cache de jetons, les modĂšles partagĂ©s, les utilitaires de journalisation et la hiĂ©rarchie dâexceptions utilisĂ©s par ce package.
mcp-einvoicing-core est installĂ© automatiquement en tant que dĂ©pendance transitive, aucune Ă©tape supplĂ©mentaire nâest nĂ©cessaire.
Pour les contributeurs :
pip install -e ".[dev]"installe automatiquement le package de base depuis PyPI.
Ce serveur fonctionne en mode Solution Compatible (SC) tel que dĂ©fini par la rĂ©forme de la facturation Ă©lectronique française. La SC agit comme intermĂ©diaire entre le systĂšme dâinformation de lâentreprise et une Plateforme Agréée (PA/PDP). Cela signifie :
- Pas de validation de profil des données transmises. Le serveur transmet le fichier facture (Factur-X PDF/A-3, UBL 2.1 ou CII XML) tel quel. La validation structurelle et des rÚgles métier (profils NF XP Z12-012, rÚgles Schematron) est effectuée par la Plateforme Agréée réceptrice, pas par ce serveur.
- Pas de validation des données de e-reporting au-delà du XSD. Les déclarations de transactions (Flux 10.1/10.3) et de paiements (Flux 10.2/10.4) sont validées contre le schéma XSD DGFiP v3.2 lorsque
validate_ereporting_xmlest appelĂ©, mais les contrĂŽles mĂ©tier approfondis (ex. cohĂ©rence entre montants dĂ©clarĂ©s et totaux de facture) relĂšvent de la PA. - Pas de gĂ©nĂ©ration dâenveloppe PDF/A-3. Lâappelant doit produire le fichier Factur-X PDF/A-3 conforme avec le XML CII embarquĂ©. Ce serveur transmet le binaire finalisĂ©.
La Plateforme Agréée effectue la validation finale et peut rejeter les soumissions non conformes avec un code et un message dâerreur.
Installation
Via PyPI (recommandé)
pip install mcp-facture-electronique-frOu sans installation préalable avec uvx :
uvx mcp-facture-electronique-frPour la validation Schematron Factur-X (validate_facturx, nécessite le
moteur XSLT 2.0 / Saxon-HE â voir FR-XSLT2-1 dans Outils disponibles ci-dessous) :
pip install mcp-facture-electronique-fr[xslt2]Depuis les sources
# Cloner le dépÎtgit clone https://github.com/cmendezs/mcp-facture-electronique-fr.gitcd mcp-facture-electronique-fr
# Créer l'environnement virtuelpython -m venv .venvsource .venv/bin/activate # Sur Windows : .venv\Scripts\activate
# Installation en mode Ă©ditablepip install -e ".[dev]"# Configuration initialecp .env.example .env# Ăditer .env avec vos credentials fournis par votre PA/PDPConfiguration (.env)
Le serveur nĂ©cessite les variables suivantes pour sâauthentifier auprĂšs dâune Plateforme Agréée (PA) :
| Variable | Description |
|---|---|
PA_BASE_URL_FLOW |
URL de base du Flow Service de la PA |
PA_BASE_URL_DIRECTORY |
ObsolĂšte â nâest plus lue ; voir PPF_ANNUAIRE_BASE_URL |
PPF_ANNUAIRE_BASE_URL |
URL de base du service Annuaire PPF (par dĂ©faut lâURL de production du bloc servers du swagger ; Ă surcharger pour un test en bac Ă sable) |
PA_CLIENT_ID |
Client ID OAuth2 |
PA_CLIENT_SECRET |
Client Secret OAuth2 |
PA_TOKEN_URL |
URL du serveur dâauthentification |
PA_ORGANIZATION_ID |
Identifiant dâorganisation pour PA multi-tenant (optionnel) |
HTTP_TIMEOUT |
Timeout des requĂȘtes (dĂ©faut : 30s) |
PPF_GLOBAL_ID |
GlobalID de la partie PPF pour le second RecipientTradeParty du CDAR (optionnel ; non défini par défaut, voir submit_lifecycle_status) |
PPF_SCHEME_ID |
schemeID pour PPF_GLOBAL_ID (défaut 0238) |
PPF_NAME |
Nom pour le RecipientTradeParty PPF (défaut PPF) |
PPF_ROLE_CODE |
RoleCode pour le RecipientTradeParty PPF (défaut DFH) |
Intégration Claude Desktop
Pour utiliser ce serveur avec Claude, ajoutez cette configuration dans votre fichier 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" } } }}Intégration Cursor
Cursor supporte les serveurs MCP en stdio. Ajoutez la configuration dans :
- Global (tous les projets) :
~/.cursor/mcp.json - Projet (ce dépÎt uniquement) :
.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" } } }}Rechargez la fenĂȘtre Cursor (Ctrl+Shift+P puis Reload Window) pour prendre en compte les changements.
Intégration Kiro
Kiro supporte les serveurs MCP via son fichier de configuration dédié. Deux niveaux disponibles :
- Global (tous les projets) :
~/.kiro/settings/mcp.json - Workspace (ce dépÎt uniquement) :
.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": [] } }}Le fichier est rechargé automatiquement à la sauvegarde. Vous pouvez également ouvrir la configuration via la palette de commandes (Cmd+Shift+P / Ctrl+Shift+P) puis MCP.
Conseil sĂ©curitĂ© Kiro : plutĂŽt que dâĂ©crire les secrets en clair, utilisez la syntaxe
"PA_CLIENT_SECRET": "${PA_CLIENT_SECRET}", Kiro rĂ©sout les variables dâenvironnement shell au dĂ©marrage.
Outils disponibles
| Service | Domaine | Norme | Outils MCP |
|---|---|---|---|
| Flow Service | Flux de factures et e-reporting | Annexe A, v1.2.0 | 5 outils |
| Annuaire PPF | Annuaire centralisé (SIREN/SIRET/routage/adressage) | Swagger PPF v1.11.0 | 20 outils |
| Webhook Service | Abonnements aux notifications | Annexe A, v1.2.0 | 5 outils |
| Factur-X Service | Validation du XML CII (Schematron) | Factur-X 1.09.2 | 1 outil |
Texte mis Ă jour en juin 2026 (swagger v1.2.0 toujours en vigueur) â lâAFNOR a republiĂ© le texte narratif de la norme XP Z12-013 en juin 2026 sans nouveau swagger ; le serveur continue dâimplĂ©menter le contrat dâAPI v1.2.0.
Remarque (FR-XSLT2-1, résolue) : les feuilles de style Schematron Factur-X 1.09.2 fournies nécessitent XSLT 2.0, que
lxml/libxslt(XSLT 1.0 uniquement) ne peut pas compiler â mĂȘme cause racine que la limitationDE-XSLT2-1dĂ©jĂ rĂ©pertoriĂ©e pour ZUGFeRD.validate_facturxexĂ©cute dĂ©sormais une vĂ©ritable validation Schematron via Saxon-HE. Installez lâextra optionnelxslt2pour lâactiver :pip install mcp-facture-electronique-fr[xslt2]. Sans lui, lâoutil se dĂ©grade proprement verslevel="unavailable".
Remarque (FR-FLUX11-2026-06, Annuaire PPF) : les outils dâannuaire sont cĂąblĂ©s directement sur le swagger PPF fourni
ppf-openapi-annuaire-api-public-1.11.0-openapi.jsonâ câest une interface spĂ©cifique Ă la plateforme PPF, pas une abstraction Annexe B agnostique vis-Ă -vis du PDP. Selon la description du swagger lui-mĂȘme, ces endpoints sont susceptibles dâĂ©voluer et nĂ©cessitent la publication prĂ©alable dâune application PISTE avant utilisation.
Flow Service (Gestion des flux)
submit_flow: Envoi de factures (Factur-X, UBL, CII) ou donnĂ©es dâe-reporting.search_flows: Recherche multicritĂšres de flux Ă©mis ou reçus selon les filtres de la norme.submit_lifecycle_status: Mise Ă jour du statut du cycle de vie (ex: Mise Ă disposition, EncaissĂ©e, Litige).get_flow: RĂ©cupĂ©ration du dĂ©tail complet et des piĂšces jointes dâun flux spĂ©cifique.healthcheck_flow: Test de connectivitĂ© et de disponibilitĂ© de lâAPI Flow de la PA.
Annuaire PPF
Cùblés directement sur le swagger PPF fourni
ppf-openapi-annuaire-api-public-1.11.0-openapi.json â voir la remarque ci-dessus.
search_company/get_company_by_siren/get_company_by_id_instance: Consultation des personnes morales (SIREN).search_establishment/get_establishment_by_siret/get_establishment_by_id_instance: Consultation des Ă©tablissements (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: Gestion des codes routage.search_directory_line/get_directory_line_by_code/get_directory_line/create_directory_line/update_directory_line/replace_directory_line/delete_directory_line: Gestion des lignes dâannuaire, les adresses de rĂ©ception des factures Ă©lectroniques.check_ppf_annuaire_health: VĂ©rification de la disponibilitĂ© du service Annuaire PPF.
Webhook Service (Gestion des webhooks)
list_webhooks: Liste de tous les identifiants dâabonnements webhook.get_webhook: RĂ©cupĂ©ration des dĂ©tails complets dâun abonnement webhook.create_webhook: Abonnement aux notifications de flux (filtre par type, direction, rĂšgle de traitement).update_webhook: Mise Ă jour des paramĂštres techniques dâun webhook (authentification, signature).delete_webhook: DĂ©sabonnement dâun webhook.
Architecture
Le serveur se positionne comme une interface de communication intelligente entre votre agent IA et lâinfrastructure technique de la rĂ©forme :
[ ERP / SI Entreprise ] <--> [ Serveur MCP ] <--> [ Plateforme Agréée (PA/PDP) ] ^ | | v [ Agent IA (Claude) ] <--- (Standard XP Z12-013)Normes prises en charge
- AFNOR XP Z12-012 : Formats de message de facture, profils et statuts de cycle de vie (version 1.4, juin 2026).
- AFNOR XP Z12-013 : SpĂ©cifications des interfaces de services (version juin 2026 ; contrat dâAPI v1.2.0).
- AFNOR XP Z12-014 : Guide dâimplĂ©mentation technique des cas dâusage mĂ©tier (version 1.4, juin 2026).
- Réforme B2B France : Calendrier de déploiement obligatoire (2024-2026).
Tests
# Lancer la suite de tests unitaires et d'intégrationpytest tests/ -vContribuer
Les contributions sont les bienvenues â voir CONTRIBUTING.md pour les modalitĂ©s.
Autres serveurs MCP de facturation électronique
| Pays | Serveur |
|---|---|
| đ Global | mcp-einvoicing-core |
| đ§đȘ Belgique | mcp-einvoicing-be |
| đ§đ· BrĂ©sil | mcp-nfe-br |
| đ«đ· France | mcp-facture-electronique-fr |
| đ©đȘ Allemagne | mcp-einvoicing-de |
| đźđč Italie | mcp-fattura-elettronica-it |
| đČđœ Mexique | mcp-cfdi-mx |
| đ”đ± Pologne | mcp-ksef-pl |
| đžđŹ Singapour | mcp-invoicenow-sg |
| đȘđž Espagne | mcp-facturacion-electronica-es |
| đŠđȘ Ămirats arabes unis | mcp-einvoicing-ae |
Licence
Ce projet est distribuĂ© sous licence Apache 2.0. Voir le fichier LICENSE pour plus de dĂ©tails. Pour lâhistorique complet des versions, voir CHANGELOG.md.