Model Context Protocol (MCP): Vragen & Antwoorden

Wat is Model Context Protocol (MCP) precies?

In de kern fungeert Model Context Protocol (MCP) als een universele brug, die de interactie tussen LLM’s en externe bronnen faciliteert. Het introduceert een gestandaardiseerde methodologie voor LLM’s om beschikbare bronnen effectief te identificeren en te gebruiken. Dit stelt de LLM in staat om te bepalen wanneer en waarom deze de bronnen moet benutten om taken uit te voeren of het eigen begrip te verbeteren.

De reikwijdte van externe gegevens die toegankelijk zijn via MCP is enorm en omvat onder meer lokale bestandssystemen, databases, API’s en Software-as-a-Service (SaaS)-applicaties.

In wezen stelt MCP LLM’s in staat om deterministische verzoeken te doen voor data of acties, waardoor ze informatie kunnen gebruiken die verder gaat dan hun reeds bestaande trainingsdatasets om nauwkeurige en uitgebreide antwoorden te geven.

De wijdverspreide acceptatie van MCP transformeert snel het AI-landschap, waarbij talloze AI-bedrijven het integreren in hun platforms.

Waarom de plotselinge interesse in MCP?

De drijvende kracht achter de groeiende populariteit van MCP ligt in het vermogen om de verbinding van externe databronnen met LLM’s te standaardiseren. Deze standaardisatie biedt ontwikkelaars een aanzienlijk voordeel: ze kunnen een enkele integratie voor een LLM creëren en deze naadloos inzetten op verschillende tools en LLM’s die MCP ondersteunen. Deze ‘eenmaal schrijven, overal gebruiken’-aanpak vereenvoudigt het integratieproces aanzienlijk.

Bovendien stroomlijnen de opkomst van ‘app stores’ en ‘marketplaces’ met MCP-servers het integratieproces nog verder, waardoor ontwikkelaars ze snel in hun omgevingen kunnen integreren. Er zijn ook speciale services beschikbaar die gespecialiseerd zijn in het maken van aangepaste MCP-servers, die inspelen op specifieke behoeften en eisen.

Is dit de eerste keer dat LLM’s interageren met externe data?

Het concept van Agentic AI, dat in staat is om autonoom te opereren en met externe bronnen te communiceren, bestaat al geruime tijd. Eerdere implementaties waren echter vaak uniek voor elke tool, waardoor standaardisatie ontbrak. Oplossingen zoals LangFlow hebben geprobeerd dit probleem aan te pakken door een deel van de tooling te standaardiseren en interactie met meerdere LLM’s binnen een specifiek framework mogelijk te maken.

MCP tilt standaardisatie naar een hoger niveau, waardoor de creatie van integraties mogelijk wordt die in meerdere oplossingen kunnen worden gebruikt, waardoor de silo’s die voorheen bestonden, worden doorbroken.

Hoe kan ik aan de slag met MCP?

Om aan de slag te gaan met MCP heb je een hostapplicatie (ook wel ‘client’ genoemd) en een server nodig. De hostapplicatie fungeert als de centrale orchestrator, die de communicatie tussen de LLM en de interfaces die verbinding maken met de MCP-servers, beheert.

Een fundamenteel voorbeeld is het gebruik van Claude Desktop om een bestandssysteem MCP-server toe te voegen, zoals beschreven in de Quickstart voor Claude Desktop-gebruikershandleiding. Dit demonstreert het proces van het toevoegen van een bestandssysteemserver aan Claude Desktop, waardoor deze lokale bestandssysteeminformatie aan Claude.ai kan verstrekken. Hoewel Claude Desktop dient als een proeftuin voor MCP-servers, bieden tal van andereclients verbeterde gebruikerservaringen.

Online directory’s van MCP-clients en -servers ontstaan, zoals MCP Clients | Glama en Open-Source MCP Servers | Glama, die waardevolle bronnen bieden voor ontwikkelaars.

Hoe werkt MCP?

MCP werkt op een client/server-architectuur, waardoor LLM’s naadloos met externe data kunnen communiceren. Deze architectuur bestaat uit drie hoofdcomponenten:

  • Host: De hostapplicatie beheert de interactie tussen LLM’s en meerdere MCP-clients. Populaire MCP-hosts zijn Claude Desktop, Claude Code, Cursor, Windsurf en editorintegraties zoals Cline en Continue.

  • Client: De client fungeert als een interface binnen de hostapplicatie en faciliteert interactie tussen de LLM en de server. Het onderhoudt een één-op-één verbinding met de server.

  • Server: De server is een kleine applicatie die met de client communiceert via het MCP-protocol. Het biedt gestandaardiseerde processen voor het weergeven van mogelijkheden en het reageren op verzoeken om relevante data of acties.

Hoewel deze componenten doorgaans als afzonderlijke entiteiten worden besproken, kunnen ze worden geïntegreerd in één applicatie of als afzonderlijke applicaties bestaan. Momenteel omvat de meest voorkomende configuratie het integreren van de client in de hostapplicatie, die met de server communiceert via beveiligde transporten met behulp van JSON-RPC.

Welke mogelijkheden bieden MCP-servers?

