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.

Meer informatie