MCP: Model Context Protocol
MCP standaardiseert veilige LLM-toegang tot externe data, tools en plugins, en maakt flexibele, krachtige AI-integratie en interoperabiliteit mogelijk.
Definitie
Het Model Context Protocol (MCP) is een open standaardinterface waarmee grote taalmodellen (LLM’s) veilig en consistent toegang krijgen tot externe databronnen, tools en mogelijkheden. Het creëert een gestandaardiseerde communicatielaag tussen AI-toepassingen en verschillende contextproviders, en fungeert daarmee als de “USB-C” voor AI-systemen.
Belangrijkste Componenten
Architectuur
MCP volgt een client-serverarchitectuur:
- MCP Hosts: Applicaties waarin gebruikers of AI-systemen interageren (bijv. Claude Desktop, IDE-plugins)
- MCP Clients: Componenten binnen hostapplicaties die de communicatie met servers afhandelen
- MCP Servers: Lichtgewicht programma’s die specifieke mogelijkheden (bestandstoegang, databaseverbindingen, API-toegang) aanbieden via de gestandaardiseerde MCP-interface
- Databronnen: Lokale of externe informatierepositories waar MCP-servers veilig toegang toe kunnen krijgen
Kernprimitieven
MCP definieert drie fundamentele primitieven die de bouwstenen van het protocol vormen:
1. Resources
Resources vertegenwoordigen data en inhoud die MCP-servers beschikbaar stellen aan LLM’s.
- Kenmerken: Door de applicatie beheerd, geïdentificeerd door unieke URI’s
- Datatypes: Tekst (UTF-8 gecodeerd) of Binair (Base64 gecodeerd)
- Ontdekkingsmethoden: Directe lijst of sjablonen voor dynamische resource-aanvragen
- Operaties: Inhoud lezen, updates ontvangen
Voorbeeldtoepassing: Een MCP-server die een logbestand aanbiedt als resource met URI file:///logs/app.log
2. Prompts
Prompts zijn vooraf gedefinieerde sjablonen of workflows die servers aanbieden om LLM-interacties te begeleiden.
- Kenmerken: Door gebruikers gestart, vaak zichtbaar als slash-commando’s
- Structuur: Unieke naam, beschrijving, optionele argumenten
- Mogelijkheden: Kunnen aanpasbare argumenten accepteren, resourcecontext opnemen, meerstapsinteracties definiëren
- Operaties: Ontdekking via lijst, uitvoering op aanvraag
Voorbeeldtoepassing: Een prompt voor het genereren van git commit-berichten die codewijzigingen als invoer accepteert
3. Tools
Tools stellen uitvoerbare functies beschikbaar die LLM’s kunnen aanroepen (meestal met goedkeuring van de gebruiker) om acties uit te voeren.
- Kenmerken: Door het model bestuurd, vereist goed gedefinieerde invoerschema’s
- Annotaties: Bevatten hints over gedrag (alleen-lezen, destructief, idempotent, open-wereld)
- Beveiligingskenmerken: Inputvalidatie, toegangscontrole, duidelijke waarschuwingen aan gebruikers
- Operaties: Ontdekking via lijst, uitvoering via aanroep met parameters
Voorbeeldtoepassing: Een rekenmachine-tool die wiskundige bewerkingen uitvoert op invoer van het model
Belang en Voordelen
Voor Ontwikkelaars
- Gestandaardiseerde integratie: Verbind AI-toepassingen met diverse databronnen zonder voor elke bron maatwerkcode te schrijven
- Best practices voor beveiliging: Ingebouwde richtlijnen voor het veilig ontsluiten van gevoelige informatie
- Vereenvoudigde architectuur: Duidelijke scheiding tussen AI-modellen en hun contextbronnen
Voor Gebruikers en Organisaties
- Flexibiliteit: Eenvoudiger wisselen tussen verschillende LLM-aanbieders of hostapplicaties
- Interoperabiliteit: Minder vendor lock-in door gestandaardiseerde interfaces
- Uitgebreide mogelijkheden: AI-systemen krijgen toegang tot diversere informatie en actiemogelijkheden
Implementatievoorbeelden
File Resource Server
// Server die een enkel logbestand als resource aanbiedt
const server = new Server({ /* config */ }, { capabilities: { resources: {} } });
// Lijst beschikbare resources op
server.setRequestHandler(ListResourcesRequestSchema, async () => {
return {
resources: [
{
uri: "file:///logs/app.log",
name: "Applicatielogs",
mimeType: "text/plain"
}
]
};
});
// Stel resource-inhoud beschikbaar
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
if (request.params.uri === "file:///logs/app.log") {
const logContents = await readLogFile();
return {
contents: [{
uri: request.params.uri,
mimeType: "text/plain",
text: logContents
}]
};
}
throw new Error("Resource niet gevonden");
});
Calculator Tool Server
const server = new Server({ /* config */ }, { capabilities: { tools: {} } });
// Lijst beschikbare tools op
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [{
name: "calculate_sum",
description: "Tel twee getallen bij elkaar op",
inputSchema: {
type: "object",
properties: {
a: { type: "number", description: "Eerste getal" },
b: { type: "number", description: "Tweede getal" }
},
required: ["a", "b"]
},
annotations: {
title: "Som berekenen",
readOnlyHint: true,
openWorldHint: false
}
}]
};
});
// Verwerk toolexecutie
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === "calculate_sum") {
try {
const { a, b } = request.params.arguments;
if (typeof a !== 'number' || typeof b !== 'number') {
throw new Error("Ongeldige invoer: 'a' en 'b' moeten getallen zijn.");
}
const sum = a + b;
return {
content: [{ type: "text", text: String(sum) }]
};
} catch (error: any) {
return {
isError: true,
content: [{ type: "text", text: `Fout bij som berekenen: ${error.message}` }]
};
}
}
throw new Error("Tool niet gevonden");
});
Gerelateerde Concepten
- LLM Function Calling: Model Context Protocol biedt een gestandaardiseerde benadering voor het aanroepen van functies door LLM’s
- AI Agents: MCP biedt een gestructureerde manier voor agent-gebaseerde AI-systemen om toegang te krijgen tot tools en informatie
- AI Plugins: Net als browserextensies kunnen MCP-servers worden gezien als “plugins” die AI-mogelijkheden uitbreiden
Toekomstige Richtingen
- AI-integratie voor bedrijven: Koppeling met bedrijfskennisbanken, tools en workflows
- Multimodale AI: Gestandaardiseerde toegang tot verschillende datatypes, niet alleen tekst
- Samenwerkende AI-systemen: AI-assistenten laten samenwerken via gedeelde protocollen
Veelgestelde vragen
- Wat is het Model Context Protocol (MCP)?
MCP is een open standaardinterface die LLM's in staat stelt veilig en consistent toegang te krijgen tot externe databronnen, tools en mogelijkheden, en creëert een gestandaardiseerde communicatielaag tussen AI-toepassingen en contextproviders.
- Wat zijn de belangrijkste componenten van MCP?
MCP bestaat uit hosts, clients, servers en databronnen. Het gebruikt kernprimitieven—resources, prompts en tools—om flexibele en veilige interacties mogelijk te maken tussen LLM's en externe systemen.
- Welke voordelen biedt MCP aan ontwikkelaars en organisaties?
MCP vereenvoudigt AI-integratie, verhoogt de veiligheid, vermindert vendor lock-in en maakt naadloze toegang tot verschillende informatie en tools mogelijk voor zowel ontwikkelaars als organisaties.
- Hoe wordt MCP geïmplementeerd in praktijktoepassingen?
MCP kan worden geïmplementeerd via servers die resources of tools (bijv. logbestand-toegang, rekenmachine-tools) aanbieden via een gestandaardiseerde interface, waardoor verbindingen met AI-modellen worden vereenvoudigd.
- Hoe verhoudt MCP zich tot LLM function calling en AI-plugins?
MCP standaardiseert het proces waarbij LLM's externe functies of tools aanroepen, vergelijkbaar met hoe plugins de mogelijkheden van browsers of software uitbreiden.
Probeer FlowHunt en bouw je eigen AI-oplossingen
Begin met het bouwen van krachtige AI-systemen met gestandaardiseerde integraties, veilige data-toegang en flexibele toolconnectiviteit via FlowHunt.