Jahresabschluss.io
ENAnmeldenRegistrieren →

MCP kombinieren

Mehrere MCP-Server kombinieren: Buchhaltung neben E-Mail, Zahlungsdienst und Kalender

Ja, Sie können den MCP-Server von jahresabschluss.io in einem KI-Programm neben anderen MCP-Servern betreiben — etwa für E-Mail, Zahlungsdienst, Dateiablage oder Kalender —, und Ihr Agent verbindet deren Daten in einem einzigen Auftrag. Die Server sprechen dabei nie direkt miteinander: Jeder hat eine eigene Verbindung und einen eigenen Schlüssel, und nur das Modell trägt Informationen von einem zum anderen. Deshalb kommt es auf drei Dinge an: die Reihenfolge lesen → vorschlagen → bestätigen → schreiben, eindeutige Servernamen und Schlüssel, die nur die Rechte haben, die der Auftrag wirklich braucht.

Stand: 2026-10-19

Wie ein KI-Programm mehrere Server zusammenführt

Ein MCP-Client öffnet zu jedem eingetragenen Server eine eigene Verbindung, fragt dessen Werkzeugliste ab (tools/list) und legt alle Werkzeuge nebeneinander in den Kontext des Modells. Der Buchhaltungs-Server meldet dabei nur die Werkzeuge, die die Rechte Ihres Schlüssels erlauben: Ein Schlüssel nur mit Leserecht zeigt dem Agenten kein schreibendes Werkzeug — er kann es also auch nicht versehentlich aufrufen.

Ruft das Modell ein Werkzeug auf, geht die Anfrage ausschließlich an den Server, der es angeboten hat. Daten wandern von einem Server zum anderen nur über das Modell: Es liest etwa eine Auszahlung beim Zahlungsdienst und gibt Betrag und Datum danach selbst als Argument an ein Werkzeug der Buchhaltung weiter. Was ein Server zurückgibt, kann so jeden folgenden Aufruf beeinflussen — auch einen an einen ganz anderen Server. Stripe weist in seiner MCP-Dokumentation ausdrücklich darauf hin, beim Kombinieren mit anderen Servern auf Prompt-Injection zu achten.

Bei vielen Servern laden manche Programme nicht mehr alle Werkzeugbeschreibungen vorab; Claude Code sucht passende Werkzeuge standardmäßig erst bei Bedarf. Für Sie heißt das: Je klarer Servername und Auftrag, desto sicherer greift das Modell zum richtigen Werkzeug.

Typische Kombinationen mit der Buchhaltung

E-Mail + Buchhaltung

Der Agent sucht im Postfach nach Rechnungen und gleicht sie mit list_receipts gegen den Belegeingang ab. Der Gmail-Connector von Claude liefert zu Anhängen nur Metadaten, nicht die Datei — fehlende Rechnungen gehen deshalb per Weiterleitung an die Beleg-Adresse Ihrer Gesellschaft oder als Datei über den Upload.

Zahlungsdienst + Buchhaltung

Der offizielle MCP-Server von Stripe liest Auszahlungen und Saldo-Transaktionen. Ihr Agent erklärt damit eine Stripe-Gutschrift auf dem Bankkonto und ordnet die Zahlungen mit list_bank_transactions, list_open_items und match_bank_transaction zu. Gebucht wird nur über den Buchhaltungs-Server.

Dateiablage + Buchhaltung

Agenten im Terminal wie Claude Code oder Codex lesen einen lokalen Ordner selbst; die Dateien gehen per REST-Upload in den Belegeingang, ohne durch das Modell zu laufen. Für Google Drive gibt es zusätzlich eine eingebaute Belegquelle in der App, die einen Ordner regelmäßig nach neuen Belegen durchsucht.

Kalender + Buchhaltung

