MCP: Model Context Protocol

MCP standardisiert den sicheren LLM-Zugriff auf externe Daten, Werkzeuge und Plugins und ermöglicht flexible, leistungsstarke KI-Integration und Interoperabilität.

Definition

Das Model Context Protocol (MCP) ist eine offene Standard-Schnittstelle, die es großen Sprachmodellen (LLMs) ermöglicht, sicher und konsistent auf externe Datenquellen, Werkzeuge und Funktionen zuzugreifen. Es etabliert eine standardisierte Kommunikationsschicht zwischen KI-Anwendungen und verschiedenen Kontextanbietern und dient als „USB-C“ für KI-Systeme.

Hauptkomponenten

Architektur

MCP folgt einer Client-Server-Architektur:

  • MCP Hosts: Anwendungen, in denen Benutzer oder KI-Systeme interagieren (z. B. Claude Desktop, IDE-Plugins)
  • MCP Clients: Komponenten innerhalb der Host-Anwendungen, die die Kommunikation mit Servern abwickeln
  • MCP Server: Schlanke Programme, die spezifische Fähigkeiten (Dateizugriff, Datenbankverbindungen, API-Zugriff) über die standardisierte MCP-Schnittstelle bereitstellen
  • Datenquellen: Lokale oder entfernte Informationsquellen, auf die MCP-Server sicher zugreifen können

Grundlegende Bausteine

MCP definiert drei grundlegende Bausteine, die das Fundament des Protokolls bilden:

1. Ressourcen

Ressourcen repräsentieren Daten und Inhalte, die MCP-Server LLMs zur Verfügung stellen.

  • Eigenschaften: Durch die Anwendung kontrolliert, eindeutig durch URIs identifiziert
  • Datentypen: Text (UTF-8 kodiert) oder Binär (Base64 kodiert)
  • Entdeckungsmethoden: Direkte Auflistung oder Vorlagen für dynamische Ressourcenanfragen
  • Operationen: Lesen von Inhalten, Empfang von Aktualisierungen

Beispielanwendung: Ein MCP-Server stellt eine Logdatei als Ressource mit der URI file:///logs/app.log bereit

2. Prompts

Prompts sind vordefinierte Vorlagen oder Workflows, die Server anbieten, um die Interaktion mit LLMs zu steuern.

  • Eigenschaften: Vom Benutzer ausgelöst, erscheinen häufig als Slash-Befehle
  • Struktur: Eindeutiger Name, Beschreibung, optionale Argumente
  • Fähigkeiten: Akzeptieren Anpassungsargumente, Einbindung von Ressourcen-Kontext, Definition mehrstufiger Interaktionen
  • Operationen: Entdeckung durch Auflistung, Ausführung auf Anfrage

Beispielanwendung: Ein Prompt zur Generierung einer Git-Commit-Nachricht, der Codeänderungen als Eingabe akzeptiert

3. Werkzeuge

Werkzeuge bieten ausführbare Funktionen, die von LLMs (meist mit Nutzerfreigabe) aufgerufen werden können, um Aktionen auszuführen.

  • Eigenschaften: Vom Modell gesteuert, erfordern klar definierte Eingabemodelle
  • Anmerkungen: Enthalten Hinweise zum Verhalten (nur lesend, destruktiv, idempotent, open-world)
  • Sicherheitsmerkmale: Eingabevalidierung, Zugriffskontrolle, klare Nutzerwarnungen
  • Operationen: Entdeckung durch Auflistung, Ausführung durch Aufrufe mit Parametern

Beispielanwendung: Ein Rechner-Tool, das mathematische Operationen mit vom Modell bereitgestellten Eingaben durchführt

Bedeutung und Vorteile

Für Entwickler

  • Standardisierte Integration: KI-Anwendungen mit verschiedenen Datenquellen verbinden, ohne für jede eine eigene Anbindung zu entwickeln
  • Bestehende Sicherheitspraktiken: Eingebaute Richtlinien für den sicheren Umgang mit sensiblen Informationen
  • Vereinfachte Architektur: Klare Trennung zwischen KI-Modellen und deren Kontextquellen

Für Nutzer und Organisationen

  • Flexibilität: Einfacher Wechsel zwischen verschiedenen LLM-Anbietern oder Host-Anwendungen
  • Interoperabilität: Weniger Anbieterbindung dank standardisierter Schnittstellen
  • Erweiterte Fähigkeiten: KI-Systeme erhalten Zugang zu vielfältigeren Informationen und Aktionsmöglichkeiten

Implementierungsbeispiele

Dateiresourcen-Server

// Server, der eine einzelne Logdatei als Ressource bereitstellt
const server = new Server({ /* config */ }, { capabilities: { resources: {} } });

// Listet verfügbare Ressourcen auf
server.setRequestHandler(ListResourcesRequestSchema, async () => {
  return {
    resources: [
      {
        uri: "file:///logs/app.log",
        name: "Anwendungsprotokolle",
        mimeType: "text/plain"
      }
    ]
  };
});

// Stellt den Inhalt der Ressource bereit
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("Ressource nicht gefunden");
});

Rechner-Tool-Server

const server = new Server({ /* config */ }, { capabilities: { tools: {} } });

// Listet verfügbare Werkzeuge auf
server.setRequestHandler(ListToolsRequestSchema, async () => {
  return {
    tools: [{
      name: "calculate_sum",
      description: "Addiere zwei Zahlen",
      inputSchema: {
        type: "object",
        properties: {
          a: { type: "number", description: "Erste Zahl" },
          b: { type: "number", description: "Zweite Zahl" }
        },
        required: ["a", "b"]
      },
      annotations: {
        title: "Summe berechnen",
        readOnlyHint: true,
        openWorldHint: false
      }
    }]
  };
});

// Bearbeitet die Ausführung des Werkzeugs
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("Ungültige Eingabe: 'a' und 'b' müssen Zahlen sein.");
      }
      const sum = a + b;
      return {
        content: [{ type: "text", text: String(sum) }]
      };
    } catch (error: any) {
      return {
        isError: true,
        content: [{ type: "text", text: `Fehler beim Berechnen der Summe: ${error.message}` }]
      };
    }
  }
  throw new Error("Werkzeug nicht gefunden");
});

Verwandte Konzepte

  • LLM-Funktionsaufrufe: Das Model Context Protocol bietet einen standardisierten Ansatz für das Aufrufen von Funktionen durch LLMs
  • KI-Agenten: MCP bietet eine strukturierte Möglichkeit für agentenbasierte KI-Systeme, auf Werkzeuge und Informationen zuzugreifen
  • KI-Plugins: Ähnlich wie Browser-Erweiterungen können MCP-Server als „Plugins“ betrachtet werden, die die Fähigkeiten von KI erweitern

Zukünftige Entwicklungen

  • Enterprise-KI-Integration: Verbindung von Unternehmenswissen, Werkzeugen und Workflows
  • Multimodale KI: Standardisierung des Zugriffs auf verschiedene Datentypen über Text hinaus
  • Kollaborative KI-Systeme: Ermöglichen, dass KI-Assistenten über gemeinsame Protokolle zusammenarbeiten

Häufig gestellte Fragen

Was ist das Model Context Protocol (MCP)?

MCP ist eine offene Standard-Schnittstelle, die es LLMs ermöglicht, sicher und konsistent auf externe Datenquellen, Werkzeuge und Funktionen zuzugreifen und eine standardisierte Kommunikationsschicht zwischen KI-Anwendungen und Kontextanbietern schafft.

Was sind die wichtigsten Komponenten von MCP?

MCP besteht aus Hosts, Clients, Servern und Datenquellen. Es nutzt zentrale Grundbausteine – Ressourcen, Prompts und Werkzeuge –, um flexible und sichere Interaktionen zwischen LLMs und externen Systemen zu ermöglichen.

Welche Vorteile bietet MCP für Entwickler und Unternehmen?

MCP vereinfacht die KI-Integration, erhöht die Sicherheit, reduziert die Anbieterbindung und ermöglicht Entwicklern sowie Unternehmen einen nahtlosen Zugang zu unterschiedlichen Informationen und Werkzeugen.

Wie wird MCP in realen Anwendungen implementiert?

MCP kann über Server implementiert werden, die Ressourcen oder Werkzeuge (z. B. Logdateizugriff, Rechner-Tools) über eine standardisierte Schnittstelle bereitstellen und so die Verbindung mit KI-Modellen vereinfachen.

Wie hängt MCP mit LLM-Funktionsaufrufen und KI-Plugins zusammen?

MCP standardisiert den Prozess, wie LLMs externe Funktionen oder Werkzeuge aufrufen – ähnlich wie Plugins die Fähigkeiten von Browsern oder Software erweitern.

Teste FlowHunt und entwickle eigene KI-Lösungen

Beginne mit dem Aufbau leistungsstarker KI-Systeme durch standardisierte Integrationen, sicheren Datenzugriff und flexible Tool-Anbindung mit FlowHunt.

Mehr erfahren