Lokale of cloud-MCP-server: wat uw AI werkelijk te zien krijgt

De woorden lokaal en cloud worden bij MCP-servers gebruikt alsof ze de privacyvraag beantwoorden. Dat doen ze niet. Ze beantwoorden precies één vraag — waar het serverproces draait — en laten de vraag waar het de meeste mensen werkelijk om gaat onaangeroerd: wie uw gegevens uiteindelijk kan lezen.

Kort samengevat: een lokale MCP-server houdt uw gegevens weg bij de infrastructuur van de leverancier; buiten het gesprek houdt hij ze niet. Wat uw assistent via welke MCP-server dan ook leest, lokaal of in de cloud, gaat naar het model waarmee u op dat moment chat. Lokaal verandert wie uw gegevens opslaat en wie erbij kan. Het verandert niet wat het model ziet.

Dit artikel scheidt die twee dingen. Is het protocol zelf nieuw voor u, dan behandelt wat een MCP-server is eerst de basis.

Wat "lokaal" en "cloud" technisch betekenen

De MCP-specificatie, revisie 2026-07-28, definieert precies twee standaardtransporten, en die vallen netjes samen met de twee woorden.

stdio — de lokale. De client start de MCP-server als subproces en de twee praten via de standaardinvoer en -uitvoer van dat proces, één JSON-RPC-bericht per regel. Er is geen netwerkverbinding en geen poort. Sluit de client af, dan sluit hij de invoerstroom van de server en stopt het proces. Dat is wat "draait op uw machine" concreet betekent.

Streamable HTTP — die in de cloud. De server is een zelfstandig proces met één HTTP-endpoint, en elk bericht is een HTTP-POST daarheen. De client bereikt hem over het netwerk op een URL als https://mcp.example.com/mcp. Dit is het transport achter elke knop "koppel uw account".

Het onderscheid is een keuze in uitrol, geen verschil in mogelijkheden. De specificatie zegt expliciet dat de protocolsemantiek op elk transport identiek is: een transport bepaalt hoe berichten worden verpakt en bezorgd, niet wat ze betekenen. Een tool dat uw vergadertranscripten leest, doet in beide gevallen hetzelfde werk.

Wie uw gegevens in elke opzet kan zien

Dit is de vraag waar die twee woorden meestal voor in de plaats staan, en er zijn meer dan twee antwoorden. Vier partijen kunnen in principe lezen wat er door een MCP-verbinding gaat.

Wie Lokale server (stdio) Cloudserver (HTTPS)
De MCP-leverancier Krijgt de gegevens niet Bewaart ze en bedient elk verzoek
Uw modelaanbieder Ziet alles wat de assistent leest Ziet alles wat de assistent leest
Uw AI-clientapp Leest ze lokaal om de prompt te bouwen Idem
Wie het token heeft Er is geen token om te stelen Komt bij dezelfde gegevens tot het wordt ingetrokken

De middelste regel is degene die mensen verrast, en hij is in beide kolommen gelijk. Een MCP-server geeft het model geen privékanaal. Hij haalt tekst op en geeft die aan de client, die hem in de prompt zet. Vanaf dat moment hebben de gegevens uw machine verlaten, ongeacht waar de server draaide.

De eerste en de laatste regel zijn de plekken waar lokaal echt wint. Bij stdio is er geen account, geen bewaarde kopie op andermans schijf en geen inloggegevens die bij een datalek gestolen of gelekt kunnen worden — want er valt niets te autoriseren.

Lokaal proces, clouddata: de vorm die vervaagt

Er zijn hier drie vormen, geen twee, en leveranciers lichten de middelste er zelden uit.

Cloudserver, clouddata. De leverancier host de server, u autoriseert hem met OAuth in de browser en uw client doet een HTTPS-aanroep zodra hij iets nodig heeft. De natuurlijke vorm wanneer uw gegevens toch al in die cloud staan.

Lokaal proces, clouddata. De leverancier levert een server die u zelf draait — een npx-, uvx- of docker-opdracht die uw AI-client start en die een API-sleutel bevat. Daarmee worden de gegevens niet lokaal. Het proces draait op uw laptop en roept vervolgens voor elk verzoek de API van de leverancier over het netwerk aan. Dit is het geval dat u wilt uitsluiten wanneer iemand zegt dat zijn MCP-server lokaal is.

