XRechnung & ZUGFeRD: create, validate, and convert German e-invoices. EN 16931 compliant.
MCP Server fuer E-Rechnungen im DACH-Raum — XRechnung erstellen, validieren und Daten extrahieren. Direkt aus Claude, Cursor oder jedem MCP-Client.
E-Invoice MCP ist ein Model Context Protocol Server fuer die Erstellung und Validierung von E-Rechnungen nach dem deutschen XRechnung-Standard. Ab 2027 muessen alle Unternehmen in Deutschland E-Rechnungen versenden koennen — mit diesem Tool bist du vorbereitet.
Du sagst Claude einfach: "Erstelle eine Rechnung an die Beispiel GmbH fuer 10 Stunden Beratung" — und erhaeltst eine valide XRechnung als UBL 2.1 XML.
| Datum | Was passiert |
|---|---|
| 01.01.2025 | Alle Unternehmen muessen E-Rechnungen empfangen koennen |
| 31.12.2026 | PDF-Rechnungen nur noch mit Empfaenger-Zustimmung erlaubt |
| 01.01.2027 | Unternehmen >800.000 EUR Umsatz muessen E-Rechnungen senden |
| 01.01.2028 | ALLE Unternehmen muessen E-Rechnungen senden |
Fehlerhafte E-Rechnungen koennen zum Verlust des Vorsteuerabzugs fuehren (+ 6% Verzinsung).
npm install -g einvoice-mcp
git clone https://github.com/makririch/einvoice-mcp.git
cd einvoice-mcp
npm install
npm run build
Dieser MCP Server benoetigt keine Konfiguration. Es werden keine API-Keys oder externe Dienste benoetigt — alles laeuft lokal.
# Nach npm install -g:
einvoice-mcp
# Oder von Source:
npm start
# Entwicklung mit Auto-Reload:
npm run dev
Der Server laeuft ueber stdio und wartet auf MCP-Nachrichten.
Siehe Claude Desktop Setup Guide fuer eine detaillierte Anleitung.
Kurzversion — fuege in claude_desktop_config.json hinzu:
{
"mcpServers": {
"einvoice": {
"command": "npx",
"args": ["-y", "einvoice-mcp"]
}
}
}
Nachdem du den Server konfiguriert hast, kannst du Claude z.B. fragen:
Eine Schritt-fuer-Schritt-Anleitung "Erstelle deine erste XRechnung in 5 Minuten" findest du in docs/quickstart.md.
Eine vollstaendige Referenz aller 4 Tools mit Parametern, Beispiel-Inputs und Beispiel-Outputs findest du in docs/tool-reference.md.
| Tool | Beschreibung |
|---|---|
create_xrechnung | XRechnung (UBL 2.1 XML) aus strukturierten Daten erstellen |
validate_invoice | E-Rechnung XML validieren (Syntax + BR-DE Business-Regeln) |
extract_data | Strukturierte Daten aus UBL- oder CII-XML extrahieren |
get_format_info | Nachschlagewerk fuer Formate, Pflichtfelder, Codes und Fristen |
E-Invoice MCP kann als Plugin in den BuchPilot MCP Server integriert werden:
import { registerEInvoiceTools } from "einvoice-mcp";
registerEInvoiceTools(server);
Kombination: BuchPilot erstellt eine Rechnung in Lexoffice -> Daten extrahieren -> XRechnung erzeugen -> fertige E-Rechnung.
| Standard | Version | Status |
|---|---|---|
| XRechnung | 3.0.2 | Erstellen + Validieren |
| EN 16931 | — | Basis fuer XRechnung |
| UBL 2.1 | — | XML-Syntax fuer XRechnung |
| CII (Cross Industry Invoice) | — | Extrahieren (Lesen) |
| ZUGFeRD / Factur-X | 2.3 | Extrahieren (Lesen), Erstellen geplant |
<Invoice> oder <CrossIndustryInvoice> sein)Die Kaeufer-Referenz (BT-10) ist in XRechnung Pflicht. Bei Rechnungen an oeffentliche Auftraggeber ist das die Leitweg-ID. Bei B2B-Rechnungen kann es eine beliebige Referenz sein (z.B. Bestellnummer).
{
"buyerReference": "04011000-12345-67"
}
Das ist nur eine Warnung, kein Fehler. Die Rechnung ist trotzdem gueltig. Fuer beste Kompatibilitaet solltest du aber eine Telefonnummer des Verkaeufers angeben.
| Code | Name | Beschreibung | Steuersaetze |
|---|---|---|---|
| S | Standard | Normaler Steuersatz | 19%, 7% |
| Z | Nullsatz | 0% (z.B. innergemeinschaftlich mit USt-Befreiung) | 0% |
| E | Steuerbefreit | z.B. Kleinunternehmer nach Paragraph 19 UStG | 0% |
| AE | Reverse Charge | Steuerschuldnerschaft des Empfaengers (Paragraph 13b UStG) | 0% |
| K | Innergemeinschaftlich | Steuerfreie innergemeinschaftliche Lieferung | 0% |
| Code | Name | Beschreibung |
|---|---|---|
| H87 | Stueck | Einzelne Einheit (Default) |
| HUR | Stunde | Arbeitsstunde |
| DAY | Tag | Arbeitstag |
| MON | Monat | Kalendermonat |
| KGM | Kilogramm | Gewicht |
| MTR | Meter | Laenge |
| LTR | Liter | Volumen |
| MTK | Quadratmeter | Flaeche |
| SET | Set/Paket | Zusammenstellung |
| C62 | Einheit (generisch) | Allgemeine Mengeneinheit |
claude_desktop_config.json korrekt ist~/Library/Logs/Claude/mcp.log (macOS)MIT — Frei nutzbar, auch kommerziell.
MaKri — GitHub
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y einvoice-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-makririch-einvoice": {
"command": "npx",
"args": [
"-y",
"einvoice-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceeinvoice-mcpnpmio.github.makririch/einvoice works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.