U vraagt, wij geven antwoord!

Apps & Gidsen

MCP-server gebaseerd op N8N

De ontwikkeling van generatieve neurale netwerken is de afgelopen jaren in een stroomversnelling geraakt. Ze zijn merkbaar sneller en nauwkeuriger geworden in hun reacties en hebben geleerd om te redeneren. Hun mogelijkheden worden echter nog steeds fundamenteel beperkt door hun architectuur. Bijvoorbeeld, elke bestaande LLM op het moment van schrijven heeft een kennis cutoff datum. Dit betekent dat met elke dag die voorbijgaat, de kans groter wordt dat zo'n LLM onjuiste antwoorden geeft, simpelweg omdat het informatie mist over gebeurtenissen die na die datum hebben plaatsgevonden.

Door deze beperking moet het model helemaal opnieuw worden getraind op versere gegevens, wat duur en tijdrovend is. Maar er is een andere manier. Als je het model in staat stelt om met de buitenwereld te communiceren, kan het zelfstandig de informatie vinden en bijwerken die tijdens een gebruikersgesprek wordt gevraagd, zonder dat het opnieuw getraind hoeft te worden.

Dit is ongeveer hoe het RAG-mechanisme (Retrieval Augmented Generation) werkt. Bij het beantwoorden van een vraag bevraagt het model eerst een vooraf voorbereide vectordatabase en als het relevante informatie vindt, verwerkt het deze in de prompt. Door de vectorgegevensbank uit te leggen en bij te werken, kan de kwaliteit van LLM antwoorden dus sterk worden verbeterd.

Maar er is een andere, nog interessantere manier om actuele context in prompts te verwerken. Het heet MCP, wat staat voor Model Context Protocol. Het werd oorspronkelijk ontwikkeld door Anthropic voor zijn Claude-model. Het sleutelmoment kwam toen de broncode voor MCP open-source werd gemaakt, waardoor duizenden AI-onderzoekers aangepaste servers konden bouwen voor verschillende doeleinden.

De essentie van MCP is om een neuraal netwerkmodel toegang te geven tot hulpmiddelen waarmee het zelfstandig zijn kennis kan bijwerken en verschillende acties kan uitvoeren om gegeven taken efficiënt op te lossen. Het model beslist zelf welk gereedschap het gebruikt en of het geschikt is in elke situatie.

Ondersteuning voor MCP verscheen al snel in verschillende IDE's zoals Cursor, maar ook in automatiseringsplatforms zoals N8N. Dit laatste is vooral intuïtief omdat workflows visueel worden gemaakt, waardoor het gemakkelijker te begrijpen is. Binnen N8N kun je verbinding maken met een bestaande MCP-server of je eigen server maken. Bovendien kun je zelfs een directe verbinding binnen één workflow organiseren. Maar laten we stap voor stap te werk gaan.

Een eenvoudige AI-agent maken

Voordat je aan de slag gaat, moet je ervoor zorgen dat aan de belangrijkste vereiste is voldaan: je hebt een LLM klaarstaan voor verbindingen. Dit kan een lokaal draaiend model zijn met Ollama of een externe service zoals OpenAI's ChatGPT. In het eerste geval moet je het lokale Ollama API adres weten (en optioneel de authenticatie), en in het tweede geval heb je een actief OpenAI account nodig met voldoende credits.

Het bouwen van een agent begint met de belangrijkste AI Agent node. Deze moet op zijn minst verbonden zijn met twee andere knooppunten, één om als trigger te fungeren en de andere om verbinding te maken met de LLM. Als je geen trigger opgeeft, maakt het systeem er automatisch een aan en wordt de agent getriggerd zodra hij een bericht ontvangt in de interne chat:

AI Agent only

Het enige ontbrekende onderdeel is de LLM. Je kunt bijvoorbeeld onze Open WebUI: Alles in één gids gebruiken om Ollama in te stellen met een webinterface. De enige vereiste wijziging is dat de containers voor N8N en Open WebUI zich op hetzelfde netwerk moeten bevinden. Als de N8N container bijvoorbeeld op een netwerk met de naam web staat, vervang dan in het deployment commando voor Open WebUI --network=host door --network=web.

In sommige gevallen moet je ook handmatig de OLLAMA_HOST omgevingsvariabele instellen, bijvoorbeeld: -e OLLAMA_HOST=0.0.0.0. Dit maakt verbindingen met de Ollama API niet alleen mogelijk vanaf localhost, maar ook vanaf andere containers. Stel dat Ollama wordt ingezet in een container met de naam ollama-webui. Dan zou de basis URL voor verbinden vanuit N8N zijn:

http://open-webui:11434

Vergeet niet om minstens één model te downloaden voordat je de Ollama Chat Model node verbindt. Je kunt dit doen via de webinterface of via de CLI van de container. Het volgende commando zal het Llama 3.1 model met 8 miljard parameters downloaden:

