MCP server for French e-invoicing (XP Z12-013). Manages invoices, validation and compliance.
Connect Facture ÉLectronique France to Claude, Cursor or any other MCP client and it stops being a tab you switch to. MCP server for French e-invoicing (XP Z12-013). Manages invoices, validation and compliance. The facture électronique france mcp server is what makes that connection.
A Python MCP server exposing the standardized AFNOR XP Z12-013 APIs for the French e-invoicing reform (effective September 1, 2026). This project enables AI agents (Claude, IDEs) to interact natively with the Approved Platform (PA/PDP) ecosystem as a Compatible Solution (SC).
The server ships on PyPI as mcp-facture-electronique-fr, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
Configuration is passed through the environment: PA_BASE_URL_FLOW, PPF_ANNUAIRE_BASE_URL, PA_CLIENT_ID, PA_CLIENT_SECRET, PA_TOKEN_URL, PA_ORGANIZATION_ID, PPF_GLOBAL_ID, PPF_SCHEME_ID. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. It is maintained by cmendezs; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
{
"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"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| PA_BASE_URL_FLOW | Endpoint or connection string the server talks to. | Yes |
| PPF_ANNUAIRE_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| PA_CLIENT_ID | Configuration value read at startup. | Optional |
| PA_CLIENT_SECRET | Credential the server authenticates with. | Yes |
| PA_TOKEN_URL | Credential the server authenticates with. | Yes |
| PA_ORGANIZATION_ID | Configuration value read at startup. | Optional |
| PPF_GLOBAL_ID | Configuration value read at startup. | Optional |
| PPF_SCHEME_ID | Configuration value read at startup. | Optional |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.