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.
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.
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.
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.
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.
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.
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:
Vier vragen, in ongeveer een minuut te beantwoorden vanaf de installatiepagina van elke leverancier.
https://-URL is een server in de cloud.
Een npx-, uvx- of docker-opdracht is een proces op uw machine.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.
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.
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.
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.
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.
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.
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.