pletzenauer — digital consulting

Model Context Protocol (MCP) begrijpelijk uitgelegd – met n8n-voorbeeld

Wie AI-agents bouwt, kent het probleem: voor elke functie van een gekoppelde dienst moet een apart instrument gedefinieerd worden. Een agenda-item zoeken, aanmaken, wijzigen, verwijderen – dat zijn al snel vier afzonderlijke bouwstenen, en dat alleen al voor één dienst. Met veel koppelingen groeit het onderhoud navenant. Het Model Context Protocol (MCP) volgt een andere aanpak: het standaardiseert hoe een taalmodel met een dienst communiceert – en vermindert het aantal benodigde bouwstenen drastisch. Deze bijdrage vat het concept en een concreet praktijkvoorbeeld met n8n samen.

Het belangrijkste in het kort
  • MCP standaardiseert hoe een taalmodel de context van een dienst begrijpt – dus wat die dienst kan en hoe u hem aanspreekt.
  • In plaats van elke afzonderlijke functie apart te koppelen, volstaan een MCP-server (vóór de dienst) en een MCP-client (in de agent).
  • De agent komt toe met twee stappen: functies opsommen (List Tools) en functies uitvoeren (Execute Tool).
  • In n8n laat zich dat nabouwen met één omgevingsvariabele, een community-node en twee MCP-clienttools.
  • MCP is een jonge technologie: er zijn bekende veiligheidsbezwaren – in productieomgevingen is voorzichtigheid op zijn plaats.
Vergelijking in twee kolommen: links de klassieke koppeling van één tool per functie met veel bouwstenen, rechts MCP met slechts twee stappen: List Tools en Execute Tool.
In plaats van elke functie afzonderlijk te koppelen, komt de agent toe met twee MCP-operaties.

Wat MCP eigenlijk oplost

Het basisidee van het Model Context Protocol zit in de naam: een taalmodel moet de context van een toepassing begrijpen. Concreet betekent dat: wat kan deze toepassing? Waar is ze voor bedoeld? En hoe voer ik er acties in uit?

Klassiek koppelt men bij het bouwen van agents elk tool afzonderlijk – elke functie is een eigen bouwsteen. Bij Google Calendar bijvoorbeeld: een tool om items te zoeken, een om bij te werken, een om te verwijderen, een om aan te maken. Vier functies voor één dienst. Bij complexe agents met veel gekoppelde diensten telt dat snel op tot tientallen bouwstenen.

Server, client en het uniforme schema

MCP werkt met twee rollen:

  • MCP-server: schakelt zich vóór de eigenlijke dienst (bijv. Airbnb of Google Calendar) en beschrijft hoe men met die dienst kan interacteren.
  • MCP-client: zit in de agent en haalt de functies van de server op en roept ze aan.

In de huidige uitvoering – bijvoorbeeld in n8n – volstaan daarvoor twee stappen in plaats van veel losse tools:

  1. List Tools (opsommen): De agent vraagt de server welke functies beschikbaar zijn.
  2. Execute Tool (uitvoeren): De agent roept een concrete functie met de passende parameters aan.

Doorslaggevend is het uniforme schema. Om het even welke dienst erachter zit: het antwoord op een List-Tools-verzoek is altijd hetzelfde opgebouwd. Het bevat per functie de naam, een beschrijving en een schema met de toegestane parameters. Inhoud en parameters verschillen van dienst tot dienst – de structuur blijft constant. Precies dat is wat het protocol voorschrijft en standaardiseert.

Een voorbeeld met het Airbnb-tool

Vraagt men de agent welke mogelijkheden het Airbnb-tool biedt, dan haalt hij de functielijst zelf op via het List-Tools-tool. Terug komen onder meer:

  • Airbnb Search: zoeken naar aanbiedingen met filters en paginering – zoals locatie, check-in- en check-outdatum, aantal volwassenen, kinderen, baby’s en huisdieren en prijsklasse.
  • Airbnb Listing Details: gedetailleerde informatie over een bepaalde aanbieding via het listing-ID daarvan.

De agent hoefde hier niets voorgeschreven te krijgen – hij heeft de beschikbare functies, hun beschrijvingen en het parameterschema zelf opgehaald. In het schema ziet men bijvoorbeeld een tekstveld location (stad, deelstaat enz.), de datumvelden voor check-in en check-out, het aantal volwassenen en de minimum- en maximumprijs.

Stelt men dan een concrete vraag – bijvoorbeeld een verblijf in Bangkok voor zes personen tot maximaal 50 euro per nacht –, dan werkt de agent in twee trappen: hij roept eerst List Tools aan (hij heeft niets onthouden, omdat er geen memory actief is), herkent aan de hand van het schema de benodigde parameters en voert de zoekopdracht uit via Execute Tool. Het resultaat – bijvoorbeeld een verblijf met drie bedden voor ca. 35 euro per nacht – komt terug, en dat met slechts twee toegevoegde tools. Zou Airbnb meer functies aanbieden, bijvoorbeeld voor het beheren van eigen advertenties, dan lieten die zich via hetzelfde schema afbeelden zonder verdere bouwstenen te definiëren.

