Skip to main content
Glama

finisma – ZUGFeRD e-invoices

Server Details

Verify ZUGFeRD/Factur-X e-invoices, convert PDF invoices to ZUGFeRD, check VAT IDs and Peppol.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct action and object: two lookups (Peppol participant, VAT ID) with clearly different domains, a create, an extract, a verify, and an upload-link helper. The two 'check_' tools could superficially overlap, but descriptions make the Peppol-vs-VIES distinction explicit, so an agent can always pick correctly.

Naming Consistency5/5

All six names follow a clean verb_noun snake_case pattern: check_peppol_participant, check_vat_id, create_zugferd, extract_invoice, request_upload_link, verify_zugferd. Verb choice maps directly to the action (check/create/extract/verify/request).

Tool Count5/5

Six tools form a tight, well-scoped e-invoice workflow (validate counterparties, upload, extract, create, verify) with no redundant or filler tools. The count is proportionate to a focused domain.

Completeness4/5

The set covers the full pipeline: partner/VAT validation, PDF intake, data extraction, ZUGFeRD generation, and verification. Minor gaps exist (no way to list/retrieve previously created invoices or check job status), but core CRUD-style lifecycle for the domain is covered and agents can work around the rest.

Available Tools

6 tools
check_peppol_participantPeppol-Erreichbarkeit prüfenA
Read-onlyIdempotent
Inspect

Prüft per SML/SMP-Lookup, ob ein Geschäftspartner im Peppol-Netz erreichbar ist, und listet seine registrierten Dokumenttypen. Akzeptiert eine volle Kennung ("0088:4399901550926"), eine nackte GLN, eine deutsche USt-IdNr. oder eine Leitweg-ID. registered:false ist ein normales Ergebnis, kein Fehler. Kostenlos.

ParametersJSON Schema
NameRequiredDescriptionDefault
participantYesKennung des Partners: volle Peppol-Kennung ("0088:4399901550926"), nackte GLN, deutsche USt-IdNr. ("DE123456789") oder Leitweg-ID ("991-33333TEST-33").

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoName laut Peppol Directory, falls gelistet
inputYes
valueYes
cachedYes
schemeYes
checkedAtYesZeitpunkt der echten Prüfung (ISO 8601)
registeredYes
countryCodeNo
documentTypesYesregistrierte Dokumenttypen laut SMP (leer bei registered:false)
participantIdYesvolle Kennung inkl. Meta-Schema, z. B. "iso6523-actorid-upis::0088:4399901550926"

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it names the underlying SML/SMP lookup mechanism, clarifies that registered:false is a normal result rather than an error (a real gotcha for retry logic), and notes the call is free.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly-packed sentences with the purpose front-loaded, followed by accepted input forms and the key behavioral caveat. Every sentence earns its place with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation; the description still adds the important normal-result semantics around registered:false. For a single-parameter, read-only lookup, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the participant parameter's accepted formats are already documented and the description largely mirrors them (full Peppol identifier, bare GLN, German VAT ID, Leitweg-ID). No additional semantics such as normalization or fallback behavior are added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: SML/SMP lookup to check whether a partner is reachable in the Peppol network, plus a secondary output (registered document types). This is clearly distinct from sibling check_vat_id, which validates a VAT number rather than network reachability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied — you'd call this to verify a partner before sending a Peppol document — but the description never states when to use this versus the closely related check_vat_id sibling, nor any prerequisites or exclusions. The implied context is clear, but no explicit routing guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_vat_idUSt-IdNr. prüfen (VIES)A
Read-onlyIdempotent
Inspect

Prüft eine USt-IdNr. live gegen VIES (EU-Bestätigungsverfahren): Gültigkeit plus Firmenname, sofern der Mitgliedsstaat ihn herausgibt. Antwort-Status ist valid, invalid oder unavailable (VIES nicht erreichbar — keine Aussage). Kostenlos.

