Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

Model Context Protocol uitgelegd

Het Model Context Protocol (MCP) is een open standaard die AI-modellen via een uniforme interface verbindt met externe tools, data en diensten.

Wat is het Model Context Protocol?

Het Model Context Protocol (MCP) lost een fundamenteel probleem op in de wereld van AI-assistenten: hoe geef je een taalmodel toegang tot de juiste informatie en tools zonder elke integratie opnieuw te moeten bouwen? MCP is een open standaard, oorspronkelijk gepubliceerd door Anthropic in november 2024 en sinds 2025 ondergebracht bij de Linux Foundation. Het fungeert als een universele verbindingslaag tussen AI-modellen en de buitenwereld.

Vergelijk het met USB voor hardware: vroeger had elk apparaat zijn eigen connector en driver, nu plug je gewoon iets in. MCP doet hetzelfde voor AI-tools. Een MCP-server kan toegang bieden tot je Google Drive, een SQL-database, een REST-API of je lokale bestandssysteem. Elke AI-client die MCP ondersteunt, kan die server direct gebruiken.

info

Een open, breed gedragen standaard

MCP is volledig open source en gedocumenteerd op modelcontextprotocol.io. Naast Anthropic ondersteunen inmiddels ook OpenAI (Agents SDK, Responses API en ChatGPT) en Google (Google Cloud en Workspace) het protocol, samen met tientallen toolmakers. De huidige specificatieversie is 2025-11-25.

De drie bouwstenen van MCP

MCP definieert drie kernconcepten die samen de interface vormen tussen een AI-model en een externe dienst.

Tools

Tools zijn functies die het model kan aanroepen. Een tool heeft een naam, een beschrijving in natuurlijke taal en een JSON Schema dat de parameters definieert. Het model beslist zelf wanneer het een tool aanroept op basis van die beschrijving. Voorbeelden:

  • search_files(query: string, path: string) om bestanden te doorzoeken
  • send_email(to: string, subject: string, body: string) om mail te versturen
  • query_database(sql: string) om een SQL-query uit te voeren

Resources

Resources zijn data-objecten die het model kan lezen. Ze hebben een URI-schema (bijvoorbeeld file://, db:// of gdrive://) en retourneren tekst of binaire content. Resources zijn read-only en bedoeld voor context: het model laadt een resource in zijn contextvenster om er vragen over te beantwoorden.

Prompts

Prompts zijn herbruikbare prompt-templates die de server aanbiedt. Ze kunnen parameters accepteren en worden gebruikt om complexe instructies consistent te herhalen zonder ze telkens opnieuw te schrijven.

Hoe werkt de communicatie?

MCP gebruikt JSON-RPC 2.0 om berichten te coderen. De huidige specificatie definieert twee standaard transportmechanismen tussen de client (je AI-applicatie) en de server (de tool-provider):

  • Stdio: de server draait als subprocess, de communicatie loopt via stdin en stdout. Dit is de aanbevolen keuze voor lokale tools.
  • Streamable HTTP: de server draait als zelfstandige HTTP-dienst op een enkel MCP-endpoint dat zowel POST als GET ondersteunt. Geschikt voor remote servers, met optioneel Server-Sent Events (SSE) om meerdere serverberichten te streamen.

Het oudere HTTP+SSE-transport (uit specificatieversie 2024-11-05) is vervangen door Streamable HTTP en geldt als deprecated. Nieuwe servers gebruiken Streamable HTTP. WebSocket is geen standaard transport; het protocol staat wel zelfgebouwde, transport-agnostische varianten toe.

De verbinding start met een handshake waarbij client en server hun mogelijkheden uitwisselen (capability negotiation). Daarna kan de client een lijst van beschikbare tools, resources en prompts opvragen en vervolgens specifieke aanroepen doen.

warning

Let op DNS-rebinding bij Streamable HTTP

Een lokaal draaiende HTTP-server moet de Origin-header valideren en alleen aan 127.0.0.1 binden, niet aan 0.0.0.0. Anders kan een kwaadaardige website via DNS-rebinding je lokale MCP-server benaderen. De specificatie schrijft deze checks expliciet voor.

MCP versus traditionele function calling

Voor MCP gebruikte elke AI-provider zijn eigen mechanisme voor tool-gebruik: OpenAI had function calling, Anthropic had tool use, Google had function declarations. Elk met een andere syntax, andere beperkingen en een andere integratie-aanpak.

Aspect Traditionele function calling MCP
Standaard Per provider anders Open, universeel
Herbruikbaarheid Nee, per model herschrijven Ja, eenmalig bouwen
Runtime In-process Out-of-process (apart proces)
Taal Zelfde als je app Elke taal
Discovery Statisch Dynamisch via protocol

Het grootste voordeel van MCP is herbruikbaarheid. Je bouwt een MCP-server voor je interne wiki eenmalig, en elke MCP-compatibele client, of dat nu Claude Desktop, Cursor, een eigen chatbot of een automatiseringspijplijn is, kan die server direct gebruiken.

MCP in de praktijk: Google Workspace

Voor Google Workspace-omgevingen is MCP bijzonder krachtig. Stel je voor dat je een AI-assistent hebt die:

  1. Documenten kan ophalen uit Drive
  2. Agenda-items kan aanmaken in Calendar
  3. E-mails kan opstellen en versturen via Gmail
  4. Spreadsheet-data kan lezen en analyseren vanuit Sheets

Zonder MCP bouw je dit als vier losse integraties in je applicatie. Met MCP bouw je vier MCP-servers (of een gecombineerde Workspace-server) en elke AI-client gebruikt ze automatisch. Google biedt inmiddels zelf beheerde remote MCP-servers aan voor diensten als BigQuery en Google Maps, en koppelt MCP aan zijn agent-platform.

lightbulb

Begin met bestaande MCP-servers

Er bestaan al kant-en-klare MCP-servers voor Gmail, Google Drive, Calendar en tientallen andere diensten. Kijk op github.com/modelcontextprotocol/servers voor de officiële lijst voordat je er zelf een bouwt.

Installatie en configuratie

De snelste manier om met MCP te starten is via Claude Desktop. Open het configuratiebestand:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Voeg een server toe:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/jij/documenten"]
    }
  }
}

