Freigaben
Mensch in der Schleife: wo bei KI-Buchungen ein Mensch entscheidet
Bei einem KI-Agenten, der über den MCP-Server von jahresabschluss.io bucht, entscheidet an drei Stellen ein Mensch: Manche Schritte gibt es nur in der App – Schlüssel anlegen, Steuern übermitteln, Erklärungen freigeben, den Jahresabschluss ausstellen. Andere erlaubt der Server erst mit einem eigenen Recht oder einer ausdrücklichen Bestätigung im Aufruf. Und vor jedem Werkzeugaufruf kann Ihr KI-Programm Sie fragen; wie oft, stellen Sie dort ein. Diese Seite ordnet die drei Ebenen, zeigt eine Freigabe-Einstellung für Claude Code und erklärt, wie Sie mit dem Probelauf dry_run Buchungen sehen, bevor sie entstehen.
Stand: 2026-10-19
Drei Ebenen der Freigabe
Nur in der App
Schritte, für die es über die API keinen Weg gibt. Der Agent bereitet höchstens vor; ausgeführt wird von einem angemeldeten Menschen, teils mit zweitem Faktor und ELSTER-PIN.
Recht oder Bestätigung im Aufruf
Schritte, die der Server nur mit einem eigenen Recht des Schlüssels oder einem ausdrücklichen Bestätigungsfeld annimmt – etwa confirm: true beim Festschreiben.
Ihr KI-Programm fragt
Vor jedem Werkzeugaufruf kann der Client eine Rückfrage zeigen. Das ist die einzige Stelle, an der Sie jeden einzelnen Aufruf mit seinen Argumenten sehen.
Was nur in der App geht
- API-Schlüssel anlegen, verlängern und widerrufen: nur Administratoren und Ersteller des Arbeitsbereichs, jeweils bestätigt mit dem zweiten Faktor.
- Steuern übermitteln: Der Agent prüft amtlich ohne Versand (check_tax_filing), friert Werte und Prüfwert ein (prepare_tax_filing) und holt einen Freigabe-Link (request_tax_filing_approval, 7 Tage gültig). In der App rechnet die Seite den Stand neu, vergleicht ihn, und Sie übermitteln mit Zwei-Faktor-Bestätigung und Ihrer ELSTER-PIN. Ein Recht, mit dem ein Schlüssel an das Finanzamt sendet, vergibt die App derzeit nicht. Fehlt der Gesellschaft ein eigenes ELSTER-Zertifikat, nennt prepare_tax_filing das als Hindernis zertifikat_fehlt.
- Erklärungen freigeben: Körperschaftsteuer, Gewerbesteuer und Anlage EÜR bereitet der Agent erst vor, wenn sie in der App freigegeben sind. Die Umsatzsteuer-Jahreserklärung legt der Nutzer in der App an; Berichtigungen und die Gewerbesteuer mit Zerlegung bleiben ganz in der App.
- Sonderfälle der Umsatzsteuer-Voranmeldung: Über die API lässt sich nur bestätigen, dass keiner vorliegt (confirm_vat_supplementary) – und nur, nachdem der Nutzer die Fragen des Vordrucks verneint hat. Liegt einer vor, erfassen Sie ihn in der App.
- Einstellungen der Gesellschaft, Bankanbindungen, Bankverbindungen der Geschäftspartner, das Wiederherstellen abgelegter Belege sowie Erstellen, Prüfen und Ausstellen des Jahresabschlusses.
Wo der Server eine ausdrückliche Bestätigung verlangt
- finalize_bookkeeping_period: braucht das eigene Recht finalize und im Aufruf confirm: true. Die Festschreibung nach GoBD lässt sich nicht zurücknehmen.
- book_incoming_invoice bei Dublettenverdacht: Die API antwortet mit 409 possible_duplicate und nennt die vorhandene Buchung (invoice_duplicate_candidate_id). Gebucht wird nur mit trotz_dublette: true und genau dieser Kennung. Bei Belegen (confirm_receipt) lässt sich ein Dublettenhinweis über die API gar nicht übersteuern.
- create_journal_entry auf den Vortragskonten 9000 bis 9009: zuerst 422 mit dem Code vortragskonto_bestaetigung, erst confirm_opening_account: true bucht – weil eine solche Buchung den berechneten Saldenvortrag ersetzt.
- create_tax_draft und confirm_vat_supplementary: nur mit keine_sonderfaelle: true und confirm: true, laut Beschreibung erst nach ausdrücklicher Antwort des Nutzers.
- carry_forward_opening_balances mit mode=rederive storniert auch von Hand erfasste Eröffnungswerte – laut Beschreibung nur nach ausdrücklicher Bestätigung.
Diese Felder setzt der Agent. Der Server stellt sicher, dass sie ausdrücklich und in einem eigenen Aufruf kommen; ob Sie vorher wirklich gefragt wurden, sieht er nicht. Deshalb gehört die dritte Ebene dazu.
Was der Server vom Agenten verlangt
Der MCP-Server gibt jedem Agenten feste Regeln mit: Vor jeder neuen Ausgangsrechnung und jedem Versand nennt er Empfänger und Betrag, beim Versand auch Rechnungsnummer und Zieladresse, und ruft erst nach Ihrer ausdrücklichen Bestätigung auf. Vor nicht rückholbaren Schritten – Ausgangsrechnung stornieren, Beleg endgültig löschen, Zeitraum festschreiben und jedes andere als destruktiv markierte Werkzeug – nennt er genau, was geschieht; eine Bestätigung gilt nur für diesen einen Vorgang.
Als destruktiv markiert sind unter anderem create_outgoing_invoice, cancel_outgoing_invoice, create_outgoing_credit_note, delete_receipt, storno_journal_batch, reverse_cash_entry (Kassenbuchung stornieren) und finalize_bookkeeping_period; send_outgoing_invoice trägt zusätzlich den Hinweis, dass er nach außen wirkt.
Ihr KI-Programm fragt: Beispiel für Claude Code
In Claude Code legen Sie in der Datei settings.json fest, welche Werkzeuge ohne Rückfrage laufen und welche jedes Mal bestätigt werden. Der Servername ist der, unter dem Sie den MCP-Server eingetragen haben, hier buchhaltung:
{
"permissions": {
"allow": [
"mcp__buchhaltung__list_*",
"mcp__buchhaltung__get_*"
],
"ask": [
"mcp__buchhaltung__create_journal_entry",
"mcp__buchhaltung__storno_journal_entry",
"mcp__buchhaltung__book_bank_transaction",
"mcp__buchhaltung__create_outgoing_invoice",
"mcp__buchhaltung__send_outgoing_invoice",
"mcp__buchhaltung__reverse_cash_entry",
"mcp__buchhaltung__finalize_bookkeeping_period"
],
"deny": [
"mcp__buchhaltung__delete_receipt"
]
}
}Laut Dokumentation von Claude Code werden Regeln in der Reihenfolge deny, ask, allow geprüft; eine ask-Regel fragt bei jedem Aufruf, auch wenn eine Freigabe passt. Im Standardmodus („Manual“) fragt Claude Code beim ersten Einsatz eines Werkzeugs; für schreibende Werkzeuge ist eine ask-Regel deshalb sicherer als „nicht mehr fragen“. Alle Werkzeuge, die mit list_ oder get_ beginnen, lesen nur. Den Modus bypassPermissions, der Rückfragen überspringt, nutzen Sie mit einem Schreibschlüssel nicht.
Andere Programme haben eigene Einstellungen. Goose zum Beispiel arbeitet laut seiner Dokumentation standardmäßig im Modus „Completely Autonomous“ und fragt dann nicht; stellen Sie vor einem Schreibschlüssel „Manual Approval“ ein.
Probelauf: ansehen, bevor gebucht wird
Mit dry_run: true laufen dieselben Prüfungen wie bei der echten Buchung, aber nichts wird gebucht. Die Antwort nennt die Buchungszeilen, die entstünden (would_create, mit vorläufigen Buchungsnummern), ihre Wirkung auf die Konten (saldo_effect) und auf die Kennzahlen der Umsatzsteuer-Voranmeldung (vat_effect, in Cent). Der Idempotenzschlüssel wird beim Probelauf nicht gespeichert, Sie können denselben Aufruf danach also unverändert echt senden.
Den Probelauf kennen import_journal_batch, book_incoming_invoice, record_outgoing_invoice_payment, record_incoming_invoice_payment sowie die Stapel book_incoming_invoices_batch und record_invoice_payments_batch. Beim Stapelimport zeigt er auch, welche Zeilen als Dublette übersprungen würden; bei Eingangsrechnungen läuft die Dublettenprüfung mit.
Ein Auftrag im Chat könnte lauten: „Buche die offenen Eingangsrechnungen aus dem Oktober, aber zeig mir vorher jede Buchung.“ Der Agent liest die Belege mit list_receipts und get_receipt_proposal, ruft book_incoming_invoices_batch mit dry_run: true auf, zeigt Ihnen Konten, Beträge und Vorsteuer als Tabelle – und sendet denselben Stapel mit denselben Idempotenzschlüsseln erst nach Ihrem Ja ohne dry_run.
Grenzen
- Der Server kann nicht prüfen, ob Sie tatsächlich gefragt wurden. Felder wie confirm: true setzt der Agent; sehen tun Sie den Aufruf nur in der Rückfrage Ihres KI-Programms.
- Viele Rückfragen verleiten zum Durchklicken. Geben Sie lesende Werkzeuge frei und lassen Sie nur schreibende bestätigen – dann bleibt jede Rückfrage eine echte Entscheidung.
- Nicht jedes Werkzeug hat einen Probelauf; create_journal_entry etwa nicht. Eine falsche Einzelbuchung korrigieren Sie per storno_journal_entry mit Begründung.
- Was in der App bleibt, bleibt dort auch für den Agenten mit allen Rechten – die Grenzen sind keine Einstellung, die sich am Schlüssel lockern lässt.
Recht und Praxis: § 150 AO und die GoBD
Nach § 150 Abs. 2 AO sind die Angaben in Steuererklärungen wahrheitsgemäß nach bestem Wissen und Gewissen zu machen. Diese Erklärung kann Ihnen kein Agent abnehmen – deshalb übermitteln Sie selbst in der App, nachdem Sie die vorbereiteten Werte mit dem aktuellen Stand verglichen haben. Die GoBD verlangen zudem Kontrollen wie Funktionstrennungen und Erfassungskontrollen (Rz. 100): Der Agent erfasst, ein Mensch schreibt fest und übermittelt.
Auch die MCP-Spezifikation empfiehlt, dass immer ein Mensch Werkzeugaufrufe ablehnen kann und Clients vor sensiblen Operationen um Bestätigung bitten. Die drei Ebenen dieser Seite setzen das für die Buchhaltung um – allein oder gemeinsam mit Ihrer Kanzlei, die in derselben Software freigeben kann.
Häufige Fragen
Kann ein KI-Agent ohne meine Zustimmung buchen?
Wenn der Schlüssel das Schreibrecht hat und Ihr KI-Programm nicht nachfragt, ja – der Server erkennt nicht, ob ein Mensch zugestimmt hat. Lassen Sie deshalb schreibende Werkzeuge im KI-Programm bei jedem Aufruf bestätigen oder vergeben Sie nur das Leserecht.
Kann der Agent eine Steuererklärung ohne mich abgeben?
Nein. Übermittelt wird nur in der App, mit Ihrer Zwei-Faktor-Bestätigung und Ihrer ELSTER-PIN. Der Agent kann prüfen, vorbereiten und einen Freigabe-Link anfordern; ein Recht zum Übermitteln vergibt die App derzeit nicht.
Was ist der Probelauf dry_run?
Ein Aufruf mit denselben Prüfungen wie die echte Buchung, bei dem nichts gebucht wird. Die Antwort zeigt die Buchungszeilen und ihre Wirkung auf Konten und Umsatzsteuer-Kennzahlen; danach senden Sie denselben Aufruf ohne dry_run.
Welche Schritte sind nicht rückholbar?
Eine Ausgangsrechnung ausstellen oder stornieren (jeweils mit eigener Nummer), eine Gutschrift ausstellen, einen Beleg endgültig löschen, einen Buchungsstapel stornieren und einen Zeitraum festschreiben. Diese Werkzeuge sind als destruktiv markiert, und der Server verlangt vorher Ihre Bestätigung.
Muss ich jede Lesefrage bestätigen?
Nein. Lesende Werkzeuge verändern nichts; Sie können sie in Ihrem KI-Programm dauerhaft freigeben, in Claude Code etwa mit mcp__buchhaltung__list_* und mcp__buchhaltung__get_*.
Wer legt die Schlüssel an?
Administratoren und Ersteller des Arbeitsbereichs, in der App im Bereich „KI-Agent & API“ und bestätigt mit dem zweiten Faktor. Ein Agent kann sich keinen Schlüssel selbst ausstellen oder verlängern.
Vom selben Anbieter: Jahresabschluss nach HGB – der komplette Leitfaden auf jahresabschluss.io.