Lokaal proces, lokale data. De gegevens staan al op de machine, dus de server leest ze zonder enige netwerkaanroep. Dit is de enige vorm waarin "lokaal" de gegevens beschrijft en niet alleen het proces.

Het verraadt zich in de inloggegevens, niet in de opdracht. Een aanmelding in de browser betekent dat de gegevens van de leverancier zijn en dat u daar toegang toe geeft. Een API-sleutel in een configuratiebestand betekent dat een lokaal proces hun API namens u aanroept. Lokale gegevens zijn het geen van beide.

Wat een cloudautorisatie werkelijk toestaat

Klikt u voor een cloud-MCP-server door een OAuth-scherm, dan geeft u inloggegevens uit op uw account, en het is nuttig te weten wat die kunnen.

De MCP-specificatie bouwt dit op OAuth 2.1. Clients moeten de resource-parameter uit RFC 8707 meesturen zodat het token aan één specifieke server is gebonden, en servers moeten controleren dat een token voor hen is uitgegeven en mogen niets anders accepteren of doorsturen. Die machinerie bestaat om te voorkomen dat een token dat voor de ene dienst is uitgegeven, tegen een andere wordt hergebruikt.

Drie praktische gevolgen:

Voor stdio geldt hiervan niets. De autorisatiespecificatie stelt expliciet dat zij HTTP-gebaseerde transporten dekt en dat implementaties met stdio haar niet zouden moeten volgen, maar inloggegevens uit de omgeving halen.

Waar een lokale server op inlevert

Lokaal is geen synoniem voor veilig, en de eerlijke versie van dit betoog moet zeggen wat u ervoor inlevert.

Er is meestal geen rechtenlaag. Omdat de autorisatiespecificatie niet geldt, kent een stdio-server doorgaans geen gebruikers of scopes. Alles wat onder uw gebruikersaccount draait, kan hem in de regel starten en zijn tools aanroepen. Op een gedeelde of beheerde machine doet dat ertoe.

Een lokale server op een poort is een ander verhaal. Sommige servers die lokaal heten, luisteren in werkelijkheid op HTTP. De specificatie gaat daar direct op in: servers moeten de Origin-header controleren om DNS-rebinding-aanvallen te voorkomen, en zouden lokaal alleen aan 127.0.0.1 moeten binden in plaats van aan 0.0.0.0. Zonder die bescherming, waarschuwt de specificatie, kunnen aanvallers via DNS rebinding vanaf externe websites met lokale MCP-servers communiceren.

U erft de toeleveringsketen. Een server die met npx wordt gestart, haalt code op en voert die met uw rechten op uw machine uit. De OWASP MCP Top 10, in 2026 nog in bèta, noemt onder zijn tien categorieën aanvallen op de toeleveringsketen en gemanipuleerde afhankelijkheden (MCP04:2025) en tool poisoning (MCP03:2025) — risico's die een lokale installatie meebrengt en een gehost endpoint niet. Over het algemene geval is de specificatie ronduit: tools staan gelijk aan het uitvoeren van willekeurige code, en beschrijvingen van wat een tool doet zijn niet te vertrouwen tenzij ze van een vertrouwde server komen.

De regel die beide vormen delen

MCP voegt geen rechtenmodel aan uw gegevens toe. Het standaardiseert hoe tools worden beschreven en aangeroepen; waar een bepaald tool aan mag komen, is een beslissing van wie de server heeft geschreven. Daaruit volgen twee dingen, ongeacht het transport:

  1. De toollijst is de rechtenlijst. Namen en aantallen op een installatiepagina zijn concreet. "AI-gedreven intelligentie" is dat niet. Gaat het u om alleen-lezen, dan is de toollijst de plek waar dat wel of niet klopt.
  2. Alles wat gelezen wordt, wordt promptinhoud. Ophalen via MCP is geen privéopzoeking. Het is tekst onderweg naar een gesprek met een modelaanbieder, onder diens bewaartermijnen.

Hoe u bepaalt welke u hebt

