Skip to content

Invoiceer e-invoicing tools

by invoiceer.io · remote · no sign-in to list tools · v1.1.0 · published by io.invoiceer

Create and validate XRechnung, ZUGFeRD and Peppol e-invoices (KoSIT); Peppol lookup, rule help.

Changes · 3

5 tools: 3 change things and 2 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http einvoicing https://invoiceer.io/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "create_einvoice" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "create_einvoice" says "create": a word for a change.

    What this check looks for
  • The server marks "explain_rule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "explain_rule" says "explain": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

5 tools

Changes things 3Claude Code: ask
  • check_leitweg_idCheck a German Leitweg-ID (buyer reference BT-10 for invoices to German public authorities) against the official format and check digit (spec v2.0.2).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check a German Leitweg-ID (buyer reference BT-10 for invoices to German public authorities) against the official format and check digit (spec v2.0.2). Returns validity, the parts and the expected check digits.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • create_einvoiceCreate a valid e-invoice from structured data: XRechnung 3.0 (UBL or CII), ZUGFeRD / Factur-X PDF (EN 16931) or Peppol BIS Billing 3.0.1 finding

    Why it is in this group

    • The name "create_einvoice" says "create": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "create_einvoice" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "create_einvoice" says "create": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Create a valid e-invoice from structured data: XRechnung 3.0 (UBL or CII), ZUGFeRD / Factur-X PDF (EN 16931) or Peppol BIS Billing 3.0. The file is checked with the official KoSIT validator before it is returned; if it fails, you get the rule errors instead of a file. XML comes back as text in `xml`, the ZUGFeRD PDF as base64 in `pdf_base64`. XRechnung needs a seller contact (contact, phone, email), a buyer email or Peppol ID (electronic address), a buyer_reference (Leitweg-ID for German authorities) and payment details (iban). Peppol needs peppol_id for seller and buyer.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • explain_ruleExplain an e-invoice business rule code (EN 16931 BR-*, BR-CO-*, XRechnung BR-DE-*, Peppol PEPPOL-EN16931-*): official text (with an English translation for German-only rules), pla…1 finding

    Why it is in this group

    • The name "explain_rule" says "explain": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "explain_rule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "explain_rule" says "explain": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Explain an e-invoice business rule code (EN 16931 BR-*, BR-CO-*, XRechnung BR-DE-*, Peppol PEPPOL-EN16931-*): official text (with an English translation for German-only rules), plain-language meaning, severity, the fields (BT/BG) involved and a link to the reference page.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
Only reads 2Claude Code: allow
  • peppol_lookupCheck whether a company can receive e-invoices over Peppol.No findings

    Why it is in this group

    • The name "peppol_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Check whether a company can receive e-invoices over Peppol. Accepts a Peppol ID (e.g. 0208:0123456749), a VAT number (e.g. BE0123456749, NL...B01) or a Belgian enterprise number. Returns each matching participant ID, whether it is registered, whether it accepts Peppol BIS invoices, and name/country from the Peppol Directory when published.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • validate_einvoiceValidate an e-invoice (XRechnung UBL/CII, ZUGFeRD / Factur-X PDF, Peppol BIS Billing 3.0, EN 16931) with the official KoSIT validator.No findings

    Why it is in this group

    • The name "validate_einvoice" says "validate": a word for reading.
    Description, as the server wrote it
    Validate an e-invoice (XRechnung UBL/CII, ZUGFeRD / Factur-X PDF, Peppol BIS Billing 3.0, EN 16931) with the official KoSIT validator. Returns valid/invalid, the detected format, every error and warning with its rule code, and the exact corrected value for common calculation errors. Pass the XML as text in `xml`, or a PDF/XML file base64-encoded in `file_base64`. Max 5 MB.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http einvoicing https://invoiceer.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__einvoicing__validate_einvoice",
      "mcp__einvoicing__peppol_lookup"
    ],
    "ask": [
      "mcp__einvoicing__check_leitweg_id",
      "mcp__einvoicing__create_einvoice",
      "mcp__einvoicing__explain_rule"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as einvoicing. Review it before you use it.