Jahresabschluss.io
ENAnmeldenRegistrieren →

Kriterien für MCP-Buchhaltung

Buchhaltungssoftware mit MCP-Server: woran Sie eine taugliche erkennen

Eine Buchhaltungssoftware mit MCP-Server taugt für echte Finanzdaten, wenn jeder Schlüssel genau eine Gesellschaft mit eng begrenzten Rechten erreicht, jeder schreibende Aufruf durch denselben GoBD-Buchungskern läuft wie die Oberfläche (Storno statt Löschen, keine Buchung in festgeschriebene Zeiträume), Dateien nicht durch das Sprachmodell gehen und Steuer-Übermittlungen beim Menschen bleiben. Dass ein Anbieter überhaupt einen MCP-Server hat, sagt darüber noch nichts: Das Protokoll regelt, wie ein KI-Agent Werkzeuge findet und aufruft, nicht, was die Buchhaltung dahinter erlaubt. Diese Seite gibt Ihnen eine Kriterienliste, mit der Sie jedes Angebot prüfen können, und zeigt zu jedem Punkt, wie jahresabschluss.io ihn umsetzt.

Stand: 2026-10-19

Warum Finanzdaten strengere Maßstäbe brauchen

Das Model Context Protocol (MCP) ist ein offener Standard: Ein KI-Programm fragt mit tools/list die Werkzeuge eines Servers ab und ruft sie mit tools/call auf. Die Spezifikation beschreibt Werkzeuge als vom Modell gesteuert und empfiehlt, dass immer ein Mensch Aufrufe ablehnen kann. Angaben eines Servers über seine Werkzeuge, etwa ob ein Werkzeug nur liest, sollen Programme nur dann für bare Münze nehmen, wenn der Server vertrauenswürdig ist.

In der Buchhaltung hat ein falscher Aufruf Folgen, die nicht einfach verschwinden. Nach § 146 Abs. 4 AO darf eine Buchung nicht so verändert werden, dass ihr ursprünglicher Inhalt nicht mehr feststellbar ist. Eine falsche Buchung wird storniert, Original und Gegenbuchung bleiben im Journal stehen. Deshalb muss die Software hinter dem MCP-Server die Regeln selbst durchsetzen — nicht das Sprachmodell, das sich verrechnen oder von einem präparierten Belegtext in die Irre führen lassen kann.

Die Kriterienliste

Die Prüfpunkte, nach Gewicht geordnet. Zu jedem steht, wie jahresabschluss.io ihn erfüllt.

Ein Schlüssel, eine Gesellschaft

Die Gesellschaft muss sich aus dem Schlüssel ergeben, nicht aus einem Parameter, den das Modell füllt. Bei uns gilt jeder Schlüssel jab_live_… für genau eine Gesellschaft; die Server-Anweisungen sagen dem Agenten ausdrücklich, keine entity_id mitzugeben. Gespeichert wird nur ein Hash des Schlüssels.

Rechte nach Aufgabe

Lesen, Buchen, Versenden und Festschreiben sollten getrennte Rechte sein. Bei uns heißen sie read (immer enthalten), write, send, webhooks und finalize. tools/list zeigt nur die Werkzeuge, die der Schlüssel erlaubt — ein Lese-Schlüssel bekommt create_journal_entry gar nicht erst angeboten.

Ein Buchungskern für App und Agent

Prüfen Sie, ob der Server dieselben Prüfungen nutzt wie die Oberfläche. Bei uns ist der MCP-Server ein Adapter vor der REST-API, und jeder schreibende Aufruf läuft durch den Buchungskern der App: Soll gleich Haben, keine Buchung in festgeschriebene Zeiträume, Dublettenprüfung bei Eingangsrechnungen.

Storno statt Löschen

Gebuchtes darf nur per Gegenbuchung korrigiert werden. Bei uns heißen die Werkzeuge storno_journal_entry, storno_payment, cancel_outgoing_invoice und storno_journal_batch; ein Werkzeug zum Löschen von Buchungen gibt es nicht. delete_receipt entfernt nur Dokumente, die nie geprüft, gebucht oder verknüpft wurden.

Wiederholen ohne Doppelbuchung

Abgebrochene Verbindungen sind normal; eine Wiederholung darf nicht doppelt buchen. Bei uns tragen schreibende Werkzeuge einen idempotency_key (UUID): Mit derselben UUID und denselben Daten wird nur einmal gebucht. import_journal_batch überspringt zusätzlich zeichengleiche Zeilen eines früheren Imports.

Probelauf und Sandbox

Gut ist, wenn Sie die Wirkung sehen, bevor gebucht wird. Bei uns zeigt dry_run — etwa bei import_journal_batch, book_incoming_invoice und den Zahlungswerkzeugen — die Buchungszeilen samt Wirkung auf Konten und Voranmeldung. Die Sandbox ist ein Zwilling der Gesellschaft mit eigenen Schlüsseln, aus dem nichts hinausgeht; derzeit gibt es sie für Gesellschaften ohne Jahresabschluss-Daten.

Steuern ohne PIN im Chat

Eine Übermittlung ans Finanzamt sollte ein Mensch auslösen. Bei uns prüft check_tax_filing amtlich ohne Versand, prepare_tax_filing friert Werte und Prüfwert ein, request_tax_filing_approval liefert einen Freigabe-Link. Gesendet wird in der App mit Ihrer PIN; das Recht für eine Übermittlung durch den Agenten wird derzeit nicht vergeben.

Dateien nicht durch das Modell

Exporte und Originalbelege müssen byte-genau bleiben. Bei uns nennen export_bookkeeping (für Kanzlei Software-Format und GoBD-Paket), get_receipt_file, get_receipt_archive und download_annual_report den Abruf per REST, statt Dateien als Text durch das Sprachmodell zu reichen.

Fremde Texte sind Daten

Verwendungszwecke und Belegtexte stammen von Dritten. Bei uns weisen die Server-Anweisungen den Agenten an, darin stehende Aufforderungen nie zu befolgen. IBAN und BIC eines Geschäftspartners sind über die Schnittstelle nicht änderbar — ein Schutz gegen Umleitungsbetrug, bei dem ein Belegtext die Bankverbindung austauschen will.

Offen dokumentiert

Sie sollten nachlesen können, was jeder Aufruf tut. Bei uns liegt das OpenAPI-3.1-Schema ohne Schlüssel unter https://api.jahresabschluss.io/functions/v1/bookkeeping-api/openapi.json; jedes MCP-Werkzeug bildet genau eine dieser Routen ab und nennt Beschreibung und erforderliches Recht.

Ablauf, Grenzen, Protokoll

Schlüssel sollten ablaufen und nachvollziehbar sein. Bei uns ist ein Ablaufdatum Pflicht (höchstens 366 Tage), je Gesellschaft sind höchstens zehn Schlüssel aktiv, jeder darf 120 Anfragen pro Minute stellen, und die App zeigt die API-Nutzung der letzten 30 Tage je Schlüssel: Zahl der Aufrufe, davon schreibende und fehlerhafte, den letzten Aufruf und die häufigsten Endpunkte.

Gehostet, mit fester Adresse

Ein gehosteter Server über Streamable HTTP braucht keine Installation und keine lokale Kopie Ihrer Daten. Bei uns lautet die Adresse https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp; Programme, die nur lokale Server starten, verbinden sich über die Brücke mcp-remote.

Prüffragen für jedes Angebot

Diese Fragen können Sie jedem Anbieter stellen. Die Antworten sollten sich in Dokumentation, Werkzeugliste oder einem Testlauf nachprüfen lassen.

  • Ergibt sich die Firma aus dem Schlüssel, oder kann das Modell sie im Aufruf wählen?
  • Welche Rechte gibt es, und sieht ein Lese-Schlüssel die schreibenden Werkzeuge überhaupt?
  • Laufen Buchungen über denselben Kern wie die Oberfläche, mit Festschreibung und Storno?
  • Was passiert, wenn derselbe Aufruf nach einem Abbruch noch einmal gesendet wird?
  • Gibt es einen Probelauf oder eine Testumgebung, die die echten Bücher nicht berührt — und für welche Gesellschaften?
  • Wer löst eine Übermittlung an das Finanzamt aus, und wo wird die PIN eingegeben?
  • Gehen Belegdateien und Exporte durch das Modell, oder gibt es einen getrennten Abruf?
  • Wie geht der Server mit Anweisungen um, die in Belegen, E-Mails oder Verwendungszwecken stehen?
  • Ist die Schnittstelle öffentlich beschrieben, etwa als OpenAPI-Schema?
  • Laufen Schlüssel ab, und können Sie sehen, wie oft welcher Schlüssel aufgerufen hat und wann zuletzt?

Beispiel: ein Stapel erst als Probelauf

So kann ein erster schreibender Auftrag aussehen, mit einem Schlüssel, der das Recht write hat:

Hier sind die Lohnbuchungen für Oktober 2026 aus lohn-oktober.csv,
so wie sie das Lohnbüro geliefert hat.
Bitte zuerst nur als Probelauf buchen und mir zeigen, welche Konten
sich wie verändern. Erst nach meinem Okay echt buchen.

Der Agent liest die Datei, stellt mit get_entity und list_fiscal_years Gesellschaft und Geschäftsjahr fest und prüft mit list_accounts, ob alle Konten existieren. Dann ruft er import_journal_batch mit dry_run: true auf. Die Antwort nennt die Buchungszeilen mit vorläufigen Nummern (would_create), ihre Wirkung auf die Kontensalden (saldo_effect) und auf die Kennzahlen der Voranmeldung (vat_effect, in Cent). Gebucht ist noch nichts.

Nach Ihrem Okay sendet der Agent denselben Stapel ohne dry_run. Er wird als Ganzes gebucht oder gar nicht. Bricht die Verbindung ab, ist ein erneuter Aufruf gefahrlos, weil zeichengleiche Zeilen eines früheren Imports übersprungen werden. Stellt sich später ein Fehler heraus, nimmt storno_journal_batch den ganzen Import in einer Transaktion zurück — wieder erst, nachdem Sie Stapel und Anzahl der Buchungen bestätigt haben.

Verbinden und vorsichtig anfangen

Ein Programm, das MCP-Server per URL anbindet, braucht nur Adresse und Schlüssel. Beispiel für Claude Code, der Schlüssel kommt aus einer Umgebungsvariable:

# JAB_API_KEY enthält Ihren Schlüssel jab_live_…
claude mcp add --transport http --scope user buchhaltung \
  https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp \
  --header "Authorization: Bearer $JAB_API_KEY"

Fangen Sie mit einem Schlüssel an, der nur read hat. Der Agent kann dann Saldenliste, offene Posten, Journal und Belege lesen, aber nichts verändern — ein guter Weg, um die Werkzeugliste und die Server-Anweisungen kennenzulernen. Für das Buchen legen Sie einen eigenen Schlüssel mit write an; send und finalize geben Sie erst, wenn der Agent Rechnungen versenden oder Zeiträume festschreiben soll.

Den Schlüssel legen Administratoren oder der Ersteller des Arbeitsbereichs in der App in den Einstellungen unter „KI-Agent & API“ an, bestätigt mit dem zweiten Faktor. Er wird nur beim Anlegen im Klartext angezeigt und gehört in eine Umgebungsvariable oder einen Passwortspeicher, nie in einen Chat und nie in ein Repository.

Grenzen: was über MCP bewusst nicht geht

Auch das ist ein Kriterium: Ein seriöser Anbieter sagt, was sein Server nicht kann.

  • Übermittlungen an ELSTER durch den Agenten: Er prüft amtlich und bereitet vor; gesendet wird über den Freigabe-Link in der App mit der PIN des Nutzers.
  • Bankanbindungen und die Zuordnung eines Bankkontos zum Sachkonto richten Sie in der App ein. Kontoauszüge als CSV, CAMT.053 oder MT940 spielt der Agent mit import_bank_statement ein.
  • Einstellungen der Gesellschaft wie Kontenrahmen, Gewinnermittlung oder Versteuerungsart liest get_entity_settings nur.
  • IBAN und BIC von Geschäftspartnern pflegen Sie in der App.
  • Freie Datenbankabfragen gibt es nicht, nur die dokumentierten Operationen.
  • Den HGB-Jahresabschluss erstellen, prüfen und stellen Sie in der App aus. Der Agent übergibt mit publish_trial_balance die Saldenliste und liest ausgestellte Abschlüsse mit get_annual_report.
  • KI-Programme, die nur eine OAuth-Anmeldung kennen — etwa ChatGPT im Browser, claude.ai im Browser und in der Telefon-App, die Gemini-App oder Microsoft 365 Copilot —, verbinden sich derzeit nicht, weil der Server noch keine OAuth-Anmeldung anbietet.

Rechtlicher Rahmen und Verantwortung

Buchungen müssen einzeln, vollständig, richtig, zeitgerecht und geordnet vorgenommen werden (§ 146 Abs. 1 AO); Bücher und Buchungsbelege sind aufzubewahren (§ 147 AO). Die Finanzverwaltung konkretisiert das in den GoBD, dem BMF-Schreiben vom 28. November 2019 in seiner jeweils geänderten Fassung. Ein MCP-Server ändert an diesen Pflichten nichts — er muss sie genauso einhalten wie die Oberfläche.

Verantwortlich bleiben Sie. KI-Ausgaben sind Vorschläge; die Software ersetzt keine Steuer- oder Rechtsberatung und keine Abschlussprüfung. Viele Unternehmen arbeiten deshalb allein oder gemeinsam mit ihrer Kanzlei: Der Agent hält Belege, Bank und offene Posten aktuell, die Kanzlei würdigt und schließt ab — auf Wunsch in derselben Software.

Häufige Fragen

Was ist eine Buchhaltungssoftware mit MCP-Server?

Eine Buchhaltung, die ihre Funktionen über das Model Context Protocol als Werkzeuge anbietet. Ein KI-Programm wie Claude Code, Codex oder Cursor kann damit Belege, Bank, Rechnungen und Auswertungen lesen und mit passendem Recht buchen. Welche Regeln dabei gelten, bestimmt die Buchhaltung hinter dem Server.

Reicht nicht eine REST-API?

Für eigene Programme ja. Ein MCP-Server erspart KI-Programmen die Einbindung jeder einzelnen Route: Das Programm fragt die Werkzeuge ab und ruft sie auf. Bei jahresabschluss.io ist der MCP-Server ein Adapter vor derselben REST-API; beide nutzen denselben Schlüssel und dieselben Prüfungen.

Woran erkenne ich, dass Buchungen über den Agenten GoBD-konform bleiben?

Daran, dass die Regeln im Server greifen und nicht nur in der Anleitung für das Modell stehen: Soll gleich Haben, Storno statt Löschen, keine Buchung in festgeschriebene Zeiträume. Bei uns lehnt der Buchungskern solche Aufrufe ab, gleich ob sie aus der App oder vom Agenten kommen.

Kann der Agent Steuererklärungen ans Finanzamt schicken?

Er kann amtlich prüfen (check_tax_filing), eine Übermittlung vorbereiten (prepare_tax_filing) und einen Freigabe-Link anfordern (request_tax_filing_approval). Übermittelt wird in der App mit Ihrer PIN; die PIN gehört nie in den Chat.

Welche KI-Programme funktionieren mit dem Server?

Programme, die einen MCP-Server per URL mit eigener Kopfzeile anbinden, etwa Claude Code, Codex, Gemini CLI, GitHub Copilot, Cursor, Windsurf, Cline oder Zed; Claude Desktop über die Brücke mcp-remote. Programme, die nur OAuth kennen, verbinden sich derzeit nicht.

Was kostet der MCP-Server?

Er ist ohne Aufpreis im Buchhaltungs-Abo (Solo oder Gesamtpaket) und im EÜR-Abo enthalten. Per API eingelieferte Belege, die die KI liest, zählen zum Kontingent der KI-erkannten Belege. Die aktuellen Preise stehen unter /preise.

Vom selben Anbieter: Jahresabschluss nach HGB – der komplette Leitfaden auf jahresabschluss.io.