ZUGFeRD Validator
Validiert E-Rechnungen (ZUGFeRD/Factur-X, XRechnung) gegen EN 16931 mit Korrekturvorschlägen.
使うべきか
品質と安全性
検出事項(4)
- LOWvalidate_invoice 内
- LOWextract_xml 内
- LOWcheck_consistency 内
- LOWcreate_invoice 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"validator": {
"command": "npx",
"args": [
"zugferd-mcp-client"
]
}
}
}実行可能なパッケージ
1.1.1stdioリモートエンドポイント
https://api.zugferd-validator.de/mcpstreamable-httpできること
ツール一覧
ツール(5)
⚪validate_invoice(file_content, file_type, profile)
Validiert eine E-Rechnung (ZUGFeRD/Factur-X PDF oder XRechnung XML) gegen EN 16931 und gibt strukturierte Ergebnisse mit Korrekturvorschlägen zurück.
入力スキーマ
{
"type": "object",
"properties": {
"file_content": {
"type": "string",
"description": "Base64-kodierter Inhalt der PDF- oder XML-Datei"
},
"file_type": {
"type": "string",
"enum": [
"pdf",
"xml"
],
"description": "'pdf' für ZUGFeRD/Factur-X, 'xml' für XRechnung"
},
"profile": {
"type": "string",
"enum": [
"minimum",
"basic_wl",
"basic",
"en16931",
"extended",
"xrechnung"
],
"description": "Erwartetes Profil (optional, wird automatisch erkannt)"
}
},
"required": [
"file_content",
"file_type"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢extract_xml(pdf_content)
Extrahiert die eingebettete XML-Datei aus einem ZUGFeRD/Factur-X PDF.
入力スキーマ
{
"type": "object",
"properties": {
"pdf_content": {
"type": "string",
"description": "Base64-kodierter Inhalt der ZUGFeRD-PDF-Datei"
}
},
"required": [
"pdf_content"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_consistency(pdf_content)
Prüft ob die sichtbaren PDF-Daten mit den eingebetteten XML-Daten übereinstimmen.
入力スキーマ
{
"type": "object",
"properties": {
"pdf_content": {
"type": "string",
"description": "Base64-kodierter Inhalt der ZUGFeRD-PDF-Datei"
}
},
"required": [
"pdf_content"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_invoice(format, document_type, type_code, preceding_invoice, number, ...)
Erstellt aus strukturierten Daten eine valide E-Rechnung — entweder als ZUGFeRD-PDF (PDF/A-3 mit eingebettetem XML) oder als reines XRechnung-XML (mit Leitweg-ID für B2G). Unterstützt mehrere Positionen, alle USt-Kategorien, Rabatte/Zuschläge und Zahlungsangaben. Stateless — es wird nichts gespeichert.
入力スキーマ
{
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"zugferd",
"xrechnung"
],
"description": "'zugferd' = PDF/A-3 mit eingebettetem XML, 'xrechnung' = reines XML"
},
"document_type": {
"type": "string",
"enum": [
"invoice",
"credit_note",
"corrected",
"self_billed",
"prepayment",
"partial",
"debit_note"
],
"description": "Dokumenttyp (Standard invoice). credit_note=Gutschrift/Storno, corrected=Korrektur, self_billed=Gutschriftverfahren, prepayment=Anzahlung, partial=Teilrechnung, debit_note=Belastungsanzeige. Mappt auf BT-3."
},
"type_code": {
"type": "string",
"description": "Roher UNTDID-1001-Code (überschreibt document_type; für seltene Typen wie 875-877 Bauleistung)"
},
"preceding_invoice": {
"type": "object",
"properties": {
"number": {
"type": "string"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD"
}
},
"required": [
"number"
],
"additionalProperties": false,
"description": "Bezug auf die Ursprungsrechnung (BT-25/26) — bei Storno, Korrektur oder Gutschrift angeben"
},
"number": {
"type": "string",
"minLength": 1,
"description": "Belegnummer"
},
"date": {
"type": "string",
"description": "Belegdatum (YYYY-MM-DD)"
},
"currency": {
"type": "string",
"description": "Währung (Standard EUR)"
},
"seller": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Firmenname / Name"
},
"street": {
"type": "string",
"description": "Straße und Hausnummer"
},
"zip": {
"type": "string",
"description": "Postleitzahl"
},
"city": {
"type": "string",
"description": "Ort"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO-3166 Alpha-2 Ländercode, Standard DE"
},
"vat_id": {
"type": "string",
"description": "USt-IdNr. (z.B. DE123456789)"
},
"email": {
"type": "string",
"description": "E-Mail / elektronische Adresse (für XRechnung Pflicht)"
},
"phone": {
"type": "string",
"description": "Telefon (Kontakt)"
},
"contact_name": {
"type": "string",
"description": "Ansprechpartner"
}
},
"required": [
"name"
],
"additionalProperties": false,
"description": "Verkäufer / Rechnungssteller. Weglassen, wenn im Konto feste Absenderdaten hinterlegt sind — sie werden dann eingesetzt."
},
"buyer": {
"type": "object",
"properties": {
"name": {
"$ref": "#/properties/seller/properties/name"
},
"street": {
"$ref": "#/properties/seller/properties/street"
},
"zip": {
"$ref": "#/properties/seller/properties/zip"
},
"city": {
"$ref": "#/properties/seller/properties/city"
},
"country": {
"$ref": "#/properties/seller/properties/country"
},
"vat_id": {
"$ref": "#/properties/seller/properties/vat_id"
},
"email": {
"$ref": "#/properties/seller/properties/email"
},
"phone": {
"$ref": "#/properties/seller/properties/phone"
},
"contact_name": {
"$ref": "#/properties/seller/properties/contact_name"
}
},
"required": [
"name"
],
"additionalProperties": false,
"description": "Käufer / Rechnungsempfänger"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Bezeichnung der Position"
},
"description": {
"type": "string",
"description": "Optionale Detailbeschreibung"
},
"quantity": {
"type": "number",
"description": "Menge"
},
"unit": {
"type": "string",
"description": "Einheit (UN/ECE Rec 20, Standard C62 = Stück)"
},
"unit_net_price_cents": {
"type": "integer",
"description": "Netto-Einzelpreis in Cent"
},
"vat_category": {
"type": "string",
"enum": [
"S",
"Z",
"E",
"AE",
"K",
"G",
"O"
],
"description": "USt-Kategorie (Standard S). Z=0%, E=befreit, AE=Reverse-Charge"
},
"vat_rate": {
"type": "number",
"description": "USt-Satz in Prozent (0 bei Z/E/AE)"
}
},
"required": [
"name",
"quantity",
"unit_net_price_cents",
"vat_rate"
],
"additionalProperties": false
},
"minItems": 1,
"description": "Rechnungspositionen (mindestens eine)"
},
"allowances_charges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"charge": {
"type": "boolean",
"description": "true = Zuschlag, false = Rabatt (auf Dokumentebene)"
},
"amount_cents": {
"type": "integer",
"description": "Betrag in Cent (positiv)"
},
"reason": {
"type": "string",
"description": "Begründung"
},
"vat_category": {
"$ref": "#/properties/lines/items/properties/vat_category",
"description": "Zugehörige USt-Kategorie (Standard S)"
},
"vat_rate": {
"type": "number",
"description": "Zugehöriger USt-Satz in Prozent"
}
},
"required": [
"charge",
"amount_cents",
"vat_rate"
],
"additionalProperties": false
},
"description": "Rabatte/Zuschläge auf Dokumentebene"
},
"note": {
"type": "string",
"description": "Freitext-Hinweis"
},
"buyer_reference": {
"type": "string",
"description": "Leitweg-ID / Käuferreferenz (BT-10, bei XRechnung Pflicht)"
},
"payment_terms": {
"type": "string",
"description": "Zahlungsbedingungen (Freitext)"
},
"due_date": {
"type": "string",
"description": "Fälligkeitsdatum (YYYY-MM-DD)"
},
"delivery_date": {
"type": "string",
"description": "Leistungs-/Lieferdatum (BT-72, YYYY-MM-DD). In Deutschland Pflichtangabe; ohne Angabe gilt das Belegdatum."
},
"billing_period": {
"type": "object",
"properties": {
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"start",
"end"
],
"additionalProperties": false,
"description": "Leistungszeitraum (BG-14, BT-73/74) bei laufenden Leistungen, jeweils YYYY-MM-DD. Ersetzt delivery_date."
},
"payment_means": {
"type": "object",
"properties": {
"type_code": {
"type": "string",
"description": "BT-81 UNTDID-4461-Code (z.B. 58 = SEPA-Überweisung)"
},
"iban": {
"type": "string",
"description": "IBAN des Zahlungsempfängers"
},
"bic": {
"type": "string",
"description": "BIC"
},
"account_name": {
"type": "string",
"description": "Kontoinhaber"
}
},
"additionalProperties": false,
"description": "Zahlungsangaben (IBAN etc.)"
},
"seller_logo": {
"type": "string",
"description": "Logo als Base64 (PNG/JPG) — nur im Pro/Ultra-Tarif"
},
"self_check": {
"type": "boolean",
"description": "Wenn true, wird die erzeugte Rechnung sofort gegen EN 16931 geprüft (langsamer). Standard: false."
}
},
"required": [
"format",
"number",
"date",
"buyer",
"lines"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪validation_report(file_content, file_type, attach_source, lang, file_name)
Erzeugt aus einer E-Rechnung einen Validierungsbericht als PDF (PDF/A-3b) zum Ablegen und Weitergeben. Der Bericht nennt Ergebnis, alle Meldungen mit Regel-ID und Feld, den Prüfzeitpunkt, Format und Profil, die SHA-256-Prüfsumme der geprüften Datei sowie die Versionen der Prüfwerkzeuge. Auf Wunsch wird die geprüfte Rechnung sichtbar angehängt. Gibt das PDF base64-kodiert zurück. Ab dem Tarif Automatisieren.
入力スキーマ
{
"type": "object",
"properties": {
"file_content": {
"type": "string",
"description": "Base64-kodierter Inhalt der PDF- oder XML-Datei"
},
"file_type": {
"type": "string",
"enum": [
"pdf",
"xml"
],
"description": "Dateityp: 'pdf' für ZUGFeRD/Factur-X, 'xml' für XRechnung/CII"
},
"attach_source": {
"type": "boolean",
"description": "Geprüfte Rechnung sichtbar anhängen (PDF-Seiten bzw. abgedruckter XML-Inhalt). Standard false."
},
"lang": {
"type": "string",
"enum": [
"de",
"en",
"fr"
],
"description": "Sprache des Berichts. Standard 'de'."
},
"file_name": {
"type": "string",
"description": "Dateiname, der im Bericht steht."
}
},
"required": [
"file_content",
"file_type"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス