Skip to main content
Glama
Mavengence

einvoice-mcp

by Mavengence

einvoice_generate_zugferd

Idempotent

Generate a ZUGFeRD hybrid PDF invoice with embedded CII-XML to meet EN 16931 e-invoice compliance requirements.

Instructions

Erstellt eine ZUGFeRD-Hybrid-PDF (visuelle PDF + eingebettetes CII-XML).

Args: invoice_id: Rechnungsnummer. issue_date: Rechnungsdatum (YYYY-MM-DD). seller_name: Name des Verkäufers. seller_street: Straße des Verkäufers. seller_city: Stadt des Verkäufers. seller_postal_code: PLZ des Verkäufers. seller_country_code: Land des Verkäufers. seller_tax_id: USt-IdNr. des Verkäufers. buyer_name: Name des Käufers. buyer_street: Straße des Käufers. buyer_city: Stadt des Käufers. buyer_postal_code: PLZ des Käufers. buyer_country_code: Land des Käufers. items: JSON-Array der Positionen. seller_street_2: Adresszeile 2 des Verkäufers (BT-36). seller_street_3: Adresszeile 3 des Verkäufers (BT-37). seller_country_subdivision: Bundesland Verkäufer (BT-39, z.B. 'BY'). buyer_street_2: Adresszeile 2 des Käufers (BT-51). buyer_street_3: Adresszeile 3 des Käufers (BT-52). buyer_country_subdivision: Bundesland Käufer (BT-54, z.B. 'NW'). buyer_tax_id: USt-IdNr. des Käufers (optional). currency: Währungscode (Standard: EUR). payment_terms_days: Zahlungsziel in Tagen (optional). leitweg_id: Leitweg-ID (optional). buyer_reference: Käuferreferenz BT-10 (optional). profile: Rechnungsprofil. seller_electronic_address: Elektronische Adresse (BT-34). seller_electronic_address_scheme: EAS-Code (EM/9930). buyer_electronic_address: Elektronische Adresse (BT-49). buyer_electronic_address_scheme: EAS-Code (EM/9930). seller_contact_name: Ansprechpartner (BT-41). seller_contact_email: E-Mail (BT-43). seller_contact_phone: Telefon (BT-42). buyer_contact_name: Ansprechpartner Käufer (BT-44). buyer_contact_email: E-Mail Käufer (BT-47). buyer_contact_phone: Telefon Käufer (BT-46). seller_iban: IBAN (BT-84). seller_bic: BIC (BT-86). seller_bank_name: Bankname. type_code: Rechnungsart (BT-3): 380/381/384. seller_tax_number: Steuernummer (BT-32). delivery_party_name: Lieferort Name (BT-70). delivery_street: Lieferort Straße (BT-75). delivery_city: Lieferort Stadt (BT-77). delivery_postal_code: Lieferort PLZ (BT-78). delivery_country_code: Lieferort Land (BT-80). delivery_date: Lieferdatum (BT-71). service_period_start: Leistungszeitraum Beginn (BT-73). service_period_end: Leistungszeitraum Ende (BT-74). due_date: Fälligkeitsdatum (BT-9, YYYY-MM-DD). invoice_note: Freitext-Bemerkung (BT-22). payment_terms_text: Zahlungsbedingungen (BT-20). purchase_order_reference: Bestellnummer (BT-13). sales_order_reference: Auftragsbestätigung (BT-14). contract_reference: Vertragsnummer (BT-12). project_reference: Projektreferenz (BT-11). preceding_invoice_number: Vorige Rechnungsnr. (BT-25). preceding_invoice_date: Datum der vorigen Rechnung (BT-26, YYYY-MM-DD). despatch_advice_reference: Lieferscheinnummer (BT-16). invoiced_object_identifier: Abrechnungsobjekt (BT-18). business_process_type: Geschäftsprozesstyp (BT-23). seller_registration_id: Handelsregister/GLN (BT-29). buyer_registration_id: GLN des Käufers (BT-46). buyer_iban: IBAN des Käufers (BT-91, SEPA-Lastschrift). mandate_reference_id: SEPA-Mandatsreferenz (BT-89). skonto_percent: Skonto-Prozentsatz (z.B. "2.00"). skonto_days: Skonto-Frist in Tagen. skonto_base_amount: Skonto-Basisbetrag (optional). payment_means_type_code: Zahlungsart (BT-81, Standard 58). remittance_information: Verwendungszweck (BT-83). allowances_charges: JSON-Array der Zu-/Abschläge (BG-20/BG-21). tax_exemption_reason: Befreiungsgrund Text (BT-120). tax_exemption_reason_code: Befreiungsgrund Code (BT-121). tender_or_lot_reference: Vergabe-/Losnummer (BT-17). seller_trading_name: Handelsname Verkäufer (BT-28). buyer_trading_name: Handelsname Käufer (BT-45). payee_name: Zahlungsempfänger Name (BT-59). payee_id: Kennung des Zahlungsempfängers (BT-60). payee_legal_registration_id: Handelsregister (BT-61). payment_card_pan: Kartennummer letzte Stellen (BT-87). payment_card_holder: Karteninhaber (BT-88). seller_tax_rep_name: Steuervertreter Name (BT-62). seller_tax_rep_street: Steuervertreter Straße (BT-64). seller_tax_rep_city: Steuervertreter Stadt. seller_tax_rep_postal_code: Steuervertreter PLZ. seller_tax_rep_country_code: Steuervertreter Land. seller_tax_rep_tax_id: Steuervertreter USt-IdNr. (BT-63). receiving_advice_reference: Wareneingangsreferenz (BT-15). delivery_location_id: Lieferort-Kennung (BT-71). payment_means_text: Zahlungsart Freitext (BT-82). supporting_documents: JSON-Array Belegdokumente (BG-24). prepaid_amount: Bereits gezahlter Betrag (BT-113, z.B. Abschlagszahlungen). vat_point_date_code: Steuerzeitpunkt-Code (BT-8, UNTDID 2005). 3=Rechnungsdatum, 35=Lieferdatum, 432=Zahlungsdatum. seller_additional_legal_info: Zusaetzliche rechtl. Info (BT-33). creditor_reference_id: Glaeubigeridentifikationsnr. (BT-90). buyer_accounting_reference: Kontierung Kaeufer (BT-19).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes
profileNoZUGFERD_EN16931
currencyNoEUR
due_dateNo
payee_idNo
type_codeNo380
buyer_cityYes
buyer_ibanNo
buyer_nameYes
invoice_idYes
issue_dateYes
leitweg_idNo
payee_nameNo
seller_bicNo
seller_cityYes
seller_ibanNo
seller_nameYes
skonto_daysNo
buyer_streetYes
buyer_tax_idNo
invoice_noteNo
delivery_cityNo
delivery_dateNo
seller_streetYes
seller_tax_idYes
buyer_street_2No
buyer_street_3No
prepaid_amountNo
skonto_percentNo
buyer_referenceNo
delivery_streetNo
seller_street_2No
seller_street_3No
payment_card_panNo
seller_bank_nameNo
buyer_postal_codeYes
project_referenceNo
seller_tax_numberNo
allowances_chargesNo
buyer_contact_nameNo
buyer_country_codeYes
buyer_trading_nameNo
contract_referenceNo
payment_means_textNo
payment_terms_daysNo
payment_terms_textNo
seller_postal_codeYes
service_period_endNo
skonto_base_amountNo
buyer_contact_emailNo
buyer_contact_phoneNo
delivery_party_nameNo
payment_card_holderNo
seller_contact_nameNo
seller_country_codeYes
seller_tax_rep_cityNo
seller_tax_rep_nameNo
seller_trading_nameNo
vat_point_date_codeNo
delivery_location_idNo
delivery_postal_codeNo
mandate_reference_idNo
seller_contact_emailNo
seller_contact_phoneNo
service_period_startNo
supporting_documentsNo
tax_exemption_reasonNo
business_process_typeNo
buyer_registration_idNo
creditor_reference_idNo
delivery_country_codeNo
sales_order_referenceNo
seller_tax_rep_streetNo
seller_tax_rep_tax_idNo
preceding_invoice_dateNo
remittance_informationNo
seller_registration_idNo
payment_means_type_codeNo58
tender_or_lot_referenceNo
buyer_electronic_addressNo
preceding_invoice_numberNo
purchase_order_referenceNo
buyer_country_subdivisionNo
despatch_advice_referenceNo
seller_electronic_addressNo
tax_exemption_reason_codeNo
buyer_accounting_referenceNo
invoiced_object_identifierNo
receiving_advice_referenceNo
seller_country_subdivisionNo
seller_tax_rep_postal_codeNo
payee_legal_registration_idNo
seller_tax_rep_country_codeNo
seller_additional_legal_infoNo
buyer_electronic_address_schemeNoEM
seller_electronic_address_schemeNoEM

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior3/5

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

Annotations declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds that the tool creates a hybrid PDF with embedded CII-XML, which is useful behavioral context. However, it does not disclose behaviors such as validation failures, file output handling, or side effects beyond the annotations. It avoids contradicting 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?

The description is appropriately structured: a one-sentence purpose statement followed by an 'Args:' list. Every parameter earns a line because the schema lacks descriptions. It is long due to the tool's 96 parameters, but not verbose or redundant, making it efficient for the complexity involved.

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?

For a tool with 96 parameters, an existing output schema, and annotations, the description covers the core purpose and all parameter semantics thoroughly. It does not explain when to use ZUGFeRD vs. XRechnung or describe profile options in depth, but the output schema covers return values and the parameter details are nearly exhaustive. Minor gaps remain in usage context and behavioral edge cases.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries full responsibility for parameter understanding. It provides a comprehensive list of all 96 parameters with German explanations, BT-code mappings, and examples (e.g., type_code '380/381/384', vat_point_date_code values). This adds significant meaning beyond the schema's bare property titles and defaults.

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?

The first sentence states the exact purpose with a specific verb and resource: 'Erstellt eine ZUGFeRD-Hybrid-PDF (visuelle PDF + eingebettetes CII-XML).' This clearly distinguishes it from sibling tools like einvoice_generate_xrechnung and einvoice_validate_* by naming the output format (ZUGFeRD) and its hybrid nature.

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?

The description implies its use case: generating a ZUGFeRD invoice. However, it does not explicitly state when to choose this tool over alternatives (e.g., einvoice_generate_xrechnung) or provide any exclusion criteria. No explicit when-to-use/when-not-to-use guidance is given, but the tool name and purpose make the primary scenario clear.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mavengence/einvoice-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server