{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "",
    "endpoint": "https://api.zugferd-validator.de/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zugferd-validator-validator.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/zugferd-validator-validator.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/zugferd-validator-validator.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 2238,
        "counts": {
          "error": 0,
          "note": 1,
          "warn": 7
        },
        "findings": [
          {
            "rule": "TC15",
            "severity": "warn",
            "tool": "create_invoice",
            "message": "inputSchema uses $ref/$defs",
            "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "check_consistency",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"check\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "create_invoice",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "extract_xml",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "validate_invoice",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"validate\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "validation_report",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC22",
            "severity": "warn",
            "tool": "create_invoice",
            "message": "the definition is about 1,521 tokens",
            "fix": "Trim the description and parameter docs, or split the tool."
          },
          {
            "rule": "TC24",
            "severity": "note",
            "message": "5 of 5 tools have no outputSchema",
            "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:24:25Z",
      "count": 5,
      "schemaTokens": 2238,
      "status": "ok",
      "tools": [
        {
          "name": "validate_invoice",
          "description": "Validiert eine E-Rechnung (ZUGFeRD/Factur-X PDF oder XRechnung XML) gegen EN 16931 und gibt strukturierte Ergebnisse mit Korrekturvorschlägen zurück.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "file_content": {
                "description": "Base64-kodierter Inhalt der PDF- oder XML-Datei",
                "type": "string"
              },
              "file_type": {
                "description": "'pdf' für ZUGFeRD/Factur-X, 'xml' für XRechnung",
                "enum": [
                  "pdf",
                  "xml"
                ],
                "type": "string"
              },
              "profile": {
                "description": "Erwartetes Profil (optional, wird automatisch erkannt)",
                "enum": [
                  "minimum",
                  "basic_wl",
                  "basic",
                  "en16931",
                  "extended",
                  "xrechnung"
                ],
                "type": "string"
              }
            },
            "required": [
              "file_content",
              "file_type"
            ],
            "type": "object"
          }
        },
        {
          "name": "extract_xml",
          "description": "Extrahiert die eingebettete XML-Datei aus einem ZUGFeRD/Factur-X PDF.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "pdf_content": {
                "description": "Base64-kodierter Inhalt der ZUGFeRD-PDF-Datei",
                "type": "string"
              }
            },
            "required": [
              "pdf_content"
            ],
            "type": "object"
          }
        },
        {
          "name": "check_consistency",
          "description": "Prüft ob die sichtbaren PDF-Daten mit den eingebetteten XML-Daten übereinstimmen.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "pdf_content": {
                "description": "Base64-kodierter Inhalt der ZUGFeRD-PDF-Datei",
                "type": "string"
              }
            },
            "required": [
              "pdf_content"
            ],
            "type": "object"
          }
        },
        {
          "name": "create_invoice",
          "description": "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.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "allowances_charges": {
                "description": "Rabatte/Zuschläge auf Dokumentebene",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "amount_cents": {
                      "description": "Betrag in Cent (positiv)",
                      "type": "integer"
                    },
                    "charge": {
                      "description": "true = Zuschlag, false = Rabatt (auf Dokumentebene)",
                      "type": "boolean"
                    },
                    "reason": {
                      "description": "Begründung",
                      "type": "string"
                    },
                    "vat_category": {
                      "$ref": "#/properties/lines/items/properties/vat_category",
                      "description": "Zugehörige USt-Kategorie (Standard S)"
                    },
                    "vat_rate": {
                      "description": "Zugehöriger USt-Satz in Prozent",
                      "type": "number"
                    }
                  },
                  "required": [
                    "charge",
                    "amount_cents",
                    "vat_rate"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "billing_period": {
                "additionalProperties": false,
                "description": "Leistungszeitraum (BG-14, BT-73/74) bei laufenden Leistungen, jeweils YYYY-MM-DD. Ersetzt delivery_date.",
                "properties": {
                  "end": {
                    "type": "string"
                  },
                  "start": {
                    "type": "string"
                  }
                },
                "required": [
                  "start",
                  "end"
                ],
                "type": "object"
              },
              "buyer": {
                "additionalProperties": false,
                "description": "Käufer / Rechnungsempfänger",
                "properties": {
                  "city": {
                    "$ref": "#/properties/seller/properties/city"
                  },
                  "contact_name": {
                    "$ref": "#/properties/seller/properties/contact_name"
                  },
                  "country": {
                    "$ref": "#/properties/seller/properties/country"
                  },
                  "email": {
                    "$ref": "#/properties/seller/properties/email"
                  },
                  "name": {
                    "$ref": "#/properties/seller/properties/name"
                  },
                  "phone": {
                    "$ref": "#/properties/seller/properties/phone"
                  },
                  "street": {
                    "$ref": "#/properties/seller/properties/street"
                  },
                  "vat_id": {
                    "$ref": "#/properties/seller/properties/vat_id"
                  },
                  "zip": {
                    "$ref": "#/properties/seller/properties/zip"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              },
              "buyer_reference": {
                "description": "Leitweg-ID / Käuferreferenz (BT-10, bei XRechnung Pflicht)",
                "type": "string"
              },
              "currency": {
                "description": "Währung (Standard EUR)",
                "type": "string"
              },
              "date": {
                "description": "Belegdatum (YYYY-MM-DD)",
                "type": "string"
              },
              "delivery_date": {
                "description": "Leistungs-/Lieferdatum (BT-72, YYYY-MM-DD). In Deutschland Pflichtangabe; ohne Angabe gilt das Belegdatum.",
                "type": "string"
              },
              "document_type": {
                "description": "Dokumenttyp (Standard invoice). credit_note=Gutschrift/Storno, corrected=Korrektur, self_billed=Gutschriftverfahren, prepayment=Anzahlung, partial=Teilrechnung, debit_note=Belastungsanzeige. Mappt auf BT-3.",
                "enum": [
                  "invoice",
                  "credit_note",
                  "corrected",
                  "self_billed",
                  "prepayment",
                  "partial",
                  "debit_note"
                ],
                "type": "string"
              },
              "due_date": {
                "description": "Fälligkeitsdatum (YYYY-MM-DD)",
                "type": "string"
              },
              "format": {
                "description": "'zugferd' = PDF/A-3 mit eingebettetem XML, 'xrechnung' = reines XML",
                "enum": [
                  "zugferd",
                  "xrechnung"
                ],
                "type": "string"
              },
              "lines": {
                "description": "Rechnungspositionen (mindestens eine)",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "description": {
                      "description": "Optionale Detailbeschreibung",
                      "type": "string"
                    },
                    "name": {
                      "description": "Bezeichnung der Position",
                      "minLength": 1,
                      "type": "string"
                    },
                    "quantity": {
                      "description": "Menge",
                      "type": "number"
                    },
                    "unit": {
                      "description": "Einheit (UN/ECE Rec 20, Standard C62 = Stück)",
                      "type": "string"
                    },
                    "unit_net_price_cents": {
                      "description": "Netto-Einzelpreis in Cent",
                      "type": "integer"
                    },
                    "vat_category": {
                      "description": "USt-Kategorie (Standard S). Z=0%, E=befreit, AE=Reverse-Charge",
                      "enum": [
                        "S",
                        "Z",
                        "E",
                        "AE",
                        "K",
                        "G",
                        "O"
                      ],
                      "type": "string"
                    },
                    "vat_rate": {
                      "description": "USt-Satz in Prozent (0 bei Z/E/AE)",
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "quantity",
                    "unit_net_price_cents",
                    "vat_rate"
                  ],
                  "type": "object"
                },
                "minItems": 1,
                "type": "array"
              },
              "note": {
                "description": "Freitext-Hinweis",
                "type": "string"
              },
              "number": {
                "description": "Belegnummer",
                "minLength": 1,
                "type": "string"
              },
              "payment_means": {
                "additionalProperties": false,
                "description": "Zahlungsangaben (IBAN etc.)",
                "properties": {
                  "account_name": {
                    "description": "Kontoinhaber",
                    "type": "string"
                  },
                  "bic": {
                    "description": "BIC",
                    "type": "string"
                  },
                  "iban": {
                    "description": "IBAN des Zahlungsempfängers",
                    "type": "string"
                  },
                  "type_code": {
                    "description": "BT-81 UNTDID-4461-Code (z.B. 58 = SEPA-Überweisung)",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "payment_terms": {
                "description": "Zahlungsbedingungen (Freitext)",
                "type": "string"
              },
              "preceding_invoice": {
                "additionalProperties": false,
                "description": "Bezug auf die Ursprungsrechnung (BT-25/26) — bei Storno, Korrektur oder Gutschrift angeben",
                "properties": {
                  "date": {
                    "description": "YYYY-MM-DD",
                    "type": "string"
                  },
                  "number": {
                    "type": "string"
                  }
                },
                "required": [
                  "number"
                ],
                "type": "object"
              },
              "self_check": {
                "description": "Wenn true, wird die erzeugte Rechnung sofort gegen EN 16931 geprüft (langsamer). Standard: false.",
                "type": "boolean"
              },
              "seller": {
                "additionalProperties": false,
                "description": "Verkäufer / Rechnungssteller. Weglassen, wenn im Konto feste Absenderdaten hinterlegt sind — sie werden dann eingesetzt.",
                "properties": {
                  "city": {
                    "description": "Ort",
                    "type": "string"
                  },
                  "contact_name": {
                    "description": "Ansprechpartner",
                    "type": "string"
                  },
                  "country": {
                    "description": "ISO-3166 Alpha-2 Ländercode, Standard DE",
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string"
                  },
                  "email": {
                    "description": "E-Mail / elektronische Adresse (für XRechnung Pflicht)",
                    "type": "string"
                  },
                  "name": {
                    "description": "Firmenname / Name",
                    "minLength": 1,
                    "type": "string"
                  },
                  "phone": {
                    "description": "Telefon (Kontakt)",
                    "type": "string"
                  },
                  "street": {
                    "description": "Straße und Hausnummer",
                    "type": "string"
                  },
                  "vat_id": {
                    "description": "USt-IdNr. (z.B. DE123456789)",
                    "type": "string"
                  },
                  "zip": {
                    "description": "Postleitzahl",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              },
              "seller_logo": {
                "description": "Logo als Base64 (PNG/JPG) — nur im Pro/Ultra-Tarif",
                "type": "string"
              },
              "type_code": {
                "description": "Roher UNTDID-1001-Code (überschreibt document_type; für seltene Typen wie 875-877 Bauleistung)",
                "type": "string"
              }
            },
            "required": [
              "format",
              "number",
              "date",
              "buyer",
              "lines"
            ],
            "type": "object"
          }
        },
        {
          "name": "validation_report",
          "description": "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.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "attach_source": {
                "description": "Geprüfte Rechnung sichtbar anhängen (PDF-Seiten bzw. abgedruckter XML-Inhalt). Standard false.",
                "type": "boolean"
              },
              "file_content": {
                "description": "Base64-kodierter Inhalt der PDF- oder XML-Datei",
                "type": "string"
              },
              "file_name": {
                "description": "Dateiname, der im Bericht steht.",
                "type": "string"
              },
              "file_type": {
                "description": "Dateityp: 'pdf' für ZUGFeRD/Factur-X, 'xml' für XRechnung/CII",
                "enum": [
                  "pdf",
                  "xml"
                ],
                "type": "string"
              },
              "lang": {
                "description": "Sprache des Berichts. Standard 'de'.",
                "enum": [
                  "de",
                  "en",
                  "fr"
                ],
                "type": "string"
              }
            },
            "required": [
              "file_content",
              "file_type"
            ],
            "type": "object"
          }
        }
      ]
    },
    "name": "ZUGFeRD Validator",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": [
      {
        "registryType": "npm",
        "identifier": "zugferd-mcp-client",
        "version": "1.1.1",
        "transport": "stdio"
      }
    ],
    "pageJsonUrl": "https://www.anchorterminal.com/tools/zugferd-validator-validator.json",
    "popularity": {
      "npmWeekly": 86
    },
    "registryName": "de.zugferd-validator/validator",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://api.zugferd-validator.de/mcp"
      }
    ],
    "repository": "https://github.com/tzatti1/zugferd-validator",
    "reviewed": false,
    "slug": "zugferd-validator-validator",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=de.zugferd-validator/validator",
    "summary": "Validiert E-Rechnungen (ZUGFeRD/Factur-X, XRechnung) gegen EN 16931 mit Korrekturvorschlägen.",
    "updatedAt": "2026-07-23T12:25:23Z",
    "url": "https://www.anchorterminal.com/tools/zugferd-validator-validator",
    "vendor": "zugferd-validator.de",
    "vendorUrl": "https://zugferd-validator.de",
    "version": "1.0.2",
    "websiteUrl": "https://zugferd-validator.de",
    "where": "both",
    "why": [
      "vendor"
    ]
  }
}
