KI-Agenten und MCP

Was ist MCP? Das Model Context Protocol erklärt

Das Model Context Protocol (MCP) ist ein offener Standard, um KI-Anwendungen mit Werkzeugen und Daten zu verbinden. Wie MCP funktioniert, seine Bausteine und die Sicherheit.

Übersetzt aus dem englischen Original. Code, Prompts und Modellausgaben bleiben auf Englisch.

Das Model Context Protocol (MCP) ist ein offener Standard, der festlegt, wie KI-Anwendungen sich mit externen Werkzeugen und Datenquellen verbinden. Anthropic hat ihn im November 2024 vorgestellt, und seither wird er in KI-Assistenten, Programmierwerkzeugen und Agenten-Frameworks übernommen.

Das Problem, das MCP löst

Ein Sprachmodell allein kann nur Text erzeugen. Um in echter Arbeit nützlich zu sein, muss es Dateien lesen, Datenbanken abfragen, suchen und APIs aufrufen. Vor MCP definierte jede KI-Anwendung ihren eigenen Weg, all das anzubinden, sodass ein für einen Assistenten gebautes Werkzeug für den nächsten neu gebaut werden musste.

MCP ersetzt das durch ein einziges Protokoll. Ein Werkzeuganbieter schreibt einmal einen MCP-Server, und jede MCP-kompatible Anwendung kann ihn nutzen. Der gängige Vergleich ist ein Universalstecker: ein Standardstecker statt eines anderen Kabels für jedes Gerät.

Wie MCP funktioniert

MCP kennt drei Rollen.

  • Host: die KI-Anwendung, die der Mensch nutzt, etwa eine Chat-App, eine IDE oder ein Agent.
  • Client: eine Komponente im Host, die die Verbindung zu einem Server hält.
  • Server: ein Programm, das dem Host Fähigkeiten bereitstellt.
Host application (assistant, IDE, agent)
   |  one MCP client per server
   v
MCP server  --->  files, databases, APIs, or pure computation

Die Nachrichten sind JSON-RPC 2.0. Beim Aufbau einer Verbindung tauschen Client und Server ihre Fähigkeiten aus, und der Client fragt den Server, was er anbietet. Der Host reicht diese Werkzeugdefinitionen an das Modell weiter. Entscheidet das Modell, ein Werkzeug zu benutzen, sendet der Client den Aufruf an den Server und gibt das Ergebnis zurück.

Die Bausteine

Server können drei Arten von Fähigkeiten anbieten.

Primitiv Was es ist Wer über die Nutzung entscheidet
Werkzeuge (Tools) Funktionen, die das Modell aufrufen kann, mit Name, Beschreibung und Eingabeschema Das Modell
Ressourcen (Resources) Nur lesbare Daten, die über eine URI identifiziert werden, etwa eine Datei oder ein Datensatz Die Anwendung oder der Nutzer
Prompts Wiederverwendbare Prompt-Vorlagen, die der Server bereitstellt Der Nutzer

Werkzeuge sind am weitesten verbreitet. Eine Werkzeugdefinition sieht so aus:

{
  "name": "estimate_tokens",
  "description": "Count the tokens in a prompt for a given model.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "prompt": { "type": "string" },
      "model": { "type": "string" }
    },
    "required": ["prompt"]
  }
}

Beschreibung und Schema werden vom Modell gelesen, sind also selbst Prompts. Klare Werkzeugbeschreibungen sind der größte Faktor dafür, ob ein Agent ein Werkzeug richtig einsetzt. Siehe Prompts für KI-Agenten.

Transporte

MCP legt fest, wie Nachrichten übertragen werden.

  • stdio: Der Host startet den Server als lokalen Prozess und kommuniziert über Standardeingabe und -ausgabe. Einfach, und nichts wird im Netzwerk offengelegt.
  • Streamable HTTP: Der Server läuft als Webdienst, den Clients über HTTP erreichen. Das passt zu entfernten und geteilten Servern und bringt die Authentifizierung ins Spiel.

MCP, Function Calling und APIs

Das sind Schichten, keine Konkurrenten.

  • Eine API ist die Art, wie Software mit einem Dienst spricht.
  • Function Calling ist die Art, wie ein Modell darum bittet, dass eine Funktion ausgeführt wird.
  • MCP standardisiert, wie Funktionen beschrieben, entdeckt und ausgeliefert werden, und zwar an jede KI-Anwendung.

Ein MCP-Server umhüllt oft eine bestehende API. Wenn Sie immer nur eine Anwendung bedienen, die Sie selbst kontrollieren, genügt einfaches Function Calling. MCP lohnt sich, wenn ein Werkzeug über viele Clients hinweg funktionieren soll.

Einen Server konfigurieren

Hosts werden mit einer Liste von Servern konfiguriert, die gestartet werden sollen. Ein lokaler stdio-Server braucht einen Befehl und seine Argumente:

{
  "mcpServers": {
    "promptflow": {
      "command": "node",
      "args": ["/absolute/path/to/packages/mcp-server/dist/bin.js"]
    }
  }
}

Die Schlüsselnamen unterscheiden sich zwischen Hosts etwas, die Form ist aber dieselbe.

Sicherheitsaspekte

Ein Modell mit Werkzeugen zu verbinden ist mächtig und vergrößert die Angriffsfläche.

Werkzeugergebnisse sind nicht vertrauenswürdige Eingaben. Ein Server, der Webseiten abruft oder Tickets liest, gibt Text zurück, den ein Angreifer geschrieben haben kann. Das Modell folgt möglicherweise darin enthaltenen Anweisungen. Siehe Prompt-Injection.

Das Modell vertraut Werkzeugbeschreibungen. Ein bösartiger Server kann ein Werkzeug irreführend beschreiben, um das Modell zu steuern. Installieren Sie Server nur aus vertrauenswürdigen Quellen und prüfen Sie, was sie deklarieren.

Kombinierte Fähigkeiten vervielfachen das Risiko. Eine Sitzung, die private Daten lesen, nicht vertrauenswürdige Inhalte lesen und Daten nach außen senden kann, lässt sich zu einem Exfiltrationsweg machen. Geben Sie einer Sitzung nicht alle drei.

Es gilt das Prinzip der geringsten Rechte. Bevorzugen Sie Server, die eine Sache tun, nutzen Sie wo möglich Lesezugriff und verlangen Sie Bestätigung für Aktionen mit Nebenwirkungen.

Lokale Server laufen mit Ihren Berechtigungen. Ein stdio-Server ist ein Programm auf Ihrem Rechner. Behandeln Sie seine Installation wie die jeder anderen Software.

Einen guten MCP-Server entwerfen

  • Bieten Sie wenige, gut benannte Werkzeuge mit klar getrennten Zwecken an.
  • Schreiben Sie Beschreibungen, die sagen, wann ein Werkzeug zu verwenden ist und was es zurückgibt.
  • Validieren Sie jedes Argument und geben Sie Fehler zurück, mit denen das Modell etwas anfangen kann.
  • Halten Sie Ergebnisse kompakt, denn sie verbrauchen den Kontext des Modells.
  • Kennzeichnen Sie rein lesende Werkzeuge als schreibgeschützt, damit Hosts sie entsprechend behandeln können.
  • Geben Sie niemals Geheimnisse in Ergebnissen oder Logs zurück.

Ein Beispiel: Prompt-Werkzeuge über MCP

Der PromptFlowEngine-MCP-Server ist eine kleine Veranschaulichung dieser Prinzipien. Er stellt die Prompt-Engine als Werkzeuge zum Analysieren, Umstrukturieren, Optimieren, Vergleichen und Bereinigen von Prompts bereit, dazu die Regel- und Modellkataloge als Ressourcen. Er nutzt den stdio-Transport, macht keine Netzwerkaufrufe und hat keinen Datei- oder Shell-Zugriff, sodass jedes Werkzeug schreibgeschützt ist: Es kann nur den Text verarbeiten, den es bekommt.

Ist er verbunden, kann ein Agent seine eigene Arbeit prüfen:

Use promptflow to restructure this before you start:
"fix login issue and make google login work and don't break anything"

Der Agent ruft das Umstrukturierungswerkzeug auf und erhält eine gegliederte Spezifikation mit Anforderungen, Randfällen und Akzeptanzkriterien, die er anschließend umsetzt. Die Einrichtung ist in der MCP-Client-Dokumentation beschrieben.

Wo MCP hingehört

MCP ist die Verbindungsschicht eines Agentensystems. Die Reasoning-Schleife, die entscheidet, wann ein Werkzeug aufgerufen wird, behandelt das ReAct-Prompting, und die Anweisungen, die sie steuern, die Prompts für KI-Agenten.