Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Kontor MCP

von DashankaNadeeshanDeSilvaVersion 1.0.4i★ –iLäuft auf deinem Computer
Name in der Registryio.github.DashankaNadeeshanDeSilva/kontor-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Offline e-invoice tools for AI agents: validate, audit, convert and generate XRechnung/ZUGFeRD.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio, Streamable HTTP
  • Kategorie: Buchhaltung, Finanzen & Steuern

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: KONTOR_MAX_FILE_MB, KONTOR_LANG_DEFAULT

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "kontor": {
      "command": "npx",
      "args": [
        "-y",
        "@kontor-mcp/server"
      ],
      "env": {
        "KONTOR_MAX_FILE_MB": "your-value",
        "KONTOR_LANG_DEFAULT": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add kontor --env KONTOR_MAX_FILE_MB=your-value --env KONTOR_LANG_DEFAULT=your-value -- npx -y @kontor-mcp/server

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "kontor": {
      "command": "npx",
      "args": [
        "-y",
        "@kontor-mcp/server"
      ],
      "env": {
        "KONTOR_MAX_FILE_MB": "your-value",
        "KONTOR_LANG_DEFAULT": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "kontor": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@kontor-mcp/server"
      ],
      "env": {
        "KONTOR_MAX_FILE_MB": "your-value",
        "KONTOR_LANG_DEFAULT": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • KONTOR_MAX_FILE_MB env
    Maximum input file size in MB (default 20)
  • KONTOR_LANG_DEFAULT env
    Default language for explanations: de or en

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto DashankaNadeeshanDeSilva bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Buchhaltung, Finanzen & Steuerni

  • Mehr Sterne als 0 % der anderen 2933 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 30 % der anderen 2933 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 2933 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Kontor MCP sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.0.4) kam vor 2 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js, Docker auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Finance Toolkit, SolidInvoice, Korea Tax Calculator

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Finance Toolkit

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

von JerBoumaWeit verbreitet↓ 15.541/Wo.★ 5496Aktualisiert gestern

Computer oder Cloud

SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

von SolidInvoiceWachsend★ 981Aktualisiert vor 9 Tagen

Läuft in der Cloud✓ solidinvoice.co

Korea Tax Calculator

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

von UpstageAIWachsend↓ 3172/Wo.★ 97Aktualisiert vorgestern

Läuft auf deinem Computer

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

Kontor MCP

The sovereign e-invoice toolkit for AI agents. Official XRechnung / EN 16931 validation, ZUGFeRD in *and* out, 100 % offline, zero API keys.

Kontor MCP is a local, offline toolbox that lets AI assistants (Claude Desktop, Claude Code, any MCP client) handle German/EU e-invoices: XRechnung and ZUGFeRD/Factur-X under EN 16931. It can read an invoice (bare XML or XML embedded in a PDF), check it against the official KoSIT / EN 16931 rulebooks, explain cryptic errors in German or English, create valid new invoices (XML or ZUGFeRD PDF/A-3), convert between formats, and tell a business which legal obligations apply. The key promise is sovereignty: no cloud, no API keys, no network calls, no Java at runtime — proven by tests.

Why it matters: since 2025 every German business must be able to *receive* e-invoices, and from 2027/2028 must *issue* them. An e-invoice is validated XML, not a PDF, and a failed rule can cost the input-VAT deduction. Invoices carry personal and bank data, so they should be checked where they live — on your machine — with the same rule sets the public-sector receivers use.

*Claude Desktop with the kontor server: validate → BR-DE-15 (missing Leitweg-ID) with fix hint · parse a ZUGFeRD PDF · explain BR-DE-18. MP4*

v1.0 — 8 tools · 4 resource families · 3 prompts · KoSIT conformance 89/89 enforced as a CI gate · ZUGFeRD PDF/A-3 output verified by veraPDF and Mustang · stdio and Streamable HTTP (bearer auth) · Docker image (amd64/arm64) · kontor-agent reference client · listed in the Official MCP Registry. Install with npx, Docker, or from source.

Why

  • Official rules, not approximations. The KoSIT XRechnung Schematron and the CEN EN 16931 rules run unmodified (compiled to XSLT/SEF, executed with Saxon-JS) with the KoSIT scenario model — the same verdicts the public-sector receivers produce, proven file-by-file against the official validator.
  • Sovereign by construction. Pure TypeScript/WASM, no Java at runtime, no network calls, nothing stored, nothing logged. Runs where the invoices are.
  • Agent-native. Every tool returns structured content *and* a readable summary; findings carry DE/EN explanations, affected business terms and fix hints; generation is fail-honest (valid is the real verdict, never assumed).
  • ZUGFeRD both ways. Read the embedded XML out of any ZUGFeRD/Factur-X PDF; write PDF/A-3 invoices with factur-x.xml that pass veraPDF and Mustang.

Five-minute quickstart

Requires Node ≥ 20. Everything — rules, schemas, code lists, fonts — ships inside the npm package; no downloads at runtime, no Java.

Install pathCommand
npx (zero-config stdio)npx -y @kontor-mcp/server
Docker (Streamable HTTP, token required)docker run -d -p 127.0.0.1:3333:3333 -e KONTOR_AUTH_TOKEN=… ghcr.io/dashankanadeeshandesilva/kontor-mcp
Reference clientnpx -y -p @kontor-mcp/client kontor-agent audit invoice.xml
From sourcegit clone … && pnpm install && pnpm build → node packages/server/dist/bin.js

Claude Desktop — Settings → Developer → Edit Config, then quit (⌘Q) and reopen:

{

"mcpServers": { "kontor": { "command": "npx", "args": ["-y", "@kontor-mcp/server"] } } }

(From a source checkout use "command": "node", "args": ["/absolute/path/to/kontor-mcp/packages/server/dist/bin.js"] instead.)

Claude Code:

claude mcp add kontor -- npx -y @kontor-mcp/server

Now audit a sample invoice. Ask Claude:

Audit /absolute/path/to/kontor-mcp/packages/server/samples/broken-missing-buyer-reference.xml — is it valid?

You get a verdict (invalid), the finding BR-DE-15 (missing buyer reference / Leitweg-ID) with an explanation and fix hint, the recomputed totals and VAT breakdown, and a *reject* recommendation with its rationale. Then try a ZUGFeRD PDF:

What is in /absolute/path/to/kontor-mcp/packages/server/samples/generated-zugferd-en16931.pdf?

(Attach XML files directly if you prefer; PDFs must be referenced by local path — Claude Desktop does not hand PDF bytes to MCP servers.)

Without a chat client, the MCP Inspector works headless:

npx @modelcontextprotocol/inspector@latest --cli node packages/server/dist/bin.js \

--method tools/call --tool-name audit_invoice \ --tool-arg file_path=$PWD/packages/server/samples/broken-missing-buyer-reference.xml --tool-arg lang=en

`kontor-agent` CLI — the reference client; audit needs no LLM and returns 0/1/2 for accept/review/reject, chat is an Anthropic agent loop that prints every tool call (needs ANTHROPIC_API_KEY):

node packages/client/dist/bin.js audit packages/server/samples/broken-missing-buyer-reference.xml --lang en

node packages/client/dist/bin.js chat -m "Prüfe $PWD/packages/server/samples/valid-zugferd-en16931.pdf" node packages/client/dist/bin.js --url http://127.0.0.1:3333/mcp --token "$KONTOR_AUTH_TOKEN" tools # against Docker / HTTP

Docker / Streamable HTTP — the same server over HTTP for remote agents and containers (token required, loopback-published port, TLS is your reverse proxy's job):

docker build -t kontor-mcp .              # multi-stage, non-root, ~70 MB, amd64 + arm64

docker run -d -p 127.0.0.1:3333:3333 -e KONTOR_AUTH_TOKEN="$(openssl rand -hex 24)" kontor-mcp curl -s http://127.0.0.1:3333/healthz # {"ok":true,"name":"kontor-mcp",...}

Or cp .env.example .env && docker compose up -d (read-only root FS, ./invoices mounted at /data). Config surface and the security posture: packages/server/README.md, SECURITY.md.

Tools

ToolWhat it does
parse_invoiceDetect the format (UBL / CII · EN 16931 · XRechnung version & variant · ZUGFeRD profile) and return the EN 16931 semantic model
validate_invoiceXSD + official EN 16931 / XRechnung Schematron (KoSIT scenarios) + Kontor plausibility → valid / valid_with_warnings / invalid with explained findings
audit_invoiceOne call for accounts payable: header facts, VAT breakdown, verdict, grouped findings, accept / review / reject with rationale; stateless duplicate detection via known_invoice_numbers
generate_invoiceStructured data → XRechnung 3.0 (UBL) or ZUGFeRD 2.3 / Factur-X PDF/A-3 (target: zugferd-pdf, profiles EN16931 / BASIC / EXTENDED); decimal-safe amounts, internal validation, deterministic auto-fixes reported
convert_invoiceZUGFeRD PDF → XML, UBL ↔ CII via the semantic model (post-validated, honest loss report), self-contained HTML preview
check_obligationsGerman e-invoicing mandate decision tree (B2B/B2G/B2C, 2025 → 2028 transition, exemptions) with primary legal sources
explain_ruleOfficial text, explanation, affected business terms and fix hint for any BR-* / BR-DE-* / KONTOR-* rule id
list_capabilitiesFormats, bundled standard versions, KB stats, legal lastVerified, inventory, sovereignty statement

Resources: kontor://samples/{name}, kontor://reference/rules, kontor://reference/codelists/{list}, kontor://reference/cheatsheet. Prompts: audit-incoming-invoice, draft-supplier-rejection, create-invoice-interview. Full reference with inputs and conventions: packages/server/README.md.

Sovereignty — and how we prove it

ClaimProof
No network at runtimeEvery rule set, schema, code list and legal fact is bundled in @kontor-mcp/rules with provenance and checksums. Proven by sovereignty.test.ts: all outbound paths (sockets, DNS, TLS, http/https, fetch) are blocked and recorded while every tool, resource and prompt runs — zero attempts; a static scan allows a network import only in the inbound HTTP host; CI also runs a full audit in a --network none container. See SECURITY.md.
No Java, no native codeSchematron is compiled at build time and executed with Saxon-JS; XSD via xmllint-wasm; PDF via pdf-lib. Java is used only by the development-time oracles (KoSIT validator, veraPDF, Mustang) in CI.
Nothing stored, nothing loggedThe server is stateless; invoice contents never reach a log (KONTOR_LOG_PAYLOADS defaults to off).
The verdicts are the official onesdocs/CONFORMANCE.md: 89/89 files of the official XRechnung test suite with identical verdicts *and* identical findings vs the KoSIT validator, replayed on every CI run.
The PDFs are real PDF/A-3Every generated sample is regenerated in CI and checked by veraPDF (PDF/A-3b, zero violations) and Mustang CLI (PDF/A + XMP + profile XSD + EN 16931 rules).

Architecture

flowchart LR

subgraph client [MCP client] A[Claude Desktop / Claude Code / kontor-agent] end A -- stdio / Streamable HTTP --> S

subgraph server ["@kontor-mcp/server"] S[tools · resources · prompts Zod schemas, structuredContent + text] end

subgraph core ["@kontor-mcp/core (MCP-free library)"] D[detect] --> P[parse → EN 16931 model] P --> V[validate: XSD → Schematron → plausibility] P --> G[generate / convert / preview] G --> Z[ZUGFeRD PDF/A-3 assembly] V --> AU[audit → verdict + recommendation] O[obligations decision tree] end

subgraph rules ["@kontor-mcp/rules (bundled, checksummed)"] R1[XSDs UBL 2.1 / CII D16B] R2[EN 16931 + XRechnung Schematron as SEF] R3[rule knowledge base DE/EN] R4[code lists · legal timeline · fonts + ICC] end

S --> core core --> rules

The validation pipeline: Layer 1 XSD (xmllint-wasm) → Layer 2 official Schematron (Saxon-JS, KoSIT scenario selection and severity overrides) → Layer 3 Kontor plausibility (KONTOR-PLAUS-*: decimal recomputation, VAT rates, IBAN/BIC, Leitweg-ID check digits, dates, duplicates — never changes the official verdict). Money math is decimal.js only; every XML parse has DTD/external entities disabled.

Conformance

WhatReferenceResult (2026-08-25)
Validation verdicts and findingsKoSIT validator 1.6.3, XRechnung 3.0.2 test suite (86 files) + Kontor fixtures (3)89/89 verdict *and* finding parity
Generated ZUGFeRD PDFsveraPDF 1.30.2 (PDF/A-3b)6/6 PASS, zero violations

| Generated ZUGFeRD PDFs | Mustang CLI 2.26.0 (PDF/A + XMP + Factur-X profile XSD + EN 16931) | 6/6 valid (EN 16931, BASIC, EXTENDE

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen