Naar de inhoud
SyncMyShop

Kennisbank

Wat is MCP? Het Model Context Protocol uitgelegd voor je ERP

MCP, het Model Context Protocol, is een open protocol waarmee een AI-assistent zoals Claude of ChatGPT functies in andere software aanroept. Voor een ERP betekent dat: een MCP-server biedt tools aan zoals "voorraad per artikel", en vertaalt elke aanroep naar de API van het ERP.

Bijgewerkt op

Hoe werkt MCP?

MCP verbindt drie onderdelen. De host is de AI-toepassing waarin je de vraag stelt, zoals Claude of ChatGPT. De client is het stuk in die toepassing dat de verbinding legt. De server is de software die gegevens en functies aanbiedt. Anthropic publiceerde het protocol op 25 november 2024; de huidige versie van de specificatie is 2026-07-28.

Een server kan drie soorten dingen aanbieden:

Onderdeel Wat het is Voorbeeld bij een ERP
Tools Functies die het model zelf aanroept voorraad_per_artikel, openstaande_orders
Resources Gegevens om te lezen, voor gebruiker of model Een artikelcatalogus als bestand
Prompts Vaste instructies of werkstromen voor de gebruiker "Maak een overzicht van achterstallige debiteuren"

Bij een ERP gaat het bijna altijd om tools. De berichten zijn JSON-RPC 2.0, gecodeerd in UTF-8. Er zijn twee standaard transports: stdio, voor een server die als proces op dezelfde computer draait, en Streamable HTTP, waarbij elk bericht een POST naar één adres is. Een assistent in de browser gebruikt Streamable HTTP.

De client vraagt eerst met tools/list welke tools er zijn, en roept er daarna een aan met tools/call:

{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "voorraad_per_artikel",
    "arguments": { "itemcode": "10482" }
  }
}

Het antwoord bevat de tekst of JSON die de server teruggeeft, met isError: true als de aanroep misging. Zo'n fout gaat terug naar het model, zodat het de aanroep met een andere waarde kan herhalen, bijvoorbeeld een datum in het juiste formaat.

Wat doet een MCP-server voor een ERP?

Een MCP-server vertaalt. Een tool als openstaande_orders met als argument debiteur 10432 wordt een GET op de API van het ERP met een filter op die debiteur. Het antwoord van het ERP gaat, ingekort tot wat nodig is, terug naar de assistent.

Daaruit volgt de belangrijkste regel: MCP voegt geen gegevens toe. Wat de API van het ERP niet levert, kan geen MCP-server teruggeven. De standaard-API v2.0 van Business Central geeft bij een artikel één voorraadgetal, zonder uitsplitsing per locatie. Een MCP-server op die API kan dus ook geen voorraad per magazijn geven, tenzij er een eigen API-pagina naast komt.

Sommige ERP-leveranciers leveren zelf een MCP-server, andere niet:

ERP Eigen MCP-server Detail
Business Central Ja, mcp.businesscentral.dynamics.com Standaard alleen lezen; beheerder kiest API-pagina's voor schrijven; OAuth via Microsoft Entra
NetSuite Ja, AI Connector Service Protocolversie 2025-06-18; rollen met Administrator worden niet ondersteund
AFAS Profit Nee AFAS onderzoekt een officiële MCP-server; in juni 2026 was geen AI-koppeling gecertificeerd
Exact Online Nee Geen MCP-server in de kennisbank van Exact; Exact heeft eigen AI-agents binnen het pakket

Voor AFAS en Exact Online wordt een MCP-server gebouwd op de REST API van het pakket. Hoe dat per pakket werkt, staat in AFAS koppelen met Claude en Exact Online koppelen met Claude.

Wie bepaalt wat de assistent mag?

Er zijn drie lagen, van zwak naar sterk.

De annotaties op een tool. Een server kan bij elke tool aangeven wat hij doet. Zonder annotatie gelden de standaardwaarden, en die gaan uit van het ergste geval.

Annotatie Betekenis Standaard
readOnlyHint De tool wijzigt niets false
destructiveHint De tool kan bestaande gegevens overschrijven of verwijderen true
idempotentHint Twee keer dezelfde aanroep heeft geen extra effect false
openWorldHint De tool praat met systemen buiten de server true

De specificatie noemt dit uitdrukkelijk hints: een client moet annotaties van een server die hij niet vertrouwt als onbetrouwbaar behandelen.

De instellingen in de assistent. De specificatie vraagt dat een gebruiker elke aanroep kan weigeren. In Claude kies je per tool "Always allow", "Needs approval" of "Blocked". ChatGPT behandelt een tool zonder readOnlyHint als schrijvend en vraagt standaard om bevestiging.

De rechten in het ERP. Dit is de enige harde grens. Business Central voert elke aanroep uit met de identiteit en rechten van de ingelogde gebruiker. Bij AFAS bepaalt de app connector welke UpdateConnectoren bereikbaar zijn. Wat het ERP weigert, gebeurt niet, wat de assistent ook vraagt.

Hoeveel past er in één antwoord?

De API van het ERP is zelden de eerste grens. Claude neemt van één tool ongeveer 150.000 tekens aan en geeft een aanroep 240 seconden. Een rekenvoorbeeld met de vraag "welke artikelen liggen onder de minimumvoorraad?" bij 12.000 artikelen:

  • Ruwe artikelregels teruggeven: 12.000 × 120 tekens = 1.440.000 tekens. Dat is 9,6 keer de grens van Claude.
  • Ophalen bij een API die 250 records per pagina geeft: 12.000 / 250 = 48 aanroepen. Bij één aanroep per seconde is dat 48 seconden, binnen de 240.
  • De MCP-server filtert zelf en vindt 85 artikelen onder het minimum: 85 × 120 = 10.200 tekens naar Claude.