Zo bouwt u MCP na in n8n

De volgende stappen laten de inrichting aan het Airbnb-voorbeeld zien. Het leent zich goed om uit te proberen, omdat er geen API-sleutel voor nodig is.

  1. Omgevingsvariabele instellen: Zet N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE op true. Dat geeft community-nodes toegang tot tools. Bij een Docker-installatie (bijv. op een Hetzner-server) voert u dat in in de sectie environment van het docker-compose-bestand en start u de instantie opnieuw.
  2. AI-agent aanmaken: Maak een AI-agent aan en stel een model in (in de video GPT-4.1 Mini).
  3. Community-node installeren: Onder Settings → Community Nodes installeert u het pakket n8n-nodes-mcp en bevestigt u de melding over het installeren van ongecontroleerde code uit openbare bronnen.
  4. MCP-clienttool toevoegen: Zoek via de plus bij Tools naar „MCP“. Let op: verwar het niet met het eigen MCP Client Tool van n8n – de communityvariant is herkenbaar aan het doossymbool en is momenteel uitgebreider.
  5. Toegangsgegevens aanmaken: Als verbindingstype kunt u kiezen uit Command Line, Server-Sent Events en HTTP Streamable. In het voorbeeld blijft het bij Command Line. De juiste waarden staan in de repository van de betreffende MCP-server in de sectie over de installatie. Voor Airbnb: command npx, argumenten stap voor stap ingevoerd – -y, het pakket @openbnb/mcp-server-airbnb en optioneel --ignore-robots-txt.

Opmerking over robots.txt: De optie --ignore-robots-txt negeert de toegangsregels van een website. Voor een demo is dat te verdedigen – in productieomgevingen zou u de robots.txt van de betreffende diensten moeten respecteren.

De twee operaties inrichten

Vervolgens heeft u twee MCP-clienttools met verschillende operaties nodig:

  • List Tools: Noem het tool bijv. „Airbnb List Tools“ en geef als beschrijving op dat het dient om alle beschikbare Airbnb-tools op te halen. Een testklik (Execute Step) zou de bekende functielijst met naam, beschrijving en schema moeten teruggeven.
  • Execute Tool: Een tweede MCP-clienttool met de operatie Execute Tool. Beschrijving: voor het uitvoeren van Airbnb-tools, op te sommen via het List-Tools-tool. De toolnaam geeft u door als expression, zodat de agent zelf bepaalt welke functie hij aanroept; de toolparameters laat u vrij, zodat hij ze zelf vaststelt.

Na het opruimen en opslaan laat de agent zich testen – bijvoorbeeld opnieuw met de Bangkok-vraag. Hij haalt de functielijst op, geeft die terug aan het model, kiest voor de zoekopdracht en levert passende verblijven. Precies het gedrag uit het conceptuele deel, nu in uw eigen workflow.

Voorbij n8n – en een woord over veiligheid

MCP blijft niet beperkt tot automatiseringsplatformen. Ook desktoptoepassingen als Claude Desktop laten zich met MCP-servers verbinden. Daarmee kan men in de chat taken delegeren aan lokaal geïnstalleerde programma’s – een veel geciteerd voorbeeld is de aansturing van de 3D-software Blender via MCP, waarbij iemand zonder Blender-kennis renderings maakt. De MCP-server draait daarbij lokaal, het taalmodel zelf nog steeds via de clouddienst.

Bij alle enthousiasme geldt: MCP is een jonge ontwikkeling. Er zijn al veiligheidsbezwaren, en er zijn kwetsbaarheden gevonden. Juist in productieomgevingen is de technologie met voorzichtigheid te genieten – het loont de verdere ontwikkeling te volgen voordat u er kritieke processen op bouwt.

Conclusie

Het Model Context Protocol is een pragmatische standaardiseringsaanpak: een taalmodel leert via een MCP-server zelf wat een dienst kan en hoe men hem aanspreekt – in plaats van elke functie afzonderlijk vooraf te definiëren. Voor complexe AI-agents betekent dat merkbaar minder bouwstenen en onderhoud; in het n8n-voorbeeld volstaan twee stappen: opsommen en uitvoeren. De aanpak is overtuigend, maar nog jong. Wie hem uitprobeert, zou met niet-kritieke diensten moeten beginnen en in productieomgevingen de openstaande veiligheidsvragen serieus moeten nemen.

Bron: Model Context Protocol (MCP): Erklärung & n8n Tutorial (Deutsch) – YouTube-kanaal Philip Thomas.

WeergaveMinimalKlassiekDark