ollama pull llama3.1:8b

Eenmaal gedownload en geïnstalleerd, zal het model automatisch verschijnen in de lijst met beschikbare modellen:

Model select

Een minimaal werkende AI Agent workflow ziet er als volgt uit:

Minimal working AI Agent

In deze vorm kan de agent slechts één model gebruiken en slaat hij geen invoergegevens op of verbetert hij prompts met behulp van externe tools. Het is dus zinvol om ten minste het knooppunt Simple Memory toe te voegen. Voor lichte belastingen is het voldoende om verzoeken en antwoorden op te slaan.

Maar laten we teruggaan naar MCP. Maak om te beginnen een server met het speciale knooppunt MCP Server Trigger:

MCP Server Trigger only

Dit knooppunt is volledig zelfstandig en heeft geen externe activering nodig. Het wordt alleen geactiveerd door een inkomend extern verzoek naar zijn webhookadres. Standaard zijn er twee URL's: Test URL en Production URL. De eerste wordt gebruikt tijdens de ontwikkeling, terwijl de tweede alleen werkt als de workflow is opgeslagen en geactiveerd.

MCP Server Trigger settings

De trigger is nutteloos op zichzelf, hij heeft verbonden tools nodig. Laten we bijvoorbeeld een van de eenvoudigste gereedschappen aansluiten: een rekenmachine. Deze verwacht een wiskundige uitdrukking als invoer. Knooppunten communiceren met behulp van gewone JSON, dus als de rekenmachine 2 + 2 wil berekenen, moet de invoer zijn:

[
  {
    "query": {
      "input": "2 + 2"
    }
  }
]

LLM's kunnen eenvoudig zulke JSON genereren uit platte tekst taakbeschrijvingen en deze naar het knooppunt sturen, dat de berekeningen uitvoert en het resultaat terugstuurt. Laten we de MCP-client verbinden met de agent:

AI Agent with tools

Het is de moeite waard om op te merken dat dit knooppunt geen extra verbindingen nodig heeft. Het is voldoende om in de instellingen het eindpuntadres op te geven waar het gegevens van de AI Agent naartoe zal sturen. In ons voorbeeld wijst dit adres naar de container met de naam n8n.

MCP Client Settings

Natuurlijk kun je in dit stadium elk beschikbaar extern MCP serveradres opgeven. Maar voor dit artikel gebruiken we een lokale instantie die binnen N8N draait. Laten we eens kijken hoe de client en server zich gedragen wanneer de AI Agent wordt gevraagd om een eenvoudige wiskundige bewerking uit te voeren:

MCP Client calculations example

Na ontvangst van het verzoek zal de AI Agent:

  1. Zoeken in Simple Memory om te zien of de gebruiker dit eerder heeft gevraagd of dat een context kan worden hergebruikt.
  2. De vraag naar de LLM sturen, die de wiskundige uitdrukking correct zal afbreken en de bijbehorende JSON zal voorbereiden.
  3. Stuur de JSON naar het rekenprogramma en ontvang het resultaat.
  4. Gebruik de LLM om het uiteindelijke antwoord te genereren en voeg het resultaat in het antwoord in.
  5. Sla het resultaat op in Simple Memory.
  6. Voer het bericht uit in de chat.
MCP Client calculations JSON

Op dezelfde manier kunnen agents werken met andere tools op de MCP-server. In plaats van Simple Memory kun je geavanceerdere opties gebruiken zoals MongoDB, Postgres, Redis of zelfs zoiets als Zep. Deze vereisen natuurlijk minimaal database-onderhoud, maar de algehele prestaties zullen aanzienlijk toenemen.

Er zijn ook veel meer opties voor de selectie van gereedschappen. Out of the box ondersteunt het knooppunt MCP Server Trigger meer dan 200 tools. Dit kan van alles zijn, van eenvoudige HTTP verzoeken tot voorgebouwde integraties met openbare internetdiensten. Binnen een enkele workflow kun je zowel een server als een client maken. Een belangrijk ding om op te merken: deze knooppunten kunnen niet visueel worden verbonden in de editor, en dat is verwacht gedrag:

MCP Server and Client with tools

In plaats van de standaard trigger kun je andere opties gebruiken, zoals het ontvangen van een bericht via een messenger, het indienen van een website formulier of het uitvoeren volgens een schema. Hiermee kun je workflows opzetten die reageren op gebeurtenissen of routinehandelingen uitvoeren, zoals het dagelijks exporteren van gegevens van Google Ads.

En dat is nog niet alles wat er mogelijk is met AI agents. Je kunt multi-agent systemen bouwen met verschillende neurale netwerkmodellen die samenwerken om taken nauwkeuriger op te lossen, rekening houdend met veel meer beïnvloedende factoren in het proces.

Zie ook:



Bijgewerkt: 12.08.2025

Gepubliceerd: 02.07.2025