{
  "data": {
    "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"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/zugferd-validator-validator",
    "json": "https://www.anchorterminal.com/tools/zugferd-validator-validator.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/zugferd-validator-validator.md",
    "slim": "https://www.anchorterminal.com/tools/zugferd-validator-validator.min.md"
  },
  "markdown": "# ZUGFeRD Validator\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by zugferd-validator.de (https://zugferd-validator.de)\n- Listed because: It's published in the registry under zugferd-validator.de, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Validiert E-Rechnungen (ZUGFeRD/Factur-X, XRechnung) gegen EN 16931 mit Korrekturvorschlägen.\n\n## Facts\n\n- MCP registry: `de.zugferd-validator/validator` 1.0.2\n- Endpoint: https://api.zugferd-validator.de/mcp (streamable HTTP)\n- Package: npm `zugferd-mcp-client` (stdio)\n- Source: https://github.com/tzatti1/zugferd-validator\n- Website: https://zugferd-validator.de\n- npm downloads a week: 86\n- Registry entry updated: 2026-07-23\n\n## Tools\n\n- Tools it lists (5, about 2,238 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-04 22:24 UTC):\n  - `validate_invoice`: Validiert eine E-Rechnung (ZUGFeRD/Factur-X PDF oder XRechnung XML) gegen EN 16931 und gibt strukturierte Ergebnisse mit Korrekturvorschlägen zurück.\n  - `extract_xml`: Extrahiert die eingebettete XML-Datei aus einem ZUGFeRD/Factur-X PDF.\n  - `check_consistency`: Prüft ob die sichtbaren PDF-Daten mit den eingebetteten XML-Daten übereinstimmen.\n  - `create_invoice`: Erstellt aus strukturierten Daten eine valide E-Rechnung — entweder als ZUGFeRD-PDF (PDF/A-3 mit eingebettetem XML) oder als reines XRechnung-XML (mit…\n  - `validation_report`: 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…\n- How its tools read to an agent (0 errors, 7 warnings, 1 note, about 2,238 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC15 create_invoice: inputSchema uses $ref/$defs\n  - warn TC16 check_consistency: no readOnlyHint or destructiveHint\n  - warn TC16 create_invoice: no readOnlyHint or destructiveHint\n  - warn TC16 extract_xml: no readOnlyHint or destructiveHint\n  - warn TC16 validate_invoice: no readOnlyHint or destructiveHint\n  - warn TC16 validation_report: no readOnlyHint or destructiveHint\n  - warn TC22 create_invoice: the definition is about 1,521 tokens\n  - note TC24 server: 5 of 5 tools have no outputSchema\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/zugferd-validator-validator.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "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"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "ZUGFeRD Validator",
        "url": ""
      }
    ],
    "description": "ZUGFeRD Validator, an MCP server by zugferd-validator.de, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Validiert E-Rechnungen (ZUGFeRD/Factur-X, XRechnung) gegen EN 16931 mit Korrekturvorschlägen.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "ZUGFeRD Validator",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/zugferd-validator-validator",
    "published": "",
    "section": "indexed",
    "title": "ZUGFeRD Validator: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/tools/zugferd-validator-validator"
  },
  "tokens": {
    "markdown": 850,
    "slim": 780
  },
  "version": 1
}
