MCP-Server zur automatisierten Validierung von E-Rechnungen in den Formaten ZUGFeRD, Factur-X und XRechnung. Gibt strukturierte JSON-Ergebnisse mit konkreten Korrekturvorschlägen zurück.
Der Server stellt drei Tools und eine Resource bereit, die von KI-Agenten wie Claude über das Model Context Protocol aufgerufen werden können.
Szenario
Tool / Resource
Rechnung vor dem Versand prüfen
validate_invoice
XML-Daten aus ZUGFeRD-PDF lesen
extract_xml
Prüfen ob PDF und XML übereinstimmen
check_consistency
Verfügbare Formate und Regelsets abfragen
validation://rules
✓
Alle Antworten sind strukturiertes JSON. Kein Freitext — jeder Fehler enthält Regel-ID, betroffenes Feld, Fehlermeldung, umsetzbaren Korrekturvorschlag und XPath.
Validiert eine E-Rechnung (ZUGFeRD/Factur-X PDF oder XRechnung XML) gegen EN 16931 und die deutschen Erweiterungen. Gibt strukturierte Fehler, Warnungen und Korrekturvorschläge zurück.
Input-Schema
file_content *stringBase64-kodierter Inhalt der PDF- oder XML-Datei. Data-URL-Präfixe (data:application/pdf;base64,…) werden automatisch entfernt.
file_type *enum"pdf" für ZUGFeRD/Factur-X-PDFs · "xml" für reine XRechnung/CII-XML-Dateien
profileenum?Optionale Profilangabe. Bei Abweichung zum erkannten Profil wird eine warning mit rule_id: "PROFILE_MISMATCH" erzeugt. Werte: minimum · basic_wl · basic · en16931 · extended · xrechnung
{
"valid": false,
"format": "ZUGFeRD 2.4 / Factur-X 1.0",
"profile": "EN16931",
"summary": "2 Fehler, 1 Warnung gefunden",
"errors": [
{
"severity": "error",
"rule_id": "BR-DE-1",
"field": "BT-31 / BT-32",
"message": "Die USt-ID (BT-31) oder Steuernummer (BT-32) muss angegeben werden.",
"fix_suggestion": "Füge 'ram:SpecifiedTaxRegistration' mit schemeID='VA' und USt-ID hinzu.",
"xpath": "//ram:SellerTradeParty/ram:SpecifiedTaxRegistration"
}
],
"warnings": [
{
"severity": "warning",
"rule_id": "BR-CL-10",
"field": "BT-81",
"message": "Zahlungsmittelcode muss aus UNTDID 4461 stammen.",
"fix_suggestion": "Verwende z.B. '58' für SEPA-Überweisung oder '59' für SEPA-Lastschrift.",
"xpath": "//ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode"
}
]
}
Ausgabefelder
Feld
Typ
Pflicht
Beschreibung
valid
boolean
Ja
true wenn kein einziger Fehler gefunden wurde
format
string
Nein
Erkanntes Format, z.B. "ZUGFeRD 2.4 / Factur-X 1.0"
profile
string
Nein
Erkanntes Profil in Großbuchstaben, z.B. "EN16931"
summary
string
Ja
Lesbare Zusammenfassung, z.B. "2 Fehler, 1 Warnung gefunden"
errors
array
Ja
Validierungsfehler — machen die Rechnung ungültig
warnings
array
Ja
Warnungen — Rechnung kann trotzdem gültig sein
notices
array
Nein
Informative Hinweise ohne Einfluss auf die Gültigkeit
metadata
object
Nein
Extrahierte Rechnungsdaten (nur bei file_type: "xml")
extract_xmlTOOL
Extrahiert das eingebettete XML-Dokument aus einer ZUGFeRD/Factur-X-PDF. Gibt den vollständigen XML-Inhalt als String zurück, zusammen mit erkanntem Format und Profil.
Input
pdf_content *stringBase64-kodierter Inhalt der ZUGFeRD/Factur-X-PDF-Datei.
Das extrahierte xml_content kann direkt (nach Base64-Kodierung) an validate_invoice mit file_type: "xml" weitergegeben werden.
check_consistencyTOOL
Prüft, ob die für Menschen sichtbaren Daten im PDF (Rechnungsnummer, Datum, Gesamtbetrag) mit den im XML-Anhang gespeicherten Maschinendaten übereinstimmen. Deckt Manipulationen oder Erfassungsfehler auf.
Input
pdf_content *stringBase64-kodierter Inhalt der ZUGFeRD/Factur-X-PDF-Datei.
Output
{
"consistent": true,
"discrepancies": []
}
{
"consistent": false,
"discrepancies": [
{
"field": "total_amount",
"pdf_value": "1190.00",
"xml_value": "1180.00",
"message": "Gesamtbetrag im PDF ('1190.00') unterscheidet sich von dem im XML ('1180.00')."
}
]
}
Der Server enthält eine Datenbank mit Korrekturvorschlägen für 48 Regelkategorien. Wenn Mustang einen Fehler mit bekannter Regel-ID meldet, wird der Korrekturvorschlag automatisch angehängt.
BR-DE-Regeln 26 Regeln
Deutsche Erweiterungen — Pflicht für XRechnung-konforme Rechnungen.
{
"consistent": false,
"discrepancies": [{
"field": "total_amount",
"pdf_value": "1190.00",
"xml_value": "1180.00",
"message": "Gesamtbetrag im PDF ('1190.00') unterscheidet sich von dem im XML ('1180.00')."
}]
}
11. Grenzen & Bekannte Einschränkungen
Einschränkung
Details
Java-Abhängigkeit
Mustang CLI benötigt zwingend Java 21+. Ohne Java starten alle Validierungs-Tools mit einem Fehler.
Mustang JAR
Das JAR muss vor dem ersten Start heruntergeladen werden (npm run setup).
Timeout
Mustang CLI wird nach 30 Sekunden abgebrochen. Sehr große oder korrupte Dateien können diesen Timeout auslösen.
PDF-OCR
check_consistency wertet nur maschinenlesbaren PDF-Text aus. Eingescannte PDFs ohne OCR-Schicht werden nicht unterstützt.
Metadaten nur bei XML
validate_invoice extrahiert Metadaten nur bei file_type: "xml". Bei PDFs fehlt dieses Feld.
Konsistenzprüfung
Nur drei Felder werden verglichen (Nummer, Datum, Betrag). Adressen, Steuernummern und Positionsdetails werden nicht abgeglichen.
Unbekannte Regel-IDs
Fehlt eine Regel-ID in der Fix-Suggestions-DB, bleibt fix_suggestion leer. Die Meldung wird trotzdem zurückgegeben.
Dateigröße
Keine explizite Größenbeschränkung, aber sehr große PDFs (>50 MB) können zum Timeout führen.