conformo
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@conformoValidate this e-invoice XML against German XRechnung rules"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Conformo
Free, client-side invoicing that produces the legally valid electronic invoice your country actually requires — not just a good-looking PDF.
Open the app · Validate an invoice you already have · Docs: which countries require this
No signup, no account, no server — everything runs in your browser and your invoice data never leaves your machine unless you choose to send it somewhere.
Why this exists
France, Germany, Belgium, Poland and Italy now require — or are phasing in — a structured electronic invoice, not a document that merely looks like one. A PDF, however good-looking, is not one of those anymore. Most invoicing tools stop at the PDF.
Conformo builds the EN 16931 semantic model first, then serializes it to whatever your country actually needs, and embeds that structured data inside a PDF/A-3 so a human still gets something readable. It validates the result live against the official CEN Schematron and each country's own rules, and shows you the result instead of just asserting it.
Related MCP server: Fintom8 E-Invoice MCP Server
Formats supported
Factur-X / ZUGFeRD (CII) — France and Germany
UBL 2.1 (Invoice and Credit Note)
XRechnung 3.0 — Germany's public-sector format, both CII and UBL
Peppol BIS Billing 3.0 — the cross-border network used across the EU
PDF/A-3b with the structured XML embedded, for every format above
Every format passes its official XSD and the EN 16931 Schematron; the country-specific layers (KoSIT for XRechnung, Peppol BIS for Peppol, the French CTC rules) are validated on top of that, never instead of it.
Get started
As an app — see the links above, or run it yourself with Docker:
docker compose up --build # then open http://localhost:8080As a library (npm):
npm install @conformo/core @conformo/formatsimport { buildCII } from '@conformo/formats';
const invoice = {
number: 'INV-2026-0001',
typeCode: '380',
issueDate: '2026-09-20',
currency: 'EUR',
seller: { name: 'Northwind Studio SARL', vatId: 'FR32123456789', street: '12 Rue Exemple', city: 'Paris', postcode: '75004', country: 'FR' },
buyer: { name: 'Handelsgesellschaft Muster GmbH', vatId: 'DE123456789', street: 'Hauptstrasse 8', city: 'Berlin', postcode: '10115', country: 'DE' },
lines: [{ name: 'Website design', quantity: 1, unitPriceMinor: 480000, unitCode: 'C62', taxCategory: 'S', taxRate: 20 }],
};
const xml = buildCII(invoice); // Factur-X/ZUGFeRD CII XML, ready to embed in a PDF/A-3Money is always integer minor units (cents) — never floats — so the totals never drift by the cent that gets an invoice rejected.
As a CLI:
npx @conformo/cli validate my-invoice.xml --country FR
npx @conformo/cli parse an-invoice.pdf --csv out.csvAs an MCP server (for agents that need to issue or check invoices):
{
"mcpServers": {
"conformo": { "command": "npx", "args": ["-y", "@conformo/mcp-server"] }
}
}Exposes create_invoice, validate_invoice, and convert_invoice over
stdio.
Which countries require this
Generated from a sourced, versioned dataset — every row cites a tax authority, ministry, or official EU source, or is marked unverified.
Country | B2G | B2B | Required format(s) | Last verified |
Belgium | Mandatory (since 2023-11-01) | Mandatory (since 2026-01-01) | peppol-bis-3.0 | 2025-08-14, source |
France | Mandatory (since 2019-11-01) | Mandatory (since 2026-09-01) | cii, ubl-2.1, factur-x | 2025-08-14, source |
Germany | Mandatory (since 2019-11-01) | Planned (from 2027-01-01) | xrechnung, zugferd, peppol-bis-3.0 | 2025-08-14, source |
Italy | Mandatory (since 2015-03-31) | Mandatory (since 2019-01-01) | fatturapa | 2025-08-14, source |
Netherlands | Mandatory (since 2019-11-01) | No mandate | peppol-bis-3.0, ubl-2.1, other | 2025-08-14, source |
Poland | Mandatory (since 2019-08-01) | Mandatory (since 2026-02-01) | peppol-bis-3.0, ksef-fa | 2025-08-14, source |
Spain | Mandatory (since 2015-01-15) | Planned | facturae | 2025-02-04, source |
Full detail per country, generated from the same dataset, is at conformo-docs.vercel.app.
Anti-goals
This is not, and will not become, accounting, payroll, expense, inventory, CRM, or project/time-tracking software, and it will never require an account or a server. If that's what you need, Akaunting and Dolibarr already do it well.
Contributing / building from source
See docs/DEVELOPMENT.md to build, test, or run this
repo yourself, and CONTRIBUTING.md for the project's
non-negotiable invariants.
License
Apache-2.0.
This server cannot be deployed
Maintenance
Related MCP Connectors
Validate, generate & convert EU e-invoices (UBL, CII, XRechnung, Factur-X) — EN 16931 pre-validated.
Create, validate, convert & extract compliant e-invoices (UBL, Factur-X, ZUGFeRD, XRechnung)
Generate & validate EN 16931 e-invoices (Factur-X, ZUGFeRD, XRechnung); verification certificates
EN 16931-compliant e-invoices: XRechnung, ZUGFeRD, Factur-X, Peppol BIS, Facturae or US PDF. Free.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceInvoiceXML brings e-invoice compliance to your AI agent. Create, validate, convert, render, and extract structured invoices across UBL (Peppol BIS Billing 3.0, used worldwide), CII, Factur-X, ZUGFeRD, and XRechnung, all checked against the EN 16931 standard and official Schematron rules. Ask your assistant to generate a compliant invoice, validate one for errors, or convert between formats, with n5MIT- AlicenseNot gradedqualityDmaintenanceEnables autonomous agents to validate, audit, and correct e-invoices against European standards (EN16931) and Peppol regulations.1MIT
- AlicenseAqualityDmaintenanceValidates EU electronic invoices (Peppol, XRechnung, FatturaPA, etc.) and explains validation error codes, enabling AI coding agents to check invoice validity and get fixes before rejection.328 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to create and manage e-invoices through natural language, supporting EU compliance formats like ZUGFeRD and XRechnung, as well as US plain PDF invoices.7-