Ergänzung zur Vertrauensdokumentation von Cortena für die IT- und Informationssicherheitsverantwortlichen von Kunden, die prüfen, ob der Cortena MCP-Connector in einem KI-Assistenten aktiviert werden soll, etwa Claude, ChatGPT, Dust, Cursor, Perplexity und ähnliche Dienste.
Einrichtungsanleitung: MCP-Server. Der MCP-Server befindet sich in der Betaphase.
1. Was der MCP-Server ist
| Endpunkt | https://app.cortena.ai/api/mcp |
| Protokoll | Model Context Protocol über HTTPS (Streamable HTTP, JSON-RPC) |
| Authentifizierung | OAuth 2.0 (Autorisierungscode + PKCE für Mehrbenutzer-Connectoren, Client-Anmeldedaten für Einzelbenutzer-Clients) oder ein älteres Bearer-Token aus den Einstellungen |
| Hosting | Dieselbe Cortena-Anwendungsinfrastruktur wie app.cortena.ai (Hosting in der EU, siehe EU-Hosting) |
| Datenumfang | Ausschließlich die eigenen Cortena-Mandanten und Berechtigungen des verbundenen Benutzers. Auf Daten anderer Kunden kann nicht zugegriffen werden |
Es handelt sich weder um ein separates Produkt noch um einen separaten Datenspeicher. Der MCP-Server ist eine stärker eingeschränkte Schnittstelle zu denselben Cortena-APIs und Daten, die der Benutzer bereits in der Webanwendung sieht. Zusätzlich gelten Obergrenzen des Connectors für Mandanten und den Zugriffsmodus sowie optional eine Positivliste zulässiger Tools.
Token-Endpunkt: https://app.cortena.ai/api/mcp/oauth/token. Clients werden unter Einstellungen → MCP-Zugriff (Beta) (https://app.cortena.ai/?settings=mcp-access) verwaltet.
Dynamische Client-Registrierung (DCR)
Cortena unterstützt die dynamische Client-Registrierung gemäß OAuth 2.0. Für Assistenten, die DCR unterstützen, beispielsweise Claude und Dust Automatic OAuth, ist nur die MCP-URL erforderlich:
https://app.cortena.ai/api/mcp
Der Assistent registriert sich selbst, erhält automatisch eine Client-ID und ein Client-Secret und schließt anschließend die Cortena-Anmeldung sowie die Einrichtung des Connectors im Browser ab. Sie müssen keine OAuth-Schlüssel manuell einfügen. Automatisch registrierte Clients werden weiterhin unter Einstellungen → MCP-Zugriff (Beta) angezeigt und können dort jederzeit widerrufen werden.
Für Claude empfehlen wir den aufgeführten Connector: Cortena FinOps im Claude-Verzeichnis (Verbinden → bei Cortena anmelden).
Manuelle OAuth-Clients mit einer Client-ID und einem Client-Secret aus den Einstellungen stehen weiterhin für Assistenten zur Verfügung, die DCR nicht verwenden.
2. Wer eine Verbindung herstellen kann
Nur Personen, die bereits über ein Cortena-Benutzerkonto verfügen. Über diese Schnittstelle ist keine öffentliche Selbstregistrierung möglich.
Für den Zugriff sind folgende Voraussetzungen erforderlich:
- Eine Cortena-Benutzeridentität, also dieselben Anmeldedaten wie für die Webanwendung.
- Die Mandantenberechtigung MCP-Zugriff für jeden Mandanten, den der Connector verwenden darf. Diese wird von einem Mandantenadministrator unter Einstellungen → Benutzerberechtigungen erteilt.
- Ein aktiver MCP-Client, der in den Einstellungen erstellt oder automatisch über DCR registriert wurde und bei dem der betreffende Mandant unter den zulässigen Mandanten aufgeführt ist.
Der effektive Zugriff zur Laufzeit entspricht immer:
Obergrenze des Connectors ∩ Mandantenzugehörigkeit des Benutzers ∩ MCP-Zugriffsberechtigung ∩ toolbezogene Cortena-Berechtigungen
Eine Verbindung kann auch dann erfolgreich hergestellt werden, wenn es keine Überschneidung bei den Mandanten gibt. In diesem Fall sieht der Assistent keine mandantenbezogenen Daten. cortena_user_list_tenants erläutert, ob Berechtigungen oder die Positivliste des Connectors angepasst werden müssen oder ob eine erneute Verbindung erforderlich ist.
Bei Organisations-Connectoren, beispielsweise für Claude, legt ein Administrator die Obergrenze der Organisation einmalig fest, einschließlich Zugriffsmodus und zulässiger Mandanten. Jeder weitere Benutzer meldet sich weiterhin mit seinem eigenen Cortena-Konto an und muss, sofern er nicht Eigentümer des Connectors ist, Zugriff für MCP-Connector zulassen bestätigen. Die Zugriffsprüfung bezieht sich auf die Person, nicht auf die Anwendung.
3. Token-Verarbeitung
| Kontrolle | Implementierung |
|---|---|
| Zugriffstoken | Bearer-Token cortena_mcp_at_…, standardmäßige Gültigkeitsdauer: 14 Tage |
| Aktualisierungstoken | Wird bei Verbindungen mit Autorisierungscode ausgegeben, standardmäßige Gültigkeitsdauer: 30 Tage, wird bei Verwendung rotiert |
| MCP-HTTP-Sitzung | Sitzungs-ID im Arbeitsspeicher, standardmäßige Gültigkeitsdauer: 24 Stunden. Die Sitzung wird automatisch wiederhergestellt, solange das Zugriffstoken gültig bleibt |
| Transport | Ausschließlich HTTPS |
| Widerruf | Einstellungen → MCP-Zugriff → Widerrufen setzt den Client auf inaktiv. Die nächste Anfrage schlägt bei der Authentifizierung fehl |
Berechtigungen werden bei der Anmeldung nicht dauerhaft festgeschrieben. Bei jedem Aufruf ermittelt Cortena erneut die Anmeldedaten, den verbundenen Benutzer, die zulässigen Mandanten, den Zugriffsmodus und die Positivliste zulässiger Tools. Das Entfernen des MCP-Zugriffs, das Entfernen der Mandantenzugehörigkeit oder der Widerruf des Clients wird mit der nächsten Anfrage wirksam.
4. Zugriffsmodi: Nur Lesen oder Lesen + Schreiben
Jeder MCP-Client hat einen Zugriffsmodus, der bei der Erstellung oder bei der Einrichtung eines Organisations-Connectors festgelegt wird:
| Zugriffsmodus | Mögliche Aktionen des Assistenten |
|---|---|
| Nur Lesen | Ausschließlich Tools zum Auflisten und Lesen. Schreib-Tools werden nicht registriert und können nicht aufgerufen werden. |
| Lesen + Schreiben | Lese-Tools sowie Vorbereitungs- und Bestätigungsaktionen für Workflows, das Hochladen von Eingangsrechnungen und Schreibvorgänge für Support-Tickets. Es gelten weiterhin die Cortena-Berechtigungen. |
Unter Erweitert: Tools und Ressourcen kann optional weiter eingeschränkt werden, welche Tools und Dokumentationsressourcen ein Client bereitstellt. Wird keine benutzerdefinierte Liste angegeben, sind alle Tools zulässig, die für den jeweiligen Zugriffsmodus verfügbar sind.
Lese-Tools (in beiden Modi, sofern nicht benutzerdefiniert eingeschränkt)
| Bereich | Beispiele |
|---|---|
| Identität und Mandanten | Effektiv verfügbare Mandanten auflisten, Berechtigungen und Mandantenmetadaten abrufen |
| Rechnungen | Auflisten und suchen, einzelne Rechnung abrufen, Zusammenfassung exportieren, Filter auflisten, direkte Links |
| Workflows | Katalog, Knotentypen, rechnungsbezogener Workflow-Status |
| Pulse | Dashboard-Kennzahlen mit denselben Funktions- und Berechtigungsprüfungen wie in der Webanwendung |
| DATEV Summen- und Saldenliste | Status und paginierte Zeilen der bereits mit Cortena synchronisierten Summen- und Saldenliste |
| Buchungen | Dimensionen, Status, Listen, Aggregationen und Transaktionsdetails für den synchronisierten ERP-Buchungsverlauf. Erfordert Buchungen anzeigen |
| Support | Support-Tickets eines Mandanten auflisten und abrufen. Erfordert Support-Tickets anzeigen |
Schreib-Tools (nur Lesen + Schreiben)
Änderungen an Rechnungen und Workflows werden nie in einem einzigen, unbemerkten Schritt ausgeführt:
- Vorbereiten (
cortena_invoice_approve,cortena_invoice_review,cortena_invoice_update_service_accrualodercortena_change_prepare) gibt eine allgemein verständlichehumanSummarysowie einconfirmationTokenzurück. - Sie bestätigen die Änderung ausdrücklich im Chat.
- Ausführen (
cortena_change_commitmituserConfirmed: true) wendet die Änderung über dieselben Cortena-APIs wie die Weboberfläche an.
Vorbereitete Änderungen verfallen nach 15 Minuten. Derzeit werden folgende vorbereitbare Vorgänge unterstützt: Freigeben, Prüfung abschließen, Ablehnen mit Begründung und Aktualisieren des Von- und Bis-Datums der Leistungsabgrenzung einer Rechnungsposition. Letzteres ist möglich, wenn die Funktion für Buchungsvorschläge zur Abgrenzung aktiviert ist und der Benutzer über die Berechtigung Details von Rechnungspositionen bearbeiten verfügt.
Ausnahmen für Schreibvorgänge ohne Vorbereitungs- und Ausführungsschritt, da die Benutzeraktion bereits ausdrücklich erfolgt:
- Eingangsrechnungen hochladen (
cortena_invoices_upload): dieselbe Verarbeitungspipeline wie beim manuellen Hochladen über die Benutzeroberfläche. Erfordert Rechnungen hinzufügen. - Support-Tickets erstellen, beantworten, schließen, erneut öffnen und verknüpfen: Erfordert jeweils die entsprechende Support-Berechtigung.
Ein Token mit Lese- und Schreibzugriff reicht ohne die zugrunde liegende Cortena-Berechtigung nicht aus. Das Hochladen ohne Rechnungen hinzufügen schlägt beispielsweise fehl.
5. Verbundene Buchhaltungssysteme: Worauf MCP zugreifen kann und worauf nicht
MCP kommuniziert mit Cortena. Es wird kein direkter Schreibkanal zu Ihrem Buchhaltungssystem geöffnet.
| Verbindung | Richtung in Cortena | Über MCP |
|---|---|---|
| DATEV Datenservice Export Rechnungswesen | Eingehende, schreibgeschützte Synchronisierung mit Cortena, einschließlich Wirtschaftsjahren, Kontenrahmen, Buchungsverlauf und Summen- und Saldenliste | Assistenten können die bereits synchronisierte Summen- und Saldenliste sowie den in Cortena gespeicherten Buchungsverlauf lesen. MCP kann keinen DATEV-Synchronisierungsauftrag auslösen und über Datenservice Export keine Daten in DATEV hochladen oder übertragen. |
| DATEV Buchungsdatenservice (EXTF / Belege) | Ausgehender Export buchungsfertiger Buchungsstapel von Cortena zu DATEV | Nicht als MCP-Tool verfügbar. „An DATEV senden“ ist ausschließlich in der Cortena-Webanwendung und ihrem Audit-Protokoll verfügbar. |
| Twinfield / Exact Online Buchungsverlauf | Für Berichtszwecke mit Cortena synchronisiert | MCP kann synchronisierte Buchungen lesen, wenn der Benutzer über Buchungen anzeigen verfügt. MCP nimmt keine Buchungen oder Exporte in diese Systeme vor. |
| Eingangsrechnungen hochladen | Dateien werden in Cortena gespeichert und verarbeitet (S3 → Extraktion → Rechnungsarbeitsbereich) | Nur mit Lesen + Schreiben und Rechnungen hinzufügen zulässig. Dadurch werden keine Rechnungen an DATEV oder ein anderes Hauptbuchsystem gesendet. |
Fazit zu DATEV Datenservice Export Rechnungswesen: Es handelt sich um eine schreibgeschützte API-Verbindung von DATEV zu Cortena. Durch die Verbindung eines Assistenten erhält weder der Assistent noch Cortena über MCP die Möglichkeit, über diese Schnittstelle Buchungen in DATEV zu schreiben, hochzuladen oder zu übertragen.
6. Zugriffsmodell
Der Zugriff entspricht den bestehenden Cortena-Berechtigungen des Benutzers. Durch die Verbindung eines Assistenten werden keine neuen Rechte für Rechnungen, Workflows oder die Buchhaltung gewährt.
| Ebene | Kontrollen |
|---|---|
| Obergrenze des MCP-Clients | Zulässige Mandanten, read_only / read_write, optionale Positivliste zulässiger Tools |
| MCP-Zugriff | Legt fest, ob der Benutzer MCP für einen Mandanten überhaupt verwenden darf |
| Anwendungsberechtigungen | Dieselben Prüfungen wie in der Webanwendung, etwa Rechnungen hinzufügen, Buchungen anzeigen, Workflow-Berechtigung und Support-Berechtigungen |
| Workflow-Berechtigung | Freigabe oder Prüfung nur, wenn der Benutzer den aktuellen Schritt auch in der Benutzeroberfläche abschließen kann |
Ein mandantenübergreifender Zugriff auf Daten anderer Kunden ist nicht möglich. Jeder mandantenbezogene Aufruf wird serverseitig auf die oben beschriebene Schnittmenge beschränkt.
Administratoren verfügen über folgende effektive Kontrollpunkte: Wer ein Cortena-Konto besitzt, wer über MCP-Zugriff verfügt, welche Mandanten und Zugriffsmodi jeder Connector zulässt und wann ein Client widerrufen werden soll.
7. Wohin die Daten nach dem Verbinden eines Assistenten übertragen werden
Dieser Punkt betrifft die eigene Vertragsbeziehung des Kunden mit seinem KI-Anbieter und nicht die Vertragsbeziehung mit Cortena. Wir empfehlen, diesen Aspekt ausdrücklich zu prüfen:
Aus Cortena abgerufene Daten werden an den verbundenen Assistenten übertragen. Dessen Anbieter erhält diese Daten auf Grundlage der eigenen Vereinbarung und der Auftragsverarbeitungsbedingungen des Kunden mit diesem Anbieter. Cortena ist für diesen Verarbeitungsschritt weder Verantwortlicher noch Auftragsverarbeiter und kann keine Vorgaben zu Aufbewahrung, Speicherung oder Training durchsetzen.
Der Administrator des Kunden steuert die Aktivierung in den Organisationseinstellungen des Assistenten und entscheidet, welche Benutzer eine Verbindung herstellen dürfen. Die eigenen Unterauftragsverarbeiter von Cortena sind unter Unterauftragsverarbeiter dokumentiert.
8. Protokollierung und Offboarding
Lebenszyklus der Anmeldedaten
Cortena zeichnet wesentliche MCP-Zugriffsereignisse auf, die einem einzelnen Benutzer und nicht einem gemeinsam verwendeten Dienstkonto zugeordnet werden können. Dazu gehören:
- Anmeldedaten oder Client erstellt
- Benutzer verbunden durch Anmeldung mit Autorisierungscode
- Client widerrufen und damit getrennt
Die Nutzdaten enthalten die Benutzeridentität, die ID der Anmeldedaten, die OAuth-Client-ID, die Bezeichnung, den Zugriffsmodus und die zulässigen Mandanten.
Jeder Schreibvorgang
Schreibvorgänge durchlaufen dieselben Geschäfts-APIs wie die Webanwendung und werden im Aktivitätsverlauf der Rechnung angezeigt (Audit-Protokoll):
| Aktion | Audit-Verhalten |
|---|---|
| Freigeben / prüfen / ablehnen / Leistungsabgrenzung nach der Ausführung | Eintrag in der Rechnungsaktivität für den tatsächlichen Benutzer, mit dem Initiatorkanal mcp und einem Verweis auf die MCP-Anmeldedaten |
| Eingangsrechnungen hochladen | Derselbe Import- und Verarbeitungsverlauf wie beim manuellen Hochladen. Als Ursprung des Uploads wird standardmäßig mcp verwendet |
| Schreibvorgänge für Support-Tickets | Derselbe Support-Ticket-Verlauf wie in der Weboberfläche |
Vorbereitete, aber nicht ausgeführte Änderungen werden nur als ausstehende Bestätigungsdatensätze gespeichert, die nach 15 Minuten verfallen. Rechnungen werden erst bei der Ausführung geändert.
Nutzungszähler pro Client, etwa letzte Verwendung und Anzahl der Aufrufe pro Tool, werden zur betrieblichen Nachvollziehbarkeit am MCP-Client gespeichert. Sie ersetzen nicht den Aktivitätsverlauf der Rechnung.
Offboarding
| Aktion | Auswirkung |
|---|---|
| MCP-Client in den Einstellungen widerrufen | Der Client wird inaktiv. Tokens schlagen bei der nächsten Anfrage fehl. Die Aktualisierung über diesen Client schlägt ebenfalls fehl |
| MCP-Zugriff entfernen | Der Mandant wird aus der Menge der zulässigen Mandanten entfernt. Mandantenbezogene Tools geben „Zugriff verweigert“ zurück |
| Benutzer aus dem Mandanten entfernen | Die Prüfung der Mandantenzugehörigkeit schlägt beim nächsten Aufruf fehl |
| Client-ID oder Client-Secret nach einer Offenlegung rotieren | Wie Widerruf und anschließende Neuerstellung behandeln |
9. Ausdrückliche Einschränkungen (Beta)
Folgende Funktionen sind derzeit nicht über den MCP-Server für Benutzer verfügbar:
- Bankverbindungen und Tools für Banktransaktionen
- Ausführung von Treasury- oder Zahlungsstapeln
- Auslösen von Buchhaltungs-Exporten, etwa DATEV Buchungsdatenservice, Exact, Twinfield und ähnliche Aktionen zum Senden an ein Hauptbuchsystem
- Die meisten Änderungen an Rechnungsfeldern, mit Ausnahme von Workflow-Schritten und Datumsangaben zur Leistungsabgrenzung
- Gemeinsame Ausführung von Änderungen an mehreren Rechnungen
- Benutzer- oder Mandantenverwaltung sowie das Verbinden oder Trennen von Integrationen
- Auslösen von Synchronisierungsaufträgen für DATEV Datenservice Export
- Jegliche Übertragung oder jeglicher Upload in DATEV über Datenservice Export Rechnungswesen
10. Kontakt
- Produkt- und Sicherheitsfragen: compliance@cortena.ai
- Allgemeiner Support: support@cortena.ai
Schritte zur Einrichtung des Connectors finden Sie unter MCP-Server.