Is MCP veilig?

Is MCP veilig?

Is MCP veilig? Dat hangt af van hoe je de server bouwt. De echte risico's van MCP en wat je ertegen doet, op basis van de officiële beveiligingsrichtlijnen.

MCP is zo veilig als de manier waarop je het bouwt en gebruikt. De specificatie zegt dat zelf ook: het protocol kan zijn veiligheidsregels niet afdwingen, dat moeten de bouwers doen. Met beperkte toegang, alleen lezen waar het kan, logging en een mens die acties bevestigt, maak je de risico's een stuk kleiner. Helemaal zonder risico wordt het nooit.

Waarom dit ertoe doet

Een MCP-server geeft een AI-model toegang tot je systemen. Het model kan tools aanroepen en krijgt gegevens terug. De specificatie noemt tools letterlijk het uitvoeren van willekeurige code, en vraagt er voorzichtig mee om te gaan. Wat is MCP precies? Dat lees je in MCP: hoe je AI koppelt aan je bestaande software.

De echte risico's

Te brede toegang

Het makkelijkste is een server die overal bij kan, met de hele database erachter. Dat is ook het gevaarlijkste. Gaat er iets mis, dan is de schade zo groot als de toegang. De beveiligingsrichtlijnen van MCP waarschuwen hier ook voor. Een sleutel met brede rechten die uitlekt, geeft toegang tot alles wat die sleutel mag.

Onduidelijke rechten

Namens wie werkt de server? Draait hij met één beheeraccount, dan ziet elke gebruiker via de AI alles wat dat account ziet. Een medewerker die normaal alleen eigen klanten ziet, kan dan ineens de cijfers van iedereen opvragen. De richtlijnen verbieden ook dat een server sleutels aanneemt en doorgeeft die niet voor die server zijn uitgegeven.

Prompt injection via gegevens

Een AI-model leest wat een tool teruggeeft. Staat daar een instructie in, dan kan het model die opvolgen. Denk aan een mail, een productomschrijving of een reactie van een klant met een verborgen opdracht erin.

Dat dit echt gebeurt, liet beveiligingsbedrijf Invariant Labs in mei 2025 zien. Iemand plaatste een issue met verborgen instructies in een openbare repository op GitHub. Een AI-agent met de GitHub MCP-server las dat issue. Daarna haalde hij gegevens uit een privé-repository en zette die in een openbare pull request. Volgens de onderzoekers zat de fout niet in de code van de server. Het ging mis bij de agent zelf: die kon in één sessie onbetrouwbare tekst lezen, bij privégegevens komen en iets openbaar zetten.

Inloggegevens

Een MCP-server heeft sleutels nodig om bij je systeem te kunnen. Staan die in een configuratiebestand op een laptop, of komen ze in een tekst die het model leest, dan kunnen ze uitlekken.

Servers van anderen

Een MCP-server die je lokaal installeert, draait met dezelfde rechten als je AI-toepassing. Volgens de richtlijnen kan een kwaadwillende server daardoor willekeurige code uitvoeren. Installeer dus alleen servers waarvan je weet wie ze maakt en wat ze doen.

Wat je ertegen doet

Geef alleen toegang tot wat nodig is. Een handvol tools die precies doen wat afgesproken is. Alleen de velden die de AI nodig heeft. En sleutels met zo min mogelijk rechten.

Werk met de rechten van de gebruiker. De server ziet per persoon alleen wat die persoon in je systeem ook mag zien.

Begin met alleen lezen. Leestools veranderen niets. Gaat er iets mis, dan is er niets kapot. Schrijftools komen pas later, en alleen waar ze echt iets opleveren.

Laat een mens acties bevestigen. Volgens de specificatie hoort er altijd iemand te zijn die een aanroep kan weigeren. Doe dat zeker bij acties die gegevens veranderen. Zet een knop als "altijd toestaan" niet zomaar aan, want dan kijkt niemand meer mee.

Log elke aanroep. Dan zie je per aanroep welke tool het was en wie hem gebruikte. Gaat er iets raar, dan kun je terugzien wat er gebeurde.

Houd geheimen buiten het model. Sleutels en wachtwoorden blijven op de server. Ze komen nooit in een prompt of in wat een tool teruggeeft. De server controleert ook elke invoer voordat hij er iets mee doet.

Let op gevaarlijke combinaties. Leest de AI onbetrouwbare tekst, kan hij bij privégegevens en kan hij iets naar buiten schrijven? Dan heb je de situatie uit het GitHub-voorbeeld. Haal een van die drie weg, of zet er een bevestiging tussen.

Wat dit betekent als je een MCP-server laat bouwen

Vraag naar die punten. Welke tools komen er, en met welke rechten? En waar staan de sleutels? Een goede bouwer heeft daar een antwoord op. Hoe wij een MCP-server opzetten, lees je bij MCP-server laten bouwen.

Wil je weten waar de risico's zitten bij jouw systeem? Stuur Adem een bericht.

Veelgestelde vragen

Kan een AI via MCP mijn hele database lezen?

Alleen als de server dat toestaat. Een AI kan via MCP niets wat de server niet als tool aanbiedt. Bouw je de server zo dat hij alleen een paar vaste vragen beantwoordt, dan blijft de rest van je database dicht.

Wat is prompt injection bij MCP?

Een instructie die verstopt zit in de gegevens die de AI leest. Bijvoorbeeld in een mail of een reactie van een klant. Het model kan die instructie opvolgen alsof jij hem gaf. Beperkte toegang en een bevestiging bij acties maken de schade een stuk kleiner.

Kan ik zomaar een MCP-server van internet installeren?

Liever niet. Een lokale MCP-server draait met dezelfde rechten als je AI-toepassing en kan dus code op je computer uitvoeren. Installeer alleen servers van een maker die je vertrouwt, en kijk wat ze mogen.

Gaan mijn gegevens via MCP naar de AI-aanbieder?

Wat een tool teruggeeft, komt bij het AI-model terecht. Die gegevens gaan dus naar de aanbieder van dat model. Stuur daarom alleen de velden mee die nodig zijn, en check waar je aanbieder de gegevens verwerkt.

ready?

build with
baboons

Snel, clean en gemaakt voor de toekomst.