EInvoice MCP – XRechnung & ZUGFeRD for DACH

by makririch

406 downloads
Not rated
GitHub

About

MCP server for German/Austrian/Swiss e-invoicing. Create XRechnung (UBL) and ZUGFeRD 2.3 (Factur-X CII) invoices, validate against EN 16931 rules, extract data from XML, and convert between UBL, CII and JSON formats. 6 tools: validate_invoice, extract_data, create_xrechnung, crea

Details

Author
makririch
Downloads
406
Categories
Other

- Create valid XRechnung UBL 2.1 XML from structured data
- Validate e-invoices for syntax and German BR-DE business rules
- Extract structured data from UBL or CII XML
- Automatic calculation of net, gross, and tax amounts
- Local operation with no external dependencies
- Plugin-capable for integration with BuchPilot MCP Server

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name EInvoice MCP – XRechnung & ZUGFeRD for DACH
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install globally via npm (npm install -g einvoice-mcp) or from source. No configuration or API keys required. Add the server to your MCP client (e.g., Claude Desktop) using the provided configuration; then invoke tools like create_xrechnung, validate_invoice, extract_data, or get_format_info through natural language prompts.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "einvoice mcp \u2013 xrechnung & zugferd for dach": {
            "einvoice": {
                "command": "npx",
                "args": [
                    "einvoice-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "einvoice": {
        "command": "npx",
        "args": [
            "einvoice-mcp"
        ]
    }
}

E-Invoice MCP Server

> MCP Server fuer E-Rechnungen im DACH-Raum — XRechnung erstellen, validieren und Daten extrahieren. Direkt aus Claude, Cursor oder jedem MCP-Client.

npm version
License: MIT

Was ist das?

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.

Features

- XRechnung erstellen — Valides UBL 2.1 XML aus strukturierten Daten (EN 16931 + XRechnung 3.0.2)
- E-Rechnung validieren — Syntax, Pflichtfelder und deutsche Business-Regeln (BR-DE) pruefen
- Daten extrahieren — Strukturierte Daten aus UBL- oder CII-XML lesen
- Format-Info — Nachschlagewerk fuer Pflichtfelder, Steuer-Kategorien, Einheiten-Codes und Fristen
- Automatische Berechnung — Netto, Brutto, Steuerbetraege werden automatisch berechnet
- Plugin-faehig — Kann standalone laufen ODER in den BuchPilot MCP Server integriert werden
- Keine externen Dienste — Alles laeuft lokal, keine API-Keys noetig
- Keine nativen Abhaengigkeiten — Laeuft auf jedem System mit Node.js

Gesetzliche Fristen

| 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).

Installation

Voraussetzungen

- Node.js >= 18

npm (global)

npm install -g einvoice-mcp

Von Source

git clone https://github.com/makririch/einvoice-mcp.git
cd einvoice-mcp
npm install
npm run build

Konfiguration

Dieser MCP Server benoetigt keine Konfiguration. Es werden keine API-Keys oder externe Dienste benoetigt — alles laeuft lokal.

Nutzung

Server starten (standalone)

# 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.

In Claude Desktop verwenden

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"]
    }
  }
}

Beispiele (natuerliche Sprache in Claude)

Nachdem du den Server konfiguriert hast, kannst du Claude z.B. fragen:

- "Erstelle eine XRechnung an die Beispiel GmbH fuer 10 Stunden Beratung zu 150 EUR"
- "Ist diese XML-Datei eine gueltige XRechnung?"
- "Extrahiere die Rechnungsdaten aus diesem XML"
- "Welche Pflichtfelder brauche ich fuer eine XRechnung?"
- "Welche Steuer-Kategorien gibt es und was bedeuten sie?"
- "Bis wann muss mein Unternehmen E-Rechnungen versenden koennen?"

Quickstart

Eine Schritt-fuer-Schritt-Anleitung "Erstelle deine erste XRechnung in 5 Minuten" findest du in docs/quickstart.md.

Tool-Referenz

Eine vollstaendige Referenz aller 4 Tools mit Parametern, Beispiel-Inputs und Beispiel-Outputs findest du in docs/tool-reference.md.

Kurzuebersicht

| 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 |

BuchPilot-Integration

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.

Unterstuetzte Standards

| 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 |

FAQ / Troubleshooting

"XML konnte nicht geparst werden"

- Ist das XML well-formed? (Alle Tags korrekt geschlossen?)
- Ist es tatsaechlich eine UBL- oder CII-Rechnung? (Root-Element muss <Invoice> oder <CrossIndustryInvoice> sein)
- Ist das Encoding UTF-8?

Validierung zeigt Fehler "BR-DE-13: Buyer Reference ist Pflicht"

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"
}

Validierung zeigt Warnung "BR-DE-21: Telefonnummer empfohlen"

Das ist nur eine Warnung, kein Fehler. Die Rechnung ist trotzdem gueltig. Fuer beste Kompatibilitaet solltest du aber eine Telefonnummer des Verkaeufers angeben.

Welche Steuer-Kategorien gibt es?

| 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% |

Welche Einheiten-Codes gibt es?

| 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 |

Server startet, aber Claude erkennt die Tools nicht

- Pruefe ob die claude_desktop_config.json korrekt ist
- Starte Claude Desktop neu nach Konfigurationsaenderungen
- Pruefe die Logs: ~/Library/Logs/Claude/mcp.log (macOS)

Lizenz

MIT — Frei nutzbar, auch kommerziell.

Autor

MaKriGitHub

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.