MCP-servers bieden clients een reeks mogelijkheden om het ophalen van data en acties die op data worden uitgevoerd, te ondersteunen. Deze mogelijkheden omvatten:

  • Resources: Dataopslagplaatsen die de LLM kan volgen, zoals bestanden, databaseschema-informatie en consolelogboeken. Resources worden aan het begin van een chatsessie geladen om herhaalde verzoeken om statische data te voorkomen.

  • Tools: Acties die kunnen worden uitgevoerd, zoals het ophalen van content uit bestanden, het invoegen van data in een database of het beantwoorden van e-mails.

  • Prompts: Nuttige en herbruikbare prompts die door de server aan de client worden verstrekt. Veel hostapplicaties stellen gebruikers in staat om beschikbare prompts weer te geven met behulp van een ‘snelle lijst’-functie, vaak geactiveerd door het typen van een ‘/‘. Deze prompts kunnen ook dienen als sjablonen die dynamisch kunnen worden ingevuld met gebruikersinvoer.

Momenteel zijn ‘tools’ de meest impactvolle mogelijkheid die MCP biedt en degene die de meeste aandacht krijgt.

Is het gebruik van een MCP-server veilig?

MCP vertrouwt sterk op vertrouwen, waaronder:

  • Vertrouwen dat de hostapplicatie de toegang tot de clients effectief controleert.
  • Vertrouwen dat de client veilige transporten gebruikt bij de communicatie met de server.
  • Vertrouwen dat de server veilige praktijken implementeert bij het openen van bronnen.

Gebruikers moeten prioriteit geven aan MCP-servers van gerenommeerde bronnen en altijd voorzichtig zijn door de integriteit van de software vóór de installatie te verifiëren.

Hoe implementeert de MCP-host beveiliging?

De hostapplicatie moet controles implementeren waarmee de gebruiker tools kan goedkeuren voordat ze worden gebruikt. Mainstreamapplicaties hebben vaak mechanismen om de acceptatie van toolgebruik te verifiëren. Claude Desktop vraagt de gebruiker bijvoorbeeld om te kiezen tussen ‘eenmalig gebruiken’ of ‘gebruiken voor de hele chatsessie’ wanneer een tool voor het eerst wordt aangeroepen. Andere applicaties, zoals Cline, kunnen methoden hebben om bepaalde tools of applicaties automatisch goed te keuren. Het niveau van informatie dat aan de gebruiker wordt gepresenteerd in deze verificatiedialogen kan variëren.

Welke transportbeveiligingscontroles zijn beschikbaar?

Er worden twee primaire transportmechanismen gebruikt: STDIO en Server Sent Events (SSE).

  • STDIO heeft de voorkeur wanneer de client en server zich op dezelfde computer bevinden. Het leidt de uitvoer van de client naar de invoer van de server en vice versa. Het transport kan alleen worden gecompromitteerd als het lokale systeem wordt geschonden.

  • SSE wordt gebruikt wanneer de client en server zich op verschillende computers bevinden. Het transporteert JSON-berichten via HTTP-verbindingen, waardoor het gebruik van standaard HTTP-beveiligingsopties zoals SSL-transporten en Open Authentication (OAuth)-autorisatie mogelijk is.

Wat zijn de grootste risico’s van het gebruik van MCP?

Het belangrijkste risico dat aan MCP is verbonden, is de injectie van kwaadaardige servers. Omdat alle geregistreerde servers een enkel referentiepunt hebben in de hostapplicatie en LLM, kunnen kwaadaardige servers mogelijk de LLM vergiftigen of de tools van legitieme servers misbruiken. Naarmate het MCP-ecosysteem volwassener wordt, wordt verwacht dat concepten zoals MCP-beveiligingscertificering, serverintegriteitsbewaking en standaardisatie van logging voor bewaking worden geformaliseerd. MCP ‘App Stores’ zullen waarschijnlijk ook ontstaan, die gecentraliseerde opslagplaatsen bieden voor het eenvoudig integreren van MCP-servers in bestaande tools.

Hoewel de MCP-specificatie ten zeerste authenticatie en autorisatie voor externe servers aanbeveelt, verplicht deze deze niet. Ontwikkelaars van MCP-servers kunnen de netwerkbeveiligingsaspecten over het hoofd zien en deze aanbevelingen niet implementeren.

Extern toegankelijke MCP-servers zijn kwetsbaar voor man-in-the-middle-aanvallen en externe exploits. Daarom moeten alle MCP-servers die netwerkgebaseerd transport gebruiken, robuuste authenticatie- en autorisatiemechanismen implementeren.

Hoe kan ik mijn informatie beschermen bij het gebruik van MCP?

Aangezien technische oplossingen en mogelijkheden voor het beveiligen van MCP-oplossingen zich blijven ontwikkelen, is de huidige aanbeveling om de gevestigde best practices voor cyberbeveiliging te volgen. Belangrijke stappen zijn onder meer:

  • Detecteer en inventariseer uw MCP-installaties en -configuraties in uw omgeving. Gezien de vroege fase van adoptie van MCP vereist dit een meer praktische aanpak, waarbij eindpunten nauwlettend worden geïnspecteerd op configuratiebestanden, in plaats van te vertrouwen op gecentraliseerde bewaking. Het begrijpen en goedkeuren van MCP-gebruik is cruciaal voor het handhaven van de integriteit van de omgeving.

  • Beheer de toegang en bewaak de resources waartoe MCP-servers toegang hebben. Of de resources nu lokaal zijn voor de eindpunten of SaaS-applicaties, het bewaken van de toegang via logging en auditing is essentieel.

  • Train de mensen die MCP in hun functie gebruiken. Zorg ervoor dat ze de impact van een tool begrijpen voordat ze het gebruik ervan autoriseren. De MCP-specificatie benadrukt de toestemming en autorisatie van de gebruiker voordat er bewerkingen worden uitgevoerd. Training biedt het begrip dat nodig is om weloverwogen beslissingen te nemen.