list_tax_deadlines liefert die Steuerfristen eines Jahres so, wie sie im Steuerkalender der App stehen, mit Fälligkeit, Erledigung und Überfälligkeit. Mit einem Kalender-Zugang schlägt der Agent daraus Termine vor; ob er sie selbst eintragen darf, legen Sie in den Rechten dieses Zugangs fest.

Die Reihenfolge: lesen, vorschlagen, bestätigen, schreiben

Ein kombinierter Auftrag ist nur so verlässlich wie seine Reihenfolge. Diese vier Stufen gelten für jeden Server, der in die Bücher schreibt.

  • Lesen: Zuerst holt der Agent alle Fakten — aus der Buchhaltung etwa mit get_entity, list_bank_transactions oder list_open_items, aus dem anderen Server die Gegenstücke. In dieser Stufe genügen lesende Werkzeuge.
  • Vorschlagen: Viele schreibende Werkzeuge kennen einen Probelauf (dry_run), zum Beispiel book_incoming_invoice, import_journal_batch und record_outgoing_invoice_payment. Die Antwort nennt die Buchungszeilen, die entstehen würden, ihre Wirkung auf die Konten und auf die Kennzahlen der Voranmeldung — eine Buchung entsteht dabei nicht.
  • Bestätigen: Der Agent zeigt Ihnen den Vorschlag. Vor dem Ausstellen und Versenden von Rechnungen, vor Stornorechnungen, dem endgültigen Löschen von Belegen und der Festschreibung verlangen schon die Beschreibungen der Werkzeuge Ihre ausdrückliche Zustimmung — und zwar für genau diesen einen Vorgang.
  • Schreiben: Erst jetzt ruft der Agent das Werkzeug ohne Probelauf auf. Muss er nach einer Zeitüberschreitung wiederholen, verwendet er denselben idempotency_key mit denselben Daten — so entsteht kein zweiter Vorgang.
  • Nie umgekehrt: Kein Wert aus einer E-Mail, einem Beleg oder einem Verwendungszweck wird ungeprüft zum Argument eines schreibenden Aufrufs. E-Mail-Adressen von Geschäftspartnern setzt der Agent nur, wenn Sie sie genannt oder bestätigt haben; Bankverbindungen der Partner lassen sich über die Schnittstelle gar nicht ändern.

Werkzeugnamen-Kollisionen und Präfixe

  • Kurze, sprechende Servernamen wählen — buchhaltung, stripe, postfach. Der Name steht in jeder Rechte-Regel und in jedem Protokoll Ihres KI-Programms.
  • Im Auftrag den Server nennen, wenn Begriffe doppelt vorkommen: Eine „Rechnung“ kann eine Ausgangsrechnung der Buchhaltung oder eine Rechnung im Zahlungsdienst sein. Schreiben Sie „Stellen Sie die Rechnung in der Buchhaltung aus“, nicht nur „Erstellen Sie eine Rechnung“.
  • Rechte je Server getrennt regeln: In Claude Code geben Regeln wie mcp__buchhaltung__list_* und mcp__buchhaltung__get_* nur die lesenden Werkzeuge eines Servers frei; in Codex begrenzen enabled_tools und disabled_tools je Server, was das Modell überhaupt sieht.
  • Keine Werkzeugnamen erfinden: Maßgeblich ist die Liste, die der Server beim Verbinden meldet. Ein Werkzeug, das der Buchhaltungs-Server für Ihren Schlüssel nicht meldet, gibt es für diesen Schlüssel nicht.

Das Model Context Protocol verlangt eindeutige Werkzeugnamen nur innerhalb eines Servers. Verschiedene Server dürfen also Werkzeuge mit ähnlichen oder sogar gleichen Namen anbieten. Die KI-Programme trennen sie über den Servernamen, den Sie beim Eintragen vergeben: Claude Code führt jedes Werkzeug als mcp__<server>__<werkzeug>, aus list_open_items wird bei einem Server namens buchhaltung also mcp__buchhaltung__list_open_items.