Na een herstart van Claude Desktop verschijnen de server-tools in de interface. Je kan dan direct vragen: "Zoek alle PDF-bestanden in mijn documenten uit het laatste kwartaal."

Een MCP-server toevoegen in Claude Desktop

  1. Open het bestand claude_desktop_config.json op de juiste locatie voor je besturingssysteem.
  2. Voeg onder mcpServers een entry toe met een command en args, zoals in het voorbeeld hierboven.
  3. Bewaar het bestand en sluit Claude Desktop volledig af.
  4. Start Claude Desktop opnieuw en controleer of de nieuwe tools zichtbaar zijn.
  5. Test de server met een concrete vraag die de tool gebruikt.

Beveiliging en vertrouwen

MCP-servers draaien met de rechten van de gebruiker die ze start. Een server die filesystem-toegang heeft, kan bestanden lezen en schrijven. Installeer daarom alleen servers van vertrouwde bronnen en controleer de broncode bij twijfel.

Het protocol zelf regelt geen authenticatie of autorisatie: dat is de verantwoordelijkheid van de server-implementatie. Productieservers horen OAuth 2.0 of API-key-authenticatie te implementeren, en lokale HTTP-servers moeten de Origin-header valideren tegen DNS-rebinding.

Werkt MCP met ChatGPT?

Ja. OpenAI ondersteunt MCP sinds 2025 in de Agents SDK, de Responses API en in ChatGPT zelf via Developer Mode, inclusief schrijfacties. Claude Desktop en Cursor hebben eveneens uitgebreide MCP-ondersteuning.

Kan ik MCP-servers zelf bouwen?

Ja, in vrijwel elke programmeertaal. Officiële SDK's zijn beschikbaar voor onder andere Python, TypeScript, Java, Kotlin, C#, Go, Ruby, Rust en Swift. Controleer de actuele lijst en de stabiliteit per SDK op de officiële MCP GitHub-organisatie.

Is MCP geschikt voor productie?

Ja. De specificatie is stabiel en wordt breed gebruikt. Grote leveranciers zoals Anthropic, OpenAI en Google hebben MCP in hun platformen verwerkt, en talloze tools bieden kant-en-klare servers aan.

Wat is het verschil tussen Streamable HTTP en het oude SSE-transport?

Het oude HTTP+SSE-transport gebruikte aparte endpoints en is sinds specificatieversie 2025-03-26 vervangen door Streamable HTTP, dat alles via een enkel MCP-endpoint afhandelt. SSE-streaming bestaat nog wel binnen Streamable HTTP, maar als optie, niet als los transport. Voor nieuwe servers gebruik je Streamable HTTP.

Hoe verschilt MCP van LangChain-tools?

LangChain-tools zijn objecten die in hetzelfde proces als je applicatie draaien. MCP-servers zijn onafhankelijke processen met een gestandaardiseerde interface, waardoor ze taalonafhankelijk en herbruikbaar zijn over verschillende clients.

Werkt MCP ook met Google Gemini?

Ja. Google ondersteunt MCP binnen Google Cloud en Google Workspace en biedt zelf beheerde remote MCP-servers aan voor diensten zoals BigQuery en Google Maps, die je aan agents kunt koppelen.