Vier vragen, in ongeveer een minuut te beantwoorden vanaf de installatiepagina van elke leverancier.

  1. Waarmee verbindt de client? Een https://-URL is een server in de cloud. Een npx-, uvx- of docker-opdracht is een proces op uw machine.
  2. Welke inloggegevens wil hij? Een aanmelding in de browser betekent de cloud van de leverancier. Een API-sleutel in een configuratiebestand betekent een lokaal proces dat hun API aanroept. Helemaal geen inloggegevens betekent dat de gegevens al op de machine stonden.
  3. Waar staan de gegevens zonder MCP? Staan uw notities vandaag in de cloud van een leverancier, dan haalt geen enkel MCP-transport ze daar weg.
  4. Welke client gebruikt u? Claude Desktop draait lokale servers rechtstreeks, geïnstalleerd als desktopextensie. ChatGPT verbindt in ontwikkelaarsmodus met externe HTTPS-endpoints, dus een lokale stdio-server bereiken betekent er een tunnel voor zetten. Dezelfde server kan lokaal zijn in de ene client en extern in de andere.

Wanneer de cloud het betere antwoord is

Ronduit, want de keuze is niet eenzijdig:

De cloud verliest op één as, maar dat is de as waar dit artikel over gaat: een kopie van uw gegevens staat op andermans infrastructuur, bereikbaar met inloggegevens.

Waar dit u brengt

Stel twee vragen in plaats van één. Waar draait de server vertelt u wie uw gegevens bewaart en wie er met een token bij kan. Wat leest de assistent vertelt u wat er naar uw modelaanbieder gaat — en dat antwoord is in beide gevallen hetzelfde.

Wilt u de vorm lokaal proces op lokale data, dan is dat wat de MCP-server van Speak-Y doet: hij is onderdeel van de desktopapp, installeert zich met één klik vanuit Instellingen → Integraties en leest de opnamen die al op uw machine staan, zonder account, zonder API-sleutel en zonder gehoste kopie. Lezen werkt met de app dicht; de tools die iets wijzigen lopen via de app en vragen eerst om bevestiging, en de optie --read-only beperkt een client tot lezen. De server is gratis bij elk abonnement. De MCP-documentatie beschrijft de handmatige installatie, het privacybeleid vermeldt wat waar wordt opgeslagen, en wilt u zien hoe andere notitietools dezelfde vraag beantwoorden, dan hebben we hun MCP-servers vergeleken.

FAQ

Wat is het verschil tussen een lokale en een cloud-MCP-server?

Een lokale server is een programma dat uw AI-client op uw eigen computer start en waarmee hij praat via de standaardinvoer en -uitvoer van dat proces, zonder netwerk ertussen. Een cloudserver is een webdienst die de client via HTTPS bereikt, geautoriseerd met OAuth. De MCP-specificatie noemt dit de transporten stdio en Streamable HTTP.

Houdt een lokale MCP-server mijn gegevens verborgen voor de AI?

Nee. Een lokale server houdt uw gegevens weg bij de servers van de leverancier, maar alles wat de assistent er via leest, gaat als onderdeel van het gesprek naar uw modelaanbieder, precies alsof u het zelf had geplakt. Lokaal bepaalt opslag en toegang, niet wat het model ziet.

Is een lokale MCP-server veiliger dan een server in de cloud?

Hij is privacyvriendelijker, maar niet automatisch veiliger. De MCP-autorisatiespecificatie geldt alleen voor HTTP-transporten; stdio-servers wordt aangeraden inloggegevens uit de omgeving te halen, dus een lokale server heeft meestal geen eigen rechtenlaag. Alles wat onder uw gebruikersaccount draait, kan er doorgaans bij.

Hoe zie ik of een MCP-server lokaal of in de cloud draait?

Aan de installatie-instructies. Een https://-URL en een aanmelding in de browser wijzen op de cloud van de leverancier. Een opdracht als npx, uvx of docker wijst op een proces op uw machine. Een lokaal proces met een API-sleutel roept nog steeds hun API aan, dus de opdracht alleen zegt niets over waar de gegevens staan.

Kunnen ChatGPT en Claude allebei lokale MCP-servers gebruiken?

Claude Desktop draait lokale servers rechtstreeks, geïnstalleerd als desktopextensie. ChatGPT verbindt in ontwikkelaarsmodus met externe HTTPS-endpoints, dus een lokale stdio-server moet eerst via een tunnel bereikbaar worden gemaakt. Dezelfde server kan dus lokaal zijn in de ene client en extern in de andere.