ParametersJSON Schema
NameRequiredDescriptionDefault
vat_idYesDie zu prüfende USt-IdNr. mit Länderpräfix, z. B. "DE325821677" oder "ATU12345675". Leerzeichen, Punkte und Bindestriche werden toleriert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoFirmenname laut Mitgliedsstaat, oft nicht herausgegeben
vatIdYesnormalisierte Nummer, wie geprüft wurde
cachedYes
statusYes
checkedAtYesZeitpunkt der echten Prüfung (ISO 8601)
countryCodeYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Die Beschreibung geht über die Annotationen hinaus: Sie erklärt das Antwortformat (valid, invalid, unavailable), die Live-Abfrage bei VIES und dass VIES nicht erreichbar sein kann. Das ist wertvolle Information, die nicht in den Annotationen steht. Allerdings fehlen Details zu Rate-Limits oder Fehlerbehandlung.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Die Beschreibung ist kompakt und front-loaded: Kernaussage zuerst, dann Details zum Status und der Kosten. Es gibt keine überflüssigen Sätze.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Für ein Tool mit einem Parameter, vollständiger Schema-Beschreibung und Output-Schema ist die Beschreibung ausreichend. Sie erklärt den Rückgabestatus und den externen Dienst. Es fehlt der Hinweis, dass die Prüfung live erfolgt und daher Latenz auftreten kann, aber das ist angesichts der Annotationen (idempotent, readOnly) und des Output-Schemas vertretbar.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Der Parameter vat_id ist im Schema vollständig beschrieben (100% Abdeckung), sodass die Beschreibung keine zusätzlichen semantischen Informationen liefert. Sie wiederholt lediglich, dass eine USt-IdNr. geprüft wird.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Der Beschreibung nennt klar das Verb und die Ressource ('Prüft eine USt-IdNr. live gegen VIES') und grenzt damit die Funktion von den Geschwistertools ab. Allerdings wird nicht explizit erwähnt, dass es sich um eine externe, kostenlose Prüfung handelt, was die Abgrenzung verbessern würde.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Es wird impliziert, wann das Tool zu nutzen ist (Prüfung einer USt-IdNr.), aber es fehlen explizite Hinweise, wann es nicht zu verwenden ist oder welche Alternativen es gibt. Geschwistertools wie check_peppol_participant werden nicht erwähnt.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_zugferdZUGFeRD-Rechnung erzeugenA
Idempotent
Inspect

Erzeugt eine ZUGFeRD-PDF aus visueller PDF und strukturierten EN-16931-Daten (kein LLM). Verletzen die Daten EN-16931-Geschäftsregeln, liefert der Remote-Kanal (Chat-Connector) strukturierte Issues statt einer Datei zurück — invoice korrigieren (siehe extract_invoice) und mit denselben Quelldaten (upload_id/pdf_base64) erneut aufrufen. Ohne aktives Abo kostenlos mit Konto (API-Key): die PDF trägt dann das finisma-Prüfsiegel als Wasserzeichen, standardmäßig bis zu 5 Rechnungen pro Tag; mit Abo ohne Wasserzeichen und ohne Tageslimit. Rabatte und Zuschläge je Position (lines[].allowanceCharges) dürfen als Prozentsatz ohne Betrag kommen: amount = round2(Menge × unitPriceNet × percent / 100); ebenso auf die ganze Rechnung (allowanceCharges): Grundbetrag ohne Angabe ist die Summe der lineNetAmount mit ratePercent. lineNetAmount, vatBreakdown und die Summen muss der Aufrufer mit diesen Beträgen rechnen. Für öffentliche Auftraggeber erzeugt invoice.profile='xrechnung' eine XRechnung 3.0 (nur als reines XML über die REST-API mit format=xml; Pflichten: Leitweg-ID in buyerReference, Verkäufer-Kontakt mit Telefon und E-Mail, payment, electronicAddress beider Parteien).

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceYesStrukturierte Rechnungsdaten nach EN 16931 (wird gegen Schema und Geschäftsregeln geprüft).
filenameNoDateiname der erzeugten Rechnung (Standard: invoice.pdf).
upload_idNoReferenz auf eine zuvor über request_upload_link hochgeladene Datei, anstelle von pdf_base64. Genau eines von beiden angeben.
pdf_base64NoDie visuelle Rechnungs-PDF, Base64-kodiert (max. 25 MB). In sie wird das CII-XML eingebettet. Alternativ 'upload_id' angeben. Chat-Clients, die eine angehängte Datei nicht zuverlässig als Base64 übergeben können, rufen zuerst request_upload_link auf.
attachmentsNoOptionale Anhänge (z. B. Stundennachweise). Erlaubt: PDF, PNG, JPEG, CSV, XLSX, ODS, XML; je max. 10 MB.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bytesNoGröße der erzeugten PDF in Bytes.
issuesNoNur gesetzt, wenn die übergebenen Rechnungsdaten EN-16931-Geschäftsregeln verletzen: es wurde keine Datei erzeugt (Korrekturschleife, T20). Felder anhand der Issues korrigieren und create_zugferd mit denselben Quelldaten (upload_id/pdf_base64) und dem korrigierten invoice erneut aufrufen.
expires_atNoISO-8601-Zeitpunkt, ab dem download_url verfällt (nur mit download_url gesetzt).
pdf_base64NoDie erzeugte ZUGFeRD-Rechnung (PDF/A-3 mit eingebettetem CII-XML). Nur gesetzt, wenn die Eingabe als 'pdf_base64' kam; wurde 'upload_id' verwendet, steht stattdessen download_url im Ergebnis.
watermarkedNotrue, wenn die PDF aus dem kostenlosen Tageskontingent stammt und das finisma-Prüfsiegel als Wasserzeichen trägt (Aufruf ohne aktives Abo).
download_urlNoKurzlebiger Download-Link zur erzeugten PDF. Nur gesetzt, wenn die Eingabe als 'upload_id' kam (Chat-Client-Fallback).

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations: discloses that structured issues are returned instead of a file on rule violations, describes watermark and daily limit without subscription, specifies percentage calculation rules for allowances/charges, and details XRechnung output constraints (pure XML via REST API, required fields). This is rich behavioral context for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded with purpose, then structured into error handling, subscription limits, calculation rules, and XRechnung specifics. Every sentence carries useful information, though the length is substantial; for a complex tool this is justified and no major redundancy appears.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description need not explain return values, but it still covers error returns (structured issues), rate limits, watermark behavior, calculation rules, and XRechnung requirements. An agent has enough information to invoke the tool correctly and interpret failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage the baseline is 3, but the description adds critical semantics: it explains how allowanceCharges amounts may be omitted when percent is set, gives the formula amount = round2(Menge × unitPriceNet × percent / 100), and clarifies that lineNetAmount, vatBreakdown and totals must be computed by the caller. It also names required XRechnung fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb and resource: 'Erzeugt eine ZUGFeRD-PDF aus visueller PDF und strukturierten EN-16931-Daten (kein LLM).' This clearly distinguishes it from siblings like extract_invoice (extraction) and verify_zugferd (verification).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the retry workflow when EN-16931 business rules are violated, mentions extract_invoice as the correction counterpart, and gives conditional guidance (subscription status, profile='xrechnung' for public sector). It lacks explicit when-not-to-use or full alternative routing, but provides strong context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_invoiceRechnungsdaten aus PDF auslesenAInspect