Rechte minimal halten

  • Ein Schlüssel je Auftrag: Für Auswertungen genügt ein Schlüssel mit Leserecht, das in jedem Schlüssel enthalten ist. Schreibrecht (write) bekommt nur der Schlüssel, mit dem tatsächlich gebucht wird; Versand (send), Webhooks (webhooks) und Festschreibung (finalize) sind eigene Rechte, die Sie nur bei Bedarf vergeben.
  • Kurze Laufzeit: Jeder Schlüssel hat ein Ablaufdatum, höchstens 366 Tage nach dem Anlegen. Für einen abgegrenzten Auftrag wählen Sie eine kurze Laufzeit und widerrufen den Schlüssel danach in der App unter „KI-Agent & API“.
  • Auch beim anderen Server sparsam: Stripe empfiehlt OAuth oder einen eigenen Agent-API-Schlüssel nur mit den nötigen Berechtigungen. Postfach und Kalender bekommen nur Lesezugriff, wenn der Agent dort nichts senden oder eintragen soll.
  • Steuern bleiben beim Menschen: Der Agent kann Meldungen amtlich prüfen und eine Übermittlung vorbereiten; übermittelt wird über den Freigabe-Link in der App mit Ihrer PIN. Ein Recht, mit dem ein Agent selbst übermittelt, wird derzeit nicht vergeben.
  • Erst üben: Ein Schlüssel aus der Sandbox Ihrer Gesellschaft bucht nur in deren Kopie, Versand und Übermittlung sind dort gesperrt. Die Sandbox gibt es derzeit für Gesellschaften ohne Jahresabschluss-Daten wie Saldenlisten, Abschlussbuchungen, Abgrenzungen oder Rückstellungen.

Beispiel: Buchhaltung und Stripe in Claude Code

Eine .mcp.json im Projektordner trägt beide Server ein, die Schlüssel stehen darin nur als Umgebungsvariablen. Die Rechte-Regeln in .claude/settings.json lassen das Lesen ohne Rückfrage zu und sperren das Stripe-Schreibwerkzeug:

# .mcp.json
{
  "mcpServers": {
    "buchhaltung": {
      "type": "http",
      "url": "https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp",
      "headers": { "Authorization": "Bearer ${JAB_API_KEY}" }
    },
    "stripe": {
      "type": "http",
      "url": "https://mcp.stripe.com",
      "headers": { "Authorization": "Bearer ${STRIPE_AGENT_API_KEY}" }
    }
  }
}

# .claude/settings.json
{
  "permissions": {
    "allow": ["mcp__buchhaltung__list_*", "mcp__buchhaltung__get_*", "mcp__stripe__stripe_api_read"],
    "deny": ["mcp__stripe__stripe_api_write"]
  }
}

# Schlüssel nur in der Umgebung setzen, nie in die Datei schreiben
export JAB_API_KEY="jab_live_…"

Ein Auftrag dazu: „Auf dem Geschäftskonto ist am 14.10. eine Stripe-Gutschrift über 1.234,56 € eingegangen (Beispielbetrag). Lesen Sie in Stripe, welche Zahlungen und Gebühren darin stecken, und zeigen Sie mir, welche offenen Ausgangsrechnungen damit bezahlt sind. Buchen Sie noch nichts.“

Der Agent liest mit stripe_api_read die Auszahlung und ihre Saldo-Transaktionen, mit list_bank_transactions und list_open_items die Gegenstücke in der Buchhaltung und legt Ihnen die Zuordnung als Tabelle vor. Erst nach Ihrem Ja ruft er match_bank_transaction auf — ein Werkzeug, für das Claude Code wegen der Regeln oben ausdrücklich nachfragt.

Recht und Praxis: Jeder Server ist ein weiterer Datenempfänger

