
n8n biedt bij instance-level MCP OAuth-keuze tussen volledige toegang, read-only en aangepaste scopes. De instelling is pas nuttig wanneer je daarna test welke tools zichtbaar zijn, welke acties werken en wat er in outputs of logs verschijnt. Een instellingenscherm bewijst niet dat workflow, gebruikersrechten en OAuth-grant samen de bedoelde grens vormen.
Beoogde publicatiedatum: 2026-10-19 · Laatst bijgewerkt: 2026-10-19 · Auteur: Joost Heijden
Dit is een demo-plan voor een wegwerpbare testinstance met één statische workflow. Er is geen klanttenant, echte credential of muterende integratie gebruikt. De checks laten zien hoe je vóór koppeling vaststelt wat een agent werkelijk kan zien en doen.
Wat begrenzen n8n MCP OAuth scopes wel en niet?
De OAuth-grant begrenst MCP-acties voor een verbinding; workflow-exposure en de rechten van de n8n-gebruiker bepalen daarnaast welke workflows die verbinding kan vinden. Test dus zowel consent als toolcatalogus en side effects.
De n8n 2.32-release notes beschrijven scopekeuze als All, Read only of Custom over workflows, executions, credentials, data tables en projecten/mappen. Volgens dezelfde release notes worden scopes end-to-end afgedwongen zodat tools buiten scope niet worden getoond of aangeroepen. De belangrijke voetnoot: bestaande verbindingen behielden volledige toegang na die update.
Voor instance-level MCP geldt bovendien dat alle aangesloten clients dezelfde MCP-ingeschakelde workflows kunnen zien en gebruiken waarvoor de huidige gebruiker rechten heeft; de exposure is niet per MCP-client in te stellen. De aparte tool search_workflows kan previews tonen van alle workflows die de gebruiker mag bekijken, ook als MCP voor die workflow uitstaat. Deze previews geven geen volledige workflowdata en maken uitvoeren of wijzigen niet mogelijk. Test previewzichtbaarheid daarom apart van MCP-exposure en toolrechten. Maak gevoelige workflows niet breed beschikbaar om een testverbinding ze te laten proberen.
Stap 1: welk n8n MCP-type test je?
Bevestig eerst dat je instance-level MCP gebruikt. De scope-picker uit deze tutorial hoort bij OAuth-consent voor die server. De afzonderlijke MCP Server Trigger-node exposeert tools uit één workflow en documenteert eigen authenticatieopties zoals Bearer- of Header-auth; neem niet aan dat dezelfde OAuth scopekeuze daar geldt.
Noteer n8n-versie, updatekanaal, queue-mode, workerconfiguratie en type verbinding. De officiële releasespagina vermeldt op 19 oktober 2026 versie 2.43.7 als laatste stable release (16 oktober); 2.44.3 staat als pre-release gemarkeerd. Jouw n8n Cloud- of self-hosted instance kan een andere versie of rollout hebben. Controleer daarom de versie en het updatekanaal van jouw instance; een releasepagina bewijst niet welke versie jij draait.
Maak in een lokale testinstance één gepubliceerde webhook-workflow die alleen een vaste demonstratiewaarde retourneert, bijvoorbeeld {"status":"ok","ticket":"DEMO-001"}. De workflow roept geen externe API aan, wijzigt niets en gebruikt geen echte credential. Publicatie is alleen nodig als jouw gekozen MCP-route een gepubliceerde workflow vereist.
Stap 2: begin met een nieuwe read-only grant
Maak een aparte testclient aan en kies bij de OAuth-consent Read only. Gebruik bij Custom alleen de categorieën die je nodig hebt. Noteer client, gebruiker, scopekeuze en datum; registratie alleen bewijst nog niet dat iedere tool zich aan de grens houdt.
Exposeer voor de test alleen de demonstratieworkflow. Controleer dat instance-level MCP aanstaat en dat geen workflow automatisch of per ongeluk bij de testgroep is gevoegd. Een read-only scope is geen reden om een workflow met schrijf- of betaalbijwerkingen beschikbaar te maken: een workflow kan al effecten hebben bij uitvoering, ook als toestemming “read-only” klinkt.
Stap 3: test wat de client ziet en uitvoert
Gebruik je MCP-client of een inspectietool om eerst de toolcatalogus op te vragen met tools/list. Vergelijk de zichtbare tools met je bedoelde scope. Leg de exacte toolnamen vast die jouw n8n-versie aanbiedt; die kunnen per versie en instanceconfiguratie verschillen.
Voer daarna een onschuldige positieve test uit op de demonstratieworkflow als je scope en versie dat toestaan. De verwachte waarde is de vaste demo-uitkomst. Kies vervolgens één bekende actie buiten de ingestelde scope en probeer die met tools/call aan te roepen. Een geslaagde negatieve test betekent dat de actie ontbreekt of wordt geweigerd én dat er geen execution, workflowmutatie of externe side effect heeft plaatsgevonden.
| Controle | Verwacht | Bewijs |
|---|---|---|
Read-tool verschijnt in tools/list |
Alleen als die binnen scope en userrechten valt. | Vastgelegde toolcatalogus en scope. |
| Demo-read wordt aangeroepen | Alleen de vaste, niet-gevoelige waarde komt terug. | MCP-output plus executionrecord zonder neveneffect. |
| Mutatie buiten scope wordt geprobeerd | Tool ontbreekt of call wordt geweigerd. | Foutstatus, geen workflowdiff en geen mutatie-event. |
| Execution- of credentialtool buiten scope | Niet bruikbaar voor de testclient. | Geen tool of geweigerde call; geen geheime waarde in response of logs. |
Behandel geheimredactie als een aparte controle, niet als gevolg van een OAuth-scope. Gebruik hoogstens een betekenisloze dummycredential in een wegwerpinstance en controleer response, execution-output en logs op blootstelling. Gebruik nooit een werkend wachtwoord of API-token voor deze test.
Stap 4: trek de oude grant apart in
Een update van n8n 2.32 heeft bestaande OAuth-verbindingen niet automatisch teruggebracht tot read-only. Herroep de oude testgrant in Connected clients, maak een nieuwe verbinding aan en doorloop de consent opnieuw. Voer daarna de positieve en negatieve checks nog eens uit.
Herhaal de test voor iedere client of identity die je wilt aansluiten. De OAuth-permissies horen bij een verbinding, maar de set MCP-workflows is niet per client afgeschermd. Beperk dus de algemeen beschikbare workflows en test per gebruikersrol welke daarvan die gebruiker kan zien.
Stap 5: controleer worker en logs
Als je n8n in queue-mode draait, bevestig dan met de positieve en negatieve probe waar de MCP-tool werkelijk wordt uitgevoerd. Een release note of correcte consentpagina bewijst niet dat jouw worker-, proxy- of loggingconfiguratie dezelfde grens afdwingt.
Leg alleen vast wat je nodig hebt: n8n-versie, client-ID als niet-geheime referentie, scopes, toolnaam, beslissing, execution-ID, testresultaat en tijd. Redigeer prompts, headers, tokens, credentials en teruggegeven workflowdata. Laat een test falen wanneer een verboden call toch een execution start of een geheim in logs verschijnt.
Welke foutmodus kan een groene read-only test verbergen?
Een read-only toestemming kan beperkt lijken terwijl de client oude volledige consent houdt, een workflow tóch een externe schrijfactie uitvoert of een andere client dezelfde exposure-set ziet. Test die grenzen apart en reset de testinstance tussen consentwijzigingen.
De MCP Server Trigger-node is ook een bron van verwarring. Hij maakt een MCP-server binnen één workflow met eigen node-authenticatie. Een test met die node toont niets over instance-level OAuth scope selection. Houd de routes in je documentatie en threat model gescheiden.
Kosten zitten in het beheren van een testinstance, OAuth-clients en eventuele queue-workers. Voor de scopecheck zijn synthetische workflowdata en geen productiecredentials nodig. Gebruik een aparte tenant wanneer je technisch of juridisch geen geïsoleerde lokale omgeving kunt gebruiken.
Wanneer gebruik je OAuth scopes en wanneer kies je iets anders?
Gebruik instance-level OAuth scopes wanneer een MCP-client met de n8n-instance moet samenwerken en je de grant per verbinding wilt beperken. Voeg een kleine MCP-exposurelijst en bestaande gebruikersautorisatie toe. Kies MCP Server Trigger wanneer je één specifieke workflow als eigen MCP-oppervlak wilt ontwerpen en node-authenticatie en uitvoering afzonderlijk kunt beheren.
Gebruik geen MCP-koppeling voor workflows met onomkeerbare effecten die je niet kunt simuleren of terugdraaien, of als je geen workflow-eigenaar hebt. Een scope is één deel van de toegangsketen, geen vervanging voor beleid in de workflow en downstream-systemen.
Voor de Azure-kant van private MCP-tools lees je hoe een Azure Functions MCP-server met Entra en API Center werkt. Voor protocolcontext zie wat verandert wanneer een MCP-server sessieloos wordt. Bekijk ook AI engineering voor veilige workflowintegraties.
Besliskader
| Situatie | Keuze | Voorwaarde |
|---|---|---|
| Agent heeft enkele leesfuncties nodig | Read only of kleine Custom-scope. | Workflow-exposure en n8n-userrechten beperken data ook. |
| Eén workflow heeft een beperkt toolcontract nodig | MCP Server Trigger-node. | Test node-authenticatie, effecten en output afzonderlijk. |
| Bestaande client heeft brede consent | Revoke en maak een nieuwe OAuth-grant. | Bewijs de nieuwe scope opnieuw; vertrouw niet op alleen een update. |
| Geen manier om executions, credentials of side effects te controleren | Stel agentkoppeling uit. | Voeg eerst observability en een veilige testomgeving toe. |
Bronnen
- n8n Docs, n8n 2.32 release notes, scopekeuze uitgebracht 2026-07-21, opnieuw geraadpleegd 2026-10-19. Beschrijft All, Read only en Custom, end-to-end scope enforcement en het behoud van volledige toegang bij bestaande verbindingen. De release note test jouw instance niet.
- n8n Docs, Connect to n8n MCP server, actuele documentatie geraadpleegd 2026-10-19. Beschrijft MCP-enabled workflows, previews voor search_workflows, workflowpermissies en het gedeelde aanbod voor clients met dezelfde gebruiker.
- n8n, stable release 2.43.7 en pre-release 2.44.3, geraadpleegd 2026-10-19. Deze publieke tags bewijzen niet welke versie een specifieke Cloud- of self-hosted instance draait.
- n8n Docs, MCP Server Trigger node, actuele documentatie geraadpleegd 2026-10-19. Beschrijft een afzonderlijke MCP-route binnen één workflow met eigen authenticatieopties, niet de instance-level OAuth-grant.
Beeldbrief: OAuth-consent naar scopes, tools/list, veilige demo-read en geweigerde call; aparte workflow-exposure en revoke/re-consent-stap.
Alt-tekst: n8n MCP OAuth-test met scopekeuze, toolinventaris, toegestane read en geweigerde call.