Aanvulling op de Cortena-vertrouwensdocumentatie voor IT- en informatiebeveiligingsbeoordelaars van klanten die beoordelen of ze de Cortena MCP-connector in een AI-assistent willen inschakelen, zoals Claude, ChatGPT, Dust, Cursor, Perplexity en vergelijkbare toepassingen.
Installatie-instructies: MCP-server. De MCP-server is in bèta.
1. Wat het is
| Eindpunt | https://app.cortena.ai/api/mcp |
| Protocol | Model Context Protocol via HTTPS (Streamable HTTP, JSON-RPC) |
| Authenticatie | OAuth 2.0 (authorization code + PKCE voor connectors met meerdere gebruikers, client credentials voor clients met één gebruiker), of een legacy bearer-token uit de instellingen |
| Hosting | Dezelfde Cortena-applicatie-infrastructuur als app.cortena.ai (gehost in de EU, zie Hosting in de EU) |
| Gegevensbereik | De eigen Cortena-tenants en machtigingen van de verbonden gebruiker. Gegevens van andere klanten zijn niet toegankelijk |
Het is geen afzonderlijk product of gegevensopslag. Het is een beperktere interface naar dezelfde Cortena-API's en gegevens die de gebruiker al in de webapplicatie ziet, met een aanvullende connectorbeperking voor tenants, toegangsmodus en een optionele lijst met toegestane tools.
Token-eindpunt: https://app.cortena.ai/api/mcp/oauth/token. Clients worden beheerd via Instellingen → MCP-toegang (bèta) (https://app.cortena.ai/?settings=mcp-access).
Dynamic Client Registration (DCR)
Cortena ondersteunt OAuth 2.0 Dynamic Client Registration. Assistenten die DCR ondersteunen, bijvoorbeeld Claude en Dust Automatic OAuth, hebben alleen de MCP-URL nodig:
https://app.cortena.ai/api/mcp
De assistent registreert zichzelf, verkrijgt automatisch een Client ID en Secret en voltooit het inloggen bij Cortena en de configuratie van de connector in de browser. Je hoeft OAuth-sleutels niet handmatig te plakken. Automatisch geregistreerde clients worden nog steeds weergegeven onder Instellingen → MCP-toegang (bèta) en kunnen daar op elk moment worden ingetrokken.
Voor Claude raden we de vermelde connector aan: Cortena FinOps in de Claude-directory (Verbinden → inloggen bij Cortena).
Handmatige OAuth-clients, met Client ID + Secret uit de instellingen, blijven beschikbaar voor assistenten die geen DCR gebruiken.
2. Wie verbinding kan maken
Alleen personen die al een Cortena-gebruikersaccount hebben. Op deze interface is geen openbare zelfregistratie beschikbaar.
Toegang vereist:
- Een Cortena-gebruikersidentiteit, dezelfde login als voor de webapp.
- De tenantmachtiging MCP-toegang voor elke tenant die de connector mag gebruiken. Deze machtiging wordt door een tenantbeheerder verleend via Instellingen → Gebruikersmachtigingen.
- Een actieve MCP-client, aangemaakt in de instellingen of automatisch geregistreerd via DCR, waarvan de toegestane tenants die tenant bevatten.
De effectieve runtime-toegang is altijd:
connectorlimiet ∩ lidmaatschap van gebruikerstenant ∩ machtiging voor MCP-toegang ∩ Cortena-machtigingen per tool
Een verbinding kan slagen zonder overlap tussen tenants. In dat geval ziet de assistent geen tenantgebonden gegevens. cortena_user_list_tenants legt uit of je de machtigingen, de lijst met toegestane connectors of de verbinding opnieuw moet instellen.
Voor organisatieconnectors, bijvoorbeeld Claude, stelt een beheerder eenmalig de organisatiegrens in, bestaande uit toegangsmodus en toegestane tenants. Elke aanvullende gebruiker logt nog steeds in met het eigen Cortena-account en moet, als die gebruiker niet de eigenaar van de connector is, MCP-connectortoegang toestaan goedkeuren. De toegang wordt bepaald door de persoon, niet door de applicatie.
3. Omgaan met tokens
| Beveiligingsmaatregel | Implementatie |
|---|---|
| Access token | Bearer cortena_mcp_at_…, standaardlevensduur 14 dagen |
| Refresh token | Uitgegeven voor verbindingen met een authorization code, standaardlevensduur 30 dagen, wordt bij gebruik geroteerd |
| MCP HTTP-sessie | In-memory sessie-id, standaard 24 uur; automatisch hersteld zolang het access token geldig blijft |
| Transport | Alleen HTTPS |
| Intrekking | Instellingen → MCP-toegang → Intrekken markeert de client als inactief. Het volgende verzoek mislukt bij de authenticatie |
Machtigingen liggen niet voor altijd vast bij het inloggen. Bij elke aanroep controleert Cortena opnieuw de referentie, de verbonden gebruiker, de toegestane tenants, de toegangsmodus en de lijst met toegestane tools. Het verwijderen van MCP-toegang, het verwijderen van lidmaatschap van een tenant of het intrekken van de client wordt bij het volgende verzoek van kracht.
4. Toegangsmodi: alleen lezen versus lezen + schrijven
Elke MCP-client heeft een toegangsmodus die bij het aanmaken of instellen van een organisatieconnector wordt bepaald:
| Toegangsmodus | Wat de assistent kan doen |
|---|---|
| Alleen lezen | Alleen tools voor weergeven en lezen. Schrijftools worden niet geregistreerd en kunnen niet worden aangeroepen. |
| Lezen + schrijven | Leestools plus acties voor workflows voor voorbereiden en toepassen, uploaden van inkoopfacturen en schrijven van supporttickets, nog steeds afhankelijk van Cortena-machtigingen. |
Met Geavanceerd: tools en resources kun je verder beperken welke tools en documentatieresources een client beschikbaar maakt. Als je geen aangepaste lijst opgeeft, zijn "alle tools die voor die toegangsmodus zijn toegestaan" beschikbaar.
Leestools, voor beide modi tenzij aangepast beperkt
| Gebied | Voorbeelden |
|---|---|
| Identiteit en tenants | Effectieve tenants weergeven, machtigingen ophalen, tenantmetadata |
| Facturen | Lijsten en zoekopdrachten, één factuur ophalen, overzicht exporteren, filters weergeven, deep links |
| Workflows | Catalogus, nodetypen, workflowstatus per factuur |
| Pulse | Dashboardstatistieken, met dezelfde functie- en machtigingscontroles als in de webapp |
| DATEV-proefbalans | Status en gepagineerde rijen met saldi en totalen die al met Cortena zijn gesynchroniseerd |
| Boekingen | Dimensies, status, lijst, totalen, transactiedetails voor gesynchroniseerde ERP-historie, vereist Boekingen bekijken |
| Support | Supporttickets van tenants weergeven en ophalen, vereist Supporttickets bekijken |
Schrijftools, alleen voor lezen + schrijven
Mutaties van facturen en workflows worden nooit in één stille stap uitgevoerd:
- Voorbereiden (
cortena_invoice_approve,cortena_invoice_review,cortena_invoice_update_service_accrualofcortena_change_prepare) retourneert een samenvatting in gewone taal,humanSummary, en eenconfirmationToken. - Je bevestigt dit expliciet in de chat.
- Toepassen (
cortena_change_commitmetuserConfirmed: true) voert de wijziging uit via dezelfde Cortena-API's als de webinterface.
Voorbereide wijzigingen verlopen na 15 minuten. De momenteel ondersteunde voorbereidingsbewerkingen zijn goedkeuren, controle voltooien, afwijzen met reden en de From/To-datums van de serviceperiode van een regel bijwerken, wanneer de functie voor boekingsvoorstellen voor overlopende kosten is ingeschakeld en de gebruiker Factuurregeldetails bewerken heeft.
Uitzonderingen voor schrijven, zonder stap voor voorbereiden en toepassen omdat de gebruikersactie al expliciet is:
- Inkoopfacturen uploaden (
cortena_invoices_upload): dezelfde verwerkingspipeline als bij handmatig uploaden in de interface. Vereist Facturen toevoegen. - Supportticketbewerkingen voor aanmaken, beantwoorden, sluiten, heropenen en koppelen: vereisen de bijbehorende supportmachtigingen.
Een token met toegang voor lezen + schrijven werkt nog steeds niet zonder de onderliggende Cortena-machtiging. Een upload zonder Facturen toevoegen mislukt bijvoorbeeld.
5. Verbonden boekhoudsystemen, wat MCP wel en niet kan wijzigen
MCP communiceert met Cortena. Het opent geen live schrijfkanaal naar je boekhoudsysteem.
| Verbinding | Richting in Cortena | Via MCP |
|---|---|---|
| DATEV Datenservice Export Rechnungswesen | Alleen-lezen inkomende synchronisatie naar Cortena, met boekjaren, rekeningschema, boekingshistorie, saldi en totalen / proefbalans | Assistenten kunnen de al gesynchroniseerde proefbalans en boekingshistorie in Cortena lezen. MCP kan geen DATEV-synchronisatie starten en kan via Datenservice Export geen gegevens naar DATEV uploaden of pushen. |
| DATEV Buchungsdatenservice (EXTF / documenten) | Uitgaande export van boekingsklare batches vanuit Cortena naar DATEV | Niet beschikbaar als MCP-tool. "Verzenden naar DATEV" blijft uitsluitend beschikbaar in de Cortena-webapplicatie en het bijbehorende auditlog. |
| Twinfield / Exact Online boekingshistorie | Gesynchroniseerd met Cortena voor rapportage | MCP kan gesynchroniseerde boekingen lezen als de gebruiker Boekingen bekijken heeft. MCP boekt niet naar deze systemen en exporteert er ook niet naartoe. |
| Upload van inkoopfacturen | Bestanden komen in Cortena terecht, S3 → extractie → factuurwerkruimte | Alleen toegestaan met lezen + schrijven + Facturen toevoegen. Dit stuurt geen facturen naar DATEV of een ander grootboek. |
Kort samengevat voor DATEV Datenservice Export Rechnungswesen: dit is een alleen-lezen API-verbinding van DATEV naar Cortena. Door een assistent te verbinden krijgt die assistent, of Cortena via MCP, geen mogelijkheid om via deze interface boekingen naar DATEV te schrijven, uploaden of pushen.
6. Toegangsmodel
De toegang weerspiegelt de bestaande Cortena-machtigingen van de gebruiker. Door een assistent te verbinden ontstaan geen nieuwe rechten voor facturen, workflows of boekhouding.
| Laag | Controles |
|---|---|
| MCP-clientlimiet | Toegestane tenants, read_only / read_write, optionele lijst met toegestane tools |
| MCP-toegang | Of de gebruiker MCP überhaupt op een tenant mag gebruiken |
| App-machtigingen | Dezelfde controles als in de webapp, zoals Facturen toevoegen, Boekingen bekijken, workflowgeschiktheid, supportmachtigingen en dergelijke |
| Workflowgeschiktheid | Goedkeuren en controleren alleen wanneer de gebruiker de huidige stap in de interface kan voltooien |
Toegang tussen klanten is niet mogelijk. Elke tenantgebonden aanroep wordt aan de serverzijde beperkt tot de bovenstaande doorsnede.
De effectieve controlepunten voor beheerders zijn: wie een Cortena-account heeft, wie MCP-toegang heeft, welke tenants en toegangsmodus elke connector toestaat en wanneer een client moet worden ingetrokken.
7. Waar de gegevens naartoe gaan nadat een assistent is verbonden
Dit betreft de relatie van de klant met de eigen AI-leverancier, niet die van Cortena. We raden aan dit expliciet te beoordelen:
Gegevens die uit Cortena worden opgehaald, worden overgedragen aan de verbonden assistent. De provider ontvangt deze gegevens op basis van de eigen overeenkomst en voorwaarden voor gegevensverwerking van de klant met die provider. Cortena is voor dat deel geen verwerkingsverantwoordelijke of verwerker en kan geen voorwaarden opleggen voor bewaartermijnen, opslag of training.
De beheerder van de klant bepaalt de activering in de organisatie-instellingen van de assistent en beslist welke gebruikers verbinding mogen maken. De eigen subverwerkers van Cortena zijn gedocumenteerd onder Subverwerkers.
8. Logging en offboarding
Levenscyclus van referenties
Cortena registreert belangrijke MCP-toegangsgebeurtenissen die aan een individuele gebruiker zijn toe te schrijven, niet aan een gedeeld serviceaccount, waaronder:
- Referentie / client aangemaakt
- Gebruiker verbonden, via inloggen met authorization code
- Client ingetrokken, verbinding verbroken
Payloads bevatten de gebruikersidentiteit, referentie-id, OAuth-client-id, label, toegangsmodus en toegestane tenants.
Elke schrijfactie
Schrijfacties verlopen via dezelfde bedrijfs-API's als de webapplicatie en verschijnen in het Activiteit-overzicht van de factuur (Auditlog):
| Actie | Auditgedrag |
|---|---|
| Goedkeuren / controleren / afwijzen / serviceperiode, na toepassen | Activiteitsvermelding bij de factuur voor de echte gebruiker, met initiatorkanaal mcp en een verwijzing naar de MCP-referentie |
| Upload van inkoopfacturen | Dezelfde import- en verwerkingshistorie als bij handmatig uploaden. De oorsprong van de upload is standaard mcp |
| Bewerkingen van supporttickets | Dezelfde supporttickethistorie als in de webinterface |
Voorbereide maar niet toegepaste wijzigingen worden alleen opgeslagen als records waarvoor nog bevestiging nodig is, met een vervaltijd van 15 minuten. Ze wijzigen geen facturen voordat ze zijn toegepast.
Gebruikstellers per client, zoals laatste gebruik en het aantal aanroepen per tool, worden op de MCP-client opgeslagen voor operationele zichtbaarheid. Ze vervangen niet het Activiteitsoverzicht van de factuur.
Offboarding
| Actie | Effect |
|---|---|
| De MCP-client intrekken via Instellingen | De client wordt inactief, tokens mislukken bij het volgende verzoek en vernieuwen voor die client mislukt |
| MCP-toegang verwijderen | De tenant valt buiten de in aanmerking komende set. Tenantgebonden tools retourneren forbidden |
| De gebruiker uit de tenant verwijderen | De lidmaatschapscontrole mislukt bij de volgende aanroep |
| Client ID / Secret roteren na een lek | Behandel dit als intrekken en opnieuw aanmaken |
9. Expliciete beperkingen, bèta
Het volgende is momenteel niet beschikbaar via de MCP-server voor gebruikers:
- Bankkoppelingen en tools voor banktransacties
- Treasury- en betalingsbatchuitvoering
- Triggers voor boekhouduitvoer, zoals DATEV Buchungsdatenservice, Exact, Twinfield en vergelijkbare acties voor "verzenden naar grootboek"
- De meeste bewerkingen van factuurvelden buiten workflowstappen en serviceperiode-datums
- Bulk toepassen van meerdere facturen
- Gebruikers- of tenantbeheer en het verbinden of verbreken van integraties
- Het starten van DATEV Datenservice Export-synchronisaties
- Elke push of upload naar DATEV via Datenservice Export Rechnungswesen
10. Contact
- Product- en beveiligingsvragen: compliance@cortena.ai
- Dagelijkse ondersteuning: support@cortena.ai
Voor stappen voor het instellen van de connector, zie MCP-server.