MCP en API-DATA
Inleiding
Model Context Protocol (MCP) is een open protocol voor het verbinden van large language model toepassingen met externe data en tools via een gestandaardiseerde interface.
Het doel van MCP is om AI assistenten en agenten op een uniforme manier te laten communiceren met databronnen, API's, bestanden en andere systemen. In plaats van per integratie een eigen koppeling te schrijven, biedt MCP een generieke laag waarboven AI toepassingen kunnen werken.
In de context van MCP wordt vaak gesproken over API data, omdat het protocol in de praktijk gebruikmaakt van bestaande API's van databronnen. MCP definieert niet hoe de interne API van een systeem eruitziet, maar beschrijft hoe een AI toepassing een MCP server kan ontdekken, welke functionaliteit beschikbaar is, welke resources geraadpleegd kunnen worden en hoe tools op een veilige manier aangeroepen kunnen worden.
Dit artikel beschrijft de basisbegrippen, architectuur en dataflows van MCP, en legt uit hoe API data in deze architectuur wordt ontsloten voor AI modellen.
Definitie van MCP
MCP, voluit Model Context Protocol, is een open, op JSON-RPC 2.0 gebaseerd protocol dat een standaard manier biedt om context en functionaliteit vanuit externe systemen beschikbaar te maken voor LLM toepassingen. De kern is dat MCP:
een client server model gebruikt voor het uitwisselen van contextdata en toolfunctionaliteit
JSON gebaseerde berichten definieert voor discovery, lifecycle en tooluitvoering
een reeks features specificeert, zoals resources, prompts en tools, inclusief uitbreidingen als sampling, roots en elicitation
MCP zelf is agnostisch ten aanzien van welk LLM wordt gebruikt. Het protocol schrijft niet voor hoe het model wordt aangestuurd, maar alleen hoe host, client en server context en acties onderling structureren.
Architectuur en componenten
Deelnemers in MCP
De MCP architectuur hanteert drie hoofdrollen die samen de gegevensstroom bepalen.
MCP host De host is de AI toepassing die de regie voert, bijvoorbeeld een desktopapplicatie, IDE plugin of chatinterface. De host start MCP clients, onderhoudt verbindingen en presenteert de resultaten aan de gebruiker of aan het onderliggende model.
MCP client Een client is een component binnen de host die een één op één verbinding beheert met een specifieke MCP server. De client implementeert de MCP basisprotocolregels, verstuurt verzoeken, ontvangt antwoorden en verzorgt de vertaling naar de hostomgeving.
MCP server De server is een programma dat contextdata en tools exposeert aan MCP clients. De server kan lokaal draaien (bijvoorbeeld via STDIO, direct op dezelfde machine) of op afstand, bijvoorbeeld als webservice die via een transportlaag zoals WebSockets of een andere stream bereikbaar is.
Een host kan meerdere clients bevatten, en elke client is gekoppeld aan precies één server. Op die manier kan een AI toepassing tegelijk verbinding hebben met meerdere externe systemen, ieder via zijn eigen MCP server.
Lagen in de architectuur
De architectuur van MCP kan in drie conceptuele lagen worden onderverdeeld.
Transportlaag Deze laag verzorgt de fysieke verbinding tussen client en server. Voorbeelden zijn STDIO voor lokale servers of netwerkgebaseerde transporten voor remote servers. Het protocol schrijft de exacte transporttechnologie niet dwingend voor, maar gaat uit van een bidirectioneel kanaal.
Datalayer protocol In de datalaag zijn de JSON-RPC 2.0 berichten, methoden en parameters gedefinieerd voor discovery, tooluitvoering, resource toegang en notificaties. Hier wordt vastgelegd hoe servers hun capabilities kenbaar maken en hoe clients verzoeken formuleren.
Featurelaag Daarboven liggen MCP features zoals resources, tools en prompts, plus optionele client features zoals sampling en roots. Deze features beschrijven op een hoger niveau welke soorten data en acties beschikbaar zijn.
Kernfeatures: resources, prompts en tools
Resources
Resources zijn de representatie van gegevens of context die een server beschikbaar stelt. Dit kan gaan om bijvoorbeeld productcatalogi, logbestanden, documenten, CRM records of events in een dataplatform. Elke resource heeft metadata, zoals naam, type en een URI of pad waarmee het benaderd kan worden.
Via het MCP dataprotocol kan een client een lijst van beschikbare resources opvragen, details opvragen over een specifieke resource en de inhoud of een deel van de inhoud laten ophalen. De server bepaalt zelf hoe dit 'onder water' gebeurt, meestal door via een interne API of database een query uit te voeren. De host ziet alleen de gestructureerde JSON respons.
Prompts
Prompts in MCP zijn herbruikbare prompttemplates of workflows die door de server worden aangeboden. Ze vormen in feite een soort voorgedefinieerde interactiepatronen die de host aan de gebruiker of aan een model kan aanbieden. Een prompt kan variabelen hebben en kan verwijzen naar specifieke resources of tools.
Door prompts via MCP te exposeren kunnen serverontwikkelaars domeinspecifieke promptlogica bundelen. De client kan deze prompts ophalen, invullen met concrete parameters en vervolgens gebruiken in interacties met het LLM.
Tools
Tools zijn functies die de server beschikbaar stelt om acties uit te voeren, zoals het aanmaken van records, het uitvoeren van een query, het triggeren van een workflow of het genereren van een rapport. Tools worden beschreven met een naam, parameterschema en een beschrijving van het gedrag.
De client kan tools ontdekken via tool discovery en daarna een tool execution request sturen, inclusief de benodigde parameters. De server voert de actie uit op basis van zijn interne API's of systemen en retourneert een resultaatsobject. Het LLM kan deze tools gebruiken als 'acties' in een tool calling scenario.
Levenscyclus van een MCP verbinding
Initialisatie en discovery
Bij het opzetten van een verbinding start de host een MCP client met de configuratie voor een specifieke server. De client naaiert een initialisatieuitwisseling, waarbij client en server:
capabilities uitwisselen
beschikbare features en versies bekendmaken
optionele configuratie opvragen of doorgeven
Na deze stap weet de client welke resources, prompts en tools beschikbaar zijn en welke berichten de server ondersteunt. Dit wordt vaak in interne datastructuren vastgelegd, zodat het LLM deze mogelijkheden kan 'zien' via de host.
Tool discovery
Tool discovery is het proces waarbij de server aan de client bekendmaakt welke tools er bestaan, welke parameters zij accepteren en welke semantiek zij hebben. Dit gebeurt via JSON-RPC berichten die een gestructureerde lijst van tools teruggeven.
de toolset zichtbaar te maken in de interface
het schema door te geven aan het LLM, zodat het model weet welke toolnamen en parameters het mag gebruiken
tooling op te bouwen die tools sorteert, filtert of annotaties toevoegt
Wanneer het LLM besluit een tool aan te roepen, vertaalt de host deze intentie naar een MCP tool execution request. Dit bericht bevat in elk geval:
Tool execution
de naam of identifier van de tool
de parameterwaarden, meestal als JSON object
een context of correlation id, zodat antwoorden gekoppeld kunnen worden
De server voert de interne actie uit, meestal via een API call naar een bestaand systeem, en stuurt vervolgens een uitvoeringresultaat terug. Dat resultaat wordt door de client aan de host doorgegeven en daarna aan het model gepresenteerd als tool output.
Notificaties
MCP ondersteunt daarnaast notificaties, waarmee servers bijvoorbeeld wijzigingen in de lijst van tools of resources kunnen melden. Dit maakt dynamische omgevingen mogelijk, waarin servers tijdens runtime nieuwe mogelijkheden kunnen toevoegen of verwijderen. Clients reageren hierop door hun lokale representatie van de servercapabilities bij te werken.
API data in MCP
Rol van API's
MCP beschrijft niet hoe een onderliggend systeem zijn API implementeert, maar gaat er wel vanuit dat de MCP server toegang heeft tot een gestructureerde datalaag, meestal via een REST, GraphQL of andere API. In de praktijk fungeert de MCP server als adapter tussen een bestaande API en de MCP wereld.
database of SaaS applicatie met bestaande REST API
dataplatform zoals een event store of KQL database met query API
interne bedrijfsservices met eigen endpoints
De MCP server vertaalt een resource request of tool execution naar één of meerdere API calls, verwerkt de respons en geeft die terug in MCP formaat.
Structurering van API data
API data wordt binnen MCP meestal als JSON gerepresenteerd, waarbij de server verantwoordelijk is voor:
het mappen van API velden naar MCP resource of toolresultaat velden
het eventueel anonimiseren of filteren van data voor privacy of security
het toevoegen van metadata, zoals timestamps, id's of typeinformatie
Deze abstractie zorgt ervoor dat de host en het model niet afhankelijk zijn van de exacte structuur van de onderliggende API. Het enige dat vaststaat is het MCP contract zoals beschreven in de serverbeschrijving.
Voorbeeldscenario's met API data
Enkele veelvoorkomende scenario's waarin MCP en API data samengaan:
Boekhoudsoftware waarin een MCP server gekoppeld is aan een SaaS API, zodat een chatbot in natuurlijke taal nieuwe klanten of facturen kan aanmaken
Productdatabanken waarin een MCP server API endpoints gebruikt om productinformatie op te halen en deze via natuurlijke taalvragen door een AI agent laat beantwoorden
Realtime dataplatformen waarin een MCP server query's uitvoert op eventhouses of KQL databases en de resultaten in JSON terugstuurt naar de AI client
In al deze gevallen fungeert MCP als de standaardlaag die bepaalt hoe de AI toepassing met de API data communiceert, niet hoe de data intern is opgeslagen.
Beveiliging en privacy
Gebruikerscontrole en toestemming
Omdat MCP toegang geeft tot potentieel gevoelige gegevens en krachtige tools, is beveiliging een centraal onderdeel van de specificatie. Basisprincipes zijn:
expliciete toestemming van gebruikers voor toegang tot data en het uitvoeren van acties
transparantie over welke servers verbonden zijn en welke tools beschikbaar zijn
duidelijke user interfaces voor het autoriseren of weigeren van acties
De host moet voorkomen dat tooluitvoering of data-uitlevering gebeurt zonder dat de gebruiker zich hiervan bewust is.
Dataprivacy
MCP hostimplementaties behoren zorgvuldig om te gaan met de gegevens die via servers worden aangeboden. Dit omvat:
het alleen doorgeven van resource data aan modellen of andere systemen met toestemming
het toepassen van toegangscontrole en scoping, zodat servers niet meer data zien dan nodig
het minimaliseren van opslag van gevoelige data in logs of caches
Servers op hun beurt implementeren doorgaans hun eigen authenticatie en autorisatie naar de onderliggende API's, bijvoorbeeld via tokens, IP restricties of identity providers.
Tools en code-uitvoering
Tools kunnen neer komen op het uitvoeren van willekeurige code of het muteren van data. MCP behandelt toolbeschrijvingen daarom als onbetrouwbare input, tenzij zij afkomstig zijn van een vertrouwde server. Hosts worden geacht:
geen tools automatisch uit te voeren zonder expliciete user consent
duidelijke uitleg te geven over wat een tool doet voordat deze wordt aangeroepen
logging en error reporting in te zetten voor auditing en debugging
Dit verkleint de kans op misbruik of ongewenste acties die via een tooluitvoering kunnen plaatsvinden.
Implementatie en SDK's
Taal specifieke SDK's
Om implementatie te vereenvoudigen zijn er officiële SDK's voor meerdere programmeertalen. Deze SDK's:
verbergen de details van JSON-RPC communicatie
bieden helperfuncties voor server en client lifecycle
bevatten typen en schema's voor de MCP features
Ontwikkelaars kunnen hiermee relatief snel een nieuwe MCP server opzetten die via bestaande API's data ontsluit, of een client inbouwen in een toepassing, zoals een IDE of desktopapp.
Referentieservers en tooling
Naast SDK's bestaan er referentie implementaties van MCP servers voor veelgebruikte systemen, bijvoorbeeld:
populaire bestandsopslagdiensten
ontwikkeltools en repositories
databaseplatformen
Verder is er tooling zoals inspectoren, waarmee ontwikkelaars kunnen testen of hun server aan de specificatie voldoet en hoe responses eruitzien.
Gebruik in enterprise en realtime omgevingen
MCP wordt steeds vaker geïntegreerd in enterpriseomgevingen en dataplatformen. In sommige oplossingen wordt een volledige MCP server aangeboden die specifiek is afgestemd op één platform, bijvoorbeeld een realtime intelligence omgeving of een data explorer dienst. Deze server vertaalt MCP toolrequests direct naar query's op eventhouses of andere databronnen en levert in seconden resultaten terug aan AI agenten.
Door deze architectuur ontstaat een modulaire en schaalbare manier om AI modellen toegang te geven tot operationele en historische data, zonder dat elk AI product opnieuw een volledige API integratie hoeft te ontwikkelen.
Relatie tot andere protocollen
MCP wordt vaak vergeleken met het Language Server Protocol, omdat beide een generiek protocol definiëren om een familie van tools aan te sluiten op verschillende hosts. Waar het Language Server Protocol zich richt op programmeertalen en ontwikkeltools, richt MCP zich op data en acties voor AI toepassingen. Het idee van een universele connector die als "USB C voor AI" fungeert, is in beide gevallen vergelijkbaar, maar de inhoudelijke focus verschilt.
Samenvatting
MCP en API data vormen samen een generiek integratiekader voor AI toepassingen. MCP definieert een open standaard voor:
hoe AI hosts via clients met servers communiceren
hoe servers resources, prompts en tools beschikbaar stellen
hoe JSON gebaseerde data en toolresultaten heen en weer worden gestuurd
De feitelijke data komt meestal uit bestaande API's van databronnen of applicaties. De MCP server fungeert als adapter die deze API data vertaalt naar MCP berichten. Daardoor kunnen LLM toepassingen op een uniforme manier toegang krijgen tot uiteenlopende systemen, terwijl beveiliging, privacy en gebruikerscontrole structureel meegenomen worden in het ontwerp.