Extrahiert EN-16931-Rechnungsdaten aus einer hochgeladenen PDF (Formularfelder) plus Validierungs-Issues, als Korrekturschritt vor create_zugferd: Felder und Issues dem Nutzer zeigen, korrigieren lassen, danach create_zugferd mit dem korrigierten invoice und derselben upload_id aufrufen. Unsichere Felder stehen als Platzhalter 'KORRIGIEREN' (Text) bzw. '1900-01-01' (Datum) drin und werden als Issue mit Code EXTRACTION_UNCERTAIN gemeldet — diese Felder müssen vor create_zugferd korrigiert werden. Enthält die PDF bereits eine eingebettete E-Rechnung (ZUGFeRD/Factur-X), kommen die Felder deterministisch aus der XML (source='xml') statt aus einer Sprachmodell-Lesung des Druckbilds. Erfordert ein Konto mit aktivem Abo oder Guthaben.

ParametersJSON Schema
NameRequiredDescriptionDefault
upload_idNoReferenz auf eine zuvor über request_upload_link hochgeladene Datei, anstelle von pdf_base64. Genau eines von beiden angeben. Wird im Ergebnis erneut zurückgegeben und kann anschließend bei create_zugferd als 'upload_id' verwendet werden, damit dieselbe Quell-PDF eingebettet wird.
pdf_base64NoDie zu extrahierende PDF-Rechnung, Base64-kodiert (max. 25 MB). Alternativ 'upload_id' angeben. Chat-Clients, die eine angehängte Datei nicht zuverlässig als Base64 übergeben können, rufen zuerst request_upload_link auf.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceYesHerkunft der Felder: 'xml' = deterministisch aus der in der PDF eingebetteten E-Rechnung übernommen, 'llm' = per Sprachmodell aus dem Druckbild extrahiert.
invoiceYesExtrahierte EN-16931-Rechnungsdaten (Formularfelder). Vor create_zugferd prüfen und korrigieren, insbesondere Felder mit dem Wert 'KORRIGIEREN' bzw. '1900-01-01'.
upload_idYesBei create_zugferd als 'upload_id' übergeben, damit dieselbe Quell-PDF eingebettet wird.
expires_atYesISO-8601-Zeitpunkt, ab dem upload_id verfällt. Danach erneut request_upload_link und extract_invoice aufrufen.
validation_issuesYesOffene Probleme der extrahierten Daten. severity='error' blockiert create_zugferd (dort wird dieselbe Prüfung erneut ausgeführt), 'warning' nicht.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply the generic profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true, destructiveHint=false), while the description adds real operational context: uncertain fields are emitted as 'KORRIGIEREN'/'1900-01-01' placeholders flagged with issue code EXTRACTION_UNCERTAIN, the XML path sets source='xml', and the call requires an active subscription or credit. That is meaningful disclosure beyond the structured fields, and it does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and the correction workflow, and nearly every clause carries new information (placeholders, issue code, XML fallback, billing requirement). It is a dense multi-clause construction rather than a tight set of sentences, which costs a point but not readability of the core intent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose, and the description still covers the workflow, the sentinel-value/error semantics, the source-of-truth branch, and the account prerequisite. For a two-parameter extraction tool with annotations and an output schema, nothing an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so upload_id vs pdf_base64, the base64/25 MB constraint, and the mutual exclusivity are already fully documented in the schema. The description reinforces the upload_id reuse across create_zugferd but adds little syntax or format meaning beyond it, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource: extraction of EN-16931 invoice data plus validation issues from an uploaded PDF. It also distinguishes itself from sibling create_zugferd by positioning itself as the correction step that precedes it, so an agent can place it in the pipeline without opening another schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit ordered workflow: extract, show fields and issues to the user, let them correct, then call create_zugferd with the corrected invoice and the same upload_id. It also defines a condition branch (embedded ZUGFeRD/Factur-X XML vs. LLM reading of the print image), leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_zugferdE-Rechnung prüfenA
Read-onlyIdempotent
Inspect