Een MCP-tool die 12.000 artikelen in het ERP doorzoekt Claude vraagt de lijst met tools op en roept de tool artikelen_onder_minimum aan. De MCP-server haalt 48 pagina's van 250 artikelen op bij het ERP, filtert zelf en geeft 85 artikelen terug, 10.200 tekens in plaats van 1.440.000. Claude MCP-host MCP-server vertaalt en filtert ERP REST API tools/list 4 tools met inputSchema tools/call artikelen_onder_minimum GET items, pagina 1 van 48 250 artikelen pagina 2 tot 48, 1 per seconde 12.000 artikelen, 85 onder minimum 85 regels, 10.200 tekens Ruw had het antwoord 12.000 x 120 = 1.440.000 tekens geweest, bijna tien keer de grens van ongeveer 150.000 tekens per toolresultaat in Claude.
De MCP-server doet het rekenwerk. Claude krijgt alleen de uitkomst.

De MCP-server doet dus het filteren en optellen in code, en de assistent formuleert het antwoord. Een optelling in code geeft bij dezelfde gegevens elke keer dezelfde uitkomst. Die 48 aanroepen tellen wel mee voor de rate limit van het ERP. Bij Exact Online, waar de limiet per app en per administratie telt, krijgt een MCP-server met een eigen app-registratie een eigen budget, los van de koppeling met de webshop. Hoe zulke limieten werken, staat in wat is een rate limit.

Welke versie en welke verbinding?

MCP verandert nog. Een versienummer is een datum: de laatste dag waarop iets niet meer achterwaarts compatibel was.

Versie Wat er verandert Waar je hem tegenkomt
2025-06-18 Sessie met een initialize-handshake NetSuite AI Connector Service
2025-11-25 Laatste versie met de handshake Oudere servers en clients
2026-07-28 Elke aanvraag staat op zichzelf en vermeldt zijn versie Huidige specificatie

Client en server spreken per aanvraag een versie af; een server die de gevraagde versie niet kent, geeft terug welke hij wel ondersteunt. Inloggen is in de specificatie optioneel. Waar het gebeurt, is de MCP-server een resource server in de zin van OAuth 2.1, en de assistent de client. Business Central en NetSuite gebruiken allebei de authorization code flow met PKCE. Claude legt de verbinding vanuit de infrastructuur van Anthropic, dus een eigen MCP-server draait op een adres dat van buiten bereikbaar is.

Wat betekent dit voor je koppeling?

Een MCP-server is een koppeling met het ERP, alleen met een AI-assistent aan de andere kant in plaats van een webshop. Hij heeft dezelfde onderdelen nodig: een app-registratie, tokens die verlopen, rate limits en een keuze welke velden meegaan. Heeft je ERP zelf geen MCP-server, of levert de standaard-API niet wat je wilt vragen, dan bouwen wij de server op de API van jouw pakket, met tools die bij jouw vragen passen.

Wij hosten en bewaken die server en passen hem aan als het ERP of het protocol verandert. Elke aanroep komt in de log: welke gebruiker, welke tool, welke parameters en wat het ERP terugstuurde. Het overzicht van wat we verder koppelen staat op koppelingen tussen je webshop en de systemen erachter. Vertel welke vragen je aan je ERP wilt stellen, dan hoor je welke tools daarvoor nodig zijn.

Veelgestelde vragen

Wie heeft MCP bedacht?

Anthropic, het bedrijf achter Claude, publiceerde het Model Context Protocol op 25 november 2024 als open standaard. Inmiddels werken ook ChatGPT, Gemini, GitHub Copilot en Copilot Studio met MCP-servers. De specificatie staat op modelcontextprotocol.io; de huidige versie is 2026-07-28.

Is een MCP-server hetzelfde als een API?

Nee. Een API is de toegang tot het ERP zelf. Een MCP-server zit ertussen: hij beschrijft tools in een vorm die een AI-assistent begrijpt en roept daarvoor de API aan. Wat de API niet levert, kan de MCP-server ook niet leveren.

Heeft mijn ERP een eigen MCP-server?

Business Central en NetSuite hebben er een, AFAS en Exact Online niet (stand 3 oktober 2026). Bij Business Central is de standaardinstelling alleen lezen; een beheerder kiest welke API-pagina's schrijven mogen. Voor AFAS en Exact wordt de MCP-server gebouwd op hun REST API.

Kan een AI-assistent via MCP orders aanmaken in mijn ERP?

Als de MCP-server daar een tool voor heeft en de rechten in het ERP het toestaan, ja. De MCP-specificatie vraagt dat een gebruiker elke aanroep kan weigeren, en Claude en ChatGPT vragen bij een schrijvende tool standaard om bevestiging. De harde grens ligt bij de rechten van de gebruiker of het token in het ERP.

Gaan mijn ERP-gegevens via MCP naar de AI-leverancier?

Wat een tool teruggeeft, gaat naar de assistent en wordt dus door Anthropic of OpenAI verwerkt. Wat er in dat resultaat staat, bepaalt de MCP-server. Een server die alleen totalen of de benodigde velden teruggeeft, deelt minder dan een server die hele records doorgeeft.

Vertel wat je nodig hebt

Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.

  • Je weet de prijs en de doorlooptijd voordat je iets toezegt
  • Wij zoeken uit welke koppeling het werk uit handen neemt
  • Wij verzorgen de bouw, hosting, bewaking en het onderhoud
  • Je team krijgt minder overtypwerk en minder uitzoekwerk

Leveranciers, producten, orders per dag, een ruwe schatting is prima.

Of mail direct: carsten@syncmyshop.com