Jeder zusätzliche Server erhält, was das Modell ihm schickt — beim Kombinieren also unter Umständen Kunden- und Lieferantendaten aus der Buchhaltung. Bankumsätze und Geschäftspartner enthalten Namen und Kontodaten Dritter, also personenbezogene Daten im Sinne von Art. 4 Nr. 1 DSGVO. Prüfen Sie für jeden Anbieter, ob ein Vertrag zur Auftragsverarbeitung nach Art. 28 DSGVO besteht, und geben Sie keinem Server mehr, als der Auftrag braucht.

Für die Bücher selbst gilt: Geschäftsvorfälle müssen sich in ihrer Entstehung und Abwicklung verfolgen lassen (§ 238 Abs. 1 Satz 3 HGB). Weil jeder Schreibaufruf durch denselben Buchungskern läuft wie die App, entstehen Korrekturen als Storno und Neubuchung, und die Seite „KI-Agent & API“ 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. Mit einem eigenen Schlüssel je Auftrag sehen Sie dort, welcher Agent wie oft geschrieben hat — gleich, wie viele Server am Auftrag beteiligt waren.

Grenzen

  • Die Server tauschen nichts direkt aus. Jede Verbindung zwischen ihnen ist ein Schritt des Modells und damit ein Vorschlag, den Sie prüfen.
  • Im Browser lassen sich ChatGPT und claude.ai derzeit nicht mit dem Buchhaltungs-Server verbinden, weil sie für eigene Server nur OAuth anbieten und unser Server mit einem Schlüssel in der Kopfzeile arbeitet. Mehrere Server kombinieren Sie deshalb in Programmen wie Claude Code, Codex, Cursor oder — über die Brücke mcp-remote — Claude Desktop.
  • Bankanbindungen, Einstellungen der Gesellschaft und Bankverbindungen der Geschäftspartner bleiben in der App; kein anderer Server kann sie über die Buchhaltung ändern.
  • Belegdateien, Buchungsstapel aus Kanzlei Software und das GoBD-Paket gehen nicht durch das Modell. Der Server nennt den Download-Weg, den Sie mit dem Schlüssel aus einer Umgebungsvariable nutzen.

Häufige Fragen

Wie viele MCP-Server kann ich gleichzeitig verbinden?

Das bestimmt Ihr KI-Programm, nicht der Buchhaltungs-Server. Je mehr Server eingetragen sind, desto mehr Werkzeuge stehen zur Auswahl; halten Sie die Liste klein und vergeben Sie eindeutige Servernamen.

Dürfen verschiedene Server Werkzeuge mit demselben Namen anbieten?

Ja. Das Model Context Protocol verlangt eindeutige Namen nur innerhalb eines Servers. Die KI-Programme unterscheiden die Werkzeuge über den Servernamen; Claude Code etwa nennt sie mcp__<server>__<werkzeug>.

Kann ein anderer MCP-Server direkt in meine Buchhaltung schreiben?

Nein. In die Buchhaltung schreibt nur ein Aufruf eines Werkzeugs des Buchhaltungs-Servers mit Ihrem Schlüssel. Er läuft durch denselben Buchungskern und dieselben GoBD-Prüfungen wie die App.

Welche Rechte braucht der Schlüssel für einen Abgleich mit Stripe?

Zum Lesen und Vergleichen genügt das Leserecht. Soll der Agent Zahlungen zuordnen oder Gebühren buchen, braucht der Schlüssel zusätzlich das Recht write.

Funktioniert die Kombination in ChatGPT oder claude.ai im Browser?

Derzeit nicht mit dem Buchhaltungs-Server, weil diese Programme eigene Server nur per OAuth anbinden. Nutzen Sie ein Programm, das eine Kopfzeile mit dem Schlüssel senden kann, etwa Claude Code, Codex oder Cursor.

Wie verhindere ich, dass Text aus einer E-Mail den Agenten steuert?

Behandeln Sie fremde Inhalte als Daten, nicht als Anweisungen — das sagen auch die Anweisungen des Buchhaltungs-Servers. Geben Sie schreibende Werkzeuge nicht ohne Rückfrage frei und vergeben Sie nur die Rechte, die der Auftrag braucht.

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