Prüft eine ZUGFeRD-/Factur-X-PDF: Struktur, EN-16931-Regeln, PDF/A-3-Anhänge.

ParametersJSON Schema
NameRequiredDescriptionDefault
upload_idNoReferenz auf eine zuvor über request_upload_link hochgeladene Datei, anstelle von pdf_base64. Genau eines von beiden angeben.
pdf_base64NoDie zu prüfende PDF-Datei, Base64-kodiert (max. 25 MB). Alternativ 'upload_id' angeben. Chat-Clients, die eine angehängte Datei nicht zuverlässig als Base64 übergeben können, rufen zuerst request_upload_link auf.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pdfa3NoPDF/A-3-Anbindung der eingebetteten Dateien (ISO 19005-3 §6.8).
en16931NoEN-16931-Prüfung; null, wenn keine XML eingebettet war.
structureYesStrukturelle Prüfung der PDF (ohne die eingebettete XML).
attachmentsYesIm CII referenzierte Anhänge (BT-125).
authoritativeYesAutoritative Prüfung: PDF/A-Konformität (ISO 19005-3), XML-Syntax (XSD) und Geschäftsregeln des erkannten Profils. available=false, wenn der Validator-Service nicht erreichbar war; das Ergebnis basiert dann nur auf der Schnellprüfung.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful information beyond that by disclosing the depth of validation performed (structure, EN 16931 rule conformance, PDF/A-3 attachment checks), which tells the agent what a positive or negative result means.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler: verb, resource, and scope in order of importance. It is arguably thinner than a multi-step validation tool warrants, but nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not explain return values, and annotations plus full schema coverage handle safety and inputs, so the remaining burden is small. The one real gap is task routing – nothing tells the agent when to prefer this over extract_invoice – which keeps it short of a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% – both upload_id and pdf_base64 are documented in the schema, including the 'exactly one of the two' constraint and the 25 MB limit. The description adds no parameter detail of its own, so the baseline of 3 for schema-driven parameters applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Prüft') and a precise resource ('ZUGFeRD-/Factur-X-PDF') and enumerates the validation scope (Struktur, EN-16931-Regeln, PDF/A-3-Anhänge), so an agent immediately knows this is a validator, not a generator or extractor. It does not, however, distinguish itself from siblings like extract_invoice or create_zugferd by naming them or contrasting scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The only routing hint in the whole definition lives in the schema for pdf_base64 (call request_upload_link first for chat clients), not in the description itself, so an agent gets no help choosing between this and extract_invoice or create_zugferd.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedcheck_peppol_participant
    • First observedcheck_vat_id
    • First observedcreate_zugferd
    • First observedextract_invoice
    • First observedrequest_upload_link
    • First observedverify_zugferd

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Validates electronic invoices (XRechnung, ZUGFeRD, Factur-X, Peppol BIS, etc.) against authority-pinned rules and explains failures.
    2
    208 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants and agents to create, validate, read and convert German and EU e-invoices in ZUGFeRD, XRechnung and Factur-X formats, including extracting structured data from scanned or PDF invoices and embedding XML into PDF/A-3 files. It can run as a hosted remote server or locally, with each request authenticated by the caller's own API token.
    10
    156 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for DACH 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
    74 npm
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources