cmendezs avatar

Mcp Einvoicing De

cmendezs/mcp-einvoicing-de

This server handles the full lifecycle of German electronic invoices in ZUGFeRD 2.x and XRechnung 3.x formats, both required for B2B invoicing in Germany starting 2025. It exposes six tools: create invoices in CII or UBL XML, validate against EN 16931 and KoSIT Schematron rules, parse existing invoice files, convert between ZUGFeRD profiles or to XRechnung, check Peppol participant registration via AS4, and query German VAT rules including reverse charge scenarios under §13b UStG. The validation catches BR-DE-* business rule violations specific to German requirements. Useful if you're building invoicing workflows for German companies or need to ensure compliance with the mandatory e-invoicing rollout.

GitHub stars
2
tools
24
transport
STDIO
env vars
3
last updated
Sep 12, 2026

Tools

24 tools

Public tool metadata for what this MCP can expose to an agent.

invoice_createGenerate ZUGFeRD or XRechnung XML (CII or UBL). Enforces the §14 Abs. 2 UStG B2B mandate: non-XML output is rejected for DE-prefixed VAT buyers unless `transitional_period_opt_in=True` is set.

Generate ZUGFeRD or XRechnung XML (CII or UBL). Enforces the §14 Abs. 2 UStG B2B mandate: non-XML output is rejected for DE-prefixed VAT buyers unless `transitional_period_opt_in=True` is set.

No parameter schema in public metadata yet.

invoice_validateValidate an invoice against EN 16931 and KoSIT rules (BR-DE-*). Local Schematron validation runs by default (no data leaves your machine); set `cloud_validate=True` or `EINVOICING_DE_KOSIT_ENABLE=1` to opt into KoSIT cloud validation.

Validate an invoice against EN 16931 and KoSIT rules (BR-DE-*). Local Schematron validation runs by default (no data leaves your machine); set `cloud_validate=True` or `EINVOICING_DE_KOSIT_ENABLE=1` to opt into KoSIT cloud validation.

No parameter schema in public metadata yet.

invoice_parseExtract structured data from ZUGFeRD or XRechnung XML, or from a PDF/A-3 hybrid invoice with embedded `factur-x.xml` / `zugferd-invoice.xml`.

Extract structured data from ZUGFeRD or XRechnung XML, or from a PDF/A-3 hybrid invoice with embedded `factur-x.xml` / `zugferd-invoice.xml`.

No parameter schema in public metadata yet.

invoice_convertConvert between ZUGFeRD profiles, swap ZUGFeRD/XRechnung CII headers, or perform cross-syntax CII/UBL conversion via core `convert_wire_format`.

Convert between ZUGFeRD profiles, swap ZUGFeRD/XRechnung CII headers, or perform cross-syntax CII/UBL conversion via core `convert_wire_format`.

No parameter schema in public metadata yet.

datev_exportExport a ZUGFeRD invoice as a DATEV EXTF 700 Buchungsstapel CSV file for import into DATEV accounting software. Defaults to SKR 03 accounts (8400 revenue / 10000 receivable).

Export a ZUGFeRD invoice as a DATEV EXTF 700 Buchungsstapel CSV file for import into DATEV accounting software. Defaults to SKR 03 accounts (8400 revenue / 10000 receivable).

No parameter schema in public metadata yet.

tax_rulesQuery German VAT rules (rates, §13b UStG reverse charge codes, §19 UStG Kleinunternehmer thresholds at JStG 2024 values of €25,000 preceding year / €100,000 current year, exemptions).

Query German VAT rules (rates, §13b UStG reverse charge codes, §19 UStG Kleinunternehmer thresholds at JStG 2024 values of €25,000 preceding year / €100,000 current year, exemptions).

No parameter schema in public metadata yet.

peppol_lookup_participantCheck whether a business is registered on the Peppol network; returns registration status and supported document types

Check whether a business is registered on the Peppol network; returns registration status and supported document types

No parameter schema in public metadata yet.

peppol_get_service_endpointFetch the AS4 endpoint for a participant's document type

Fetch the AS4 endpoint for a participant's document type

No parameter schema in public metadata yet.

resolve_peppol_dnsDNS-only (SML) diagnostic, independent of SMP reachability

DNS-only (SML) diagnostic, independent of SMP reachability

No parameter schema in public metadata yet.

peppol_sendTransmit a UBL/CII invoice via AS4

Transmit a UBL/CII invoice via AS4

No parameter schema in public metadata yet.

peppol_directory_searchSearch the public Peppol Directory by participant, name, country, or document type

Search the public Peppol Directory by participant, name, country, or document type

No parameter schema in public metadata yet.

list_participant_id_schemesOpenPeppol eDEC codelist lookup (requires EINVOICING_PEPPOL_CODELIST_DIR)

OpenPeppol eDEC codelist lookup (requires EINVOICING_PEPPOL_CODELIST_DIR)

No parameter schema in public metadata yet.

list_document_type_idsOpenPeppol eDEC codelist lookup (requires EINVOICING_PEPPOL_CODELIST_DIR)

OpenPeppol eDEC codelist lookup (requires EINVOICING_PEPPOL_CODELIST_DIR)

No parameter schema in public metadata yet.

list_process_idsOpenPeppol eDEC codelist lookup (requires EINVOICING_PEPPOL_CODELIST_DIR)

OpenPeppol eDEC codelist lookup (requires EINVOICING_PEPPOL_CODELIST_DIR)

No parameter schema in public metadata yet.

list_spis_use_case_idsOpenPeppol eDEC codelist lookup (requires EINVOICING_PEPPOL_CODELIST_DIR)

OpenPeppol eDEC codelist lookup (requires EINVOICING_PEPPOL_CODELIST_DIR)

No parameter schema in public metadata yet.

check_document_type_id_in_codelistOpenPeppol eDEC codelist check

OpenPeppol eDEC codelist check

No parameter schema in public metadata yet.

check_process_id_in_codelistOpenPeppol eDEC codelist check

OpenPeppol eDEC codelist check

No parameter schema in public metadata yet.

check_participant_id_scheme_in_codelistOpenPeppol eDEC codelist check

OpenPeppol eDEC codelist check

No parameter schema in public metadata yet.

get_peppol_codelist_versionOpenPeppol eDEC codelist version reporting

OpenPeppol eDEC codelist version reporting

No parameter schema in public metadata yet.

validate_eusr_reportValidate an End User Statistics Report (XSD, then Schematron). Requires the [xslt2] extra.

Validate an End User Statistics Report (XSD, then Schematron). Requires the [xslt2] extra.

No parameter schema in public metadata yet.

validate_tsr_reportValidate a Transaction Statistics Report (XSD, then Schematron). Requires the [xslt2] extra.

Validate a Transaction Statistics Report (XSD, then Schematron). Requires the [xslt2] extra.

No parameter schema in public metadata yet.

validate_mls_messageValidate a Message Level Status document (UBL ApplicationResponse-2 subset). Requires the [xslt2] extra.

Validate a Message Level Status document (UBL ApplicationResponse-2 subset). Requires the [xslt2] extra.

No parameter schema in public metadata yet.

build_mls_messageBuild a document-level MLS response. Requires the [xslt2] extra.

Build a document-level MLS response. Requires the [xslt2] extra.

No parameter schema in public metadata yet.

get_en16931_codelist_versionEN 16931 semantic code list version reporting. Requires EINVOICING_EN16931_CODELIST_DIR.

EN 16931 semantic code list version reporting. Requires EINVOICING_EN16931_CODELIST_DIR.

No parameter schema in public metadata yet.

Sponsors

Configuration

EINVOICING_DE_LOG_LEVEL

Logging level: DEBUG, INFO (default), WARNING, or ERROR

EINVOICING_DE_KOSIT_ENABLE

Set to 1 to opt in to remote KoSIT cloud validation by default across all invoice_validate calls (egresses the full invoice payload). Local Schematron only by default; callers can still opt in per-call with cloud_validate=True.

EINVOICING_DE_KOSIT_VALIDATOR_URL

URL of a self-hosted KoSIT validation tool REST endpoint (e.g. http://localhost:8080/api/v1/validate), used only when cloud validation is enabled (cloud_validate=True or EINVOICING_DE_KOSIT_ENABLE=1). Defaults to an [Unverified] validator.kosit.de endpoint if unset.

Readme

mcp-einvoicing-de 🇩🇪

English | Deutsch

License PyPI version Python mcp-einvoicing-de MCP server

MCP server (Model Context Protocol) in Python for German electronic invoicing in ZUGFeRD 2.x and XRechnung 3.x formats (EN 16931, FeRD, KoSIT). Enables AI agents (Claude, IDEs) to create, validate, parse, and convert e-invoices that are fully compliant with the German B2B e-invoicing mandate (effective from 2025, phased enforcement through 2027 to 2028) and the European standard EN 16931.


Introduction


View the full README on GitHub

Details

Repository
github.com/cmendezs/mcp-einvoicing-de
Package
mcp-einvoicing-de
Transport
STDIO
Registry
MCP registry, active

More from cmendezs