Einführung in das Model Context Protocol (MCP)
Im Bereich der Large Language Models (LLMs) ist es oft notwendig, diese mit externen Ressourcen wie Datenrepositorien, spezialisierten Tools oder Application Programming Interfaces (APIs) zu verbinden, um ihr wahres Potenzial zu entfalten. Bisher fehlte jedoch eine standardisierte Methode für diese Integration. Anthropic hat nun eine potenzielle Lösung vorgestellt: das Model Context Protocol (MCP), ein offenes Protokoll, das darauf abzielt, das “USB-C” der KI-Welt zu werden. Lassen Sie uns MCP im Detail untersuchen und seine Funktionalitäten, Anwendungen, Herausforderungen und Einsatzstrategien beleuchten.
MCP, ein Open-Source-Projekt, das von den Entwicklern des Claude-Modells initiiert wurde, wurde vor kurzem vorgestellt. Es sieht einen universellen, offenen Standard vor, der KI-Systeme nahtlos mit verschiedenen Datenquellen verbindet. MCP geht über einfache Datenbanken hinaus und ermöglicht den Zugriff auf eine Vielzahl von Tools und Ressourcen. Zu diesen Fähigkeiten gehören das Abfragen von Datenbanken, das Starten von Docker-Containern und sogar die Interaktion mit beliebten Messaging-Plattformen wie Slack oder Discord.
Ob es darum geht, ein LLM mit einer SQL-Datenbank zu integrieren, einen Kubernetes-Cluster zu verwalten oder Jira-Aufgaben zu automatisieren, es besteht eine hohe Wahrscheinlichkeit, dass bereits ein geeigneter MCP-Server existiert. Das Projekt hat eine bemerkenswerte Dynamik entwickelt und zieht erhebliche Aufmerksamkeit und Unterstützung von Branchengrößen wie OpenAI und Google auf sich.
Diese Untersuchung befasst sich mit den praktischen Aspekten von MCP und beleuchtet seine potenziellen Anwendungen, inhärenten Herausforderungen und Methoden zur Bereitstellung und Integration von MCP-Servern mit Claude Desktop und benutzerdefinierten Modellen unter Verwendung der Open WebUI.
Das Verständnis von MCP: Eine Client-Server-Architektur
MCP arbeitet mit einer herkömmlichen Client-Server-Architektur, die aus drei grundlegenden Elementen besteht: dem Host, dem Client und dem Server.
Der Host ist typischerweise eine benutzerorientierte Oberfläche, wie z. B. Claude Desktop oder eine Integrated Development Environment (IDE) wie Cursor. Er ist für die Verwaltung eines oder mehrerer MCP-Clients verantwortlich.
Jeder Client stellt über das MCP-Protokoll eine dedizierte Verbindung zum Server her. Die Kommunikation zwischen Client und Server erfolgt über JSON-RPC-Nachrichten, wobei die Transportschicht je nach spezifischer Implementierung variiert. Derzeit unterstützte Transportschichten sind Stdio, HTTP und Server-Sent Events (SSE).
Der MCP Server stellt dem Client spezifische Funktionen zur Verfügung und macht sie dem Host auf standardisierte Weise zugänglich. Diese einheitliche Zugänglichkeit ist der Hauptgrund, warum MCP oft mit USB-C für KI verglichen wird.
Ähnlich wie USB die Konnektivität revolutionierte, indem es die Notwendigkeit unterschiedlicher Schnittstellen für Peripheriegeräte und Speichergeräte beseitigte, ist MCP bestrebt, eine gemeinsame Sprache für Modelle zu schaffen, um mit Daten und Tools zu interagieren.
Die Rolle des MCP-Servers hängt vom Standort der Ressource ab. Für lokale Ressourcen, wie z. B. eine SQLite-Datenbank, greift der Server direkt auf die Ressource zu. Für Remote-Ressourcen, wie z. B. einen S3-Bucket, fungiert er als Brücke und leitet API-Aufrufe weiter. Diese Brückenfunktion verstärkt die USB-C-Analogie, da MCP-Server oft als Adapter dienen, die herstellerspezifische Schnittstellen in ein standardisiertes Format übersetzen, das Sprachmodelle leicht verstehen können.
Der konsistente Exposure- und Response-Mechanismus ist ein Schlüsselaspekt von MCP, der die Einheitlichkeit über verschiedene Ressourcen hinweg gewährleistet.
Eines der faszinierendsten Merkmale von MCP ist seine bidirektionale Kommunikationsfähigkeit. Der Host kann nicht nur Daten vom Server anfordern, sondern der Server kann auch mit dem LLM über Sampling-/createMessage-Anfragen an den Client kommunizieren. Obwohl diese Funktionalität noch nicht universell unterstützt wird, ebnet sie den Weg für spannende agentische Workflows.
Mit einem grundlegenden Verständnis von MCP wollen wir nun seine praktische Anwendung untersuchen.
Praktische Anwendung von MCP: Testen mit Claude Desktop
Angesichts der Entwicklung von MCP durch Anthropic bietet Claude Desktop eine unkomplizierte Umgebung für erste Experimente.
Für Benutzer, die es vorziehen, Drittanbieter-LLM zu vermeiden, wird im folgenden Abschnitt die Verbindung von MCP-Servern mit lokalen Modellen und der Open WebUI-Oberfläche behandelt.
Neben Claude Desktop werden einige Abhängigkeiten benötigt, da MCP-Server in verschiedenen Umgebungen betrieben werden können. Für diese Demonstration müssen Node.js, Python 3 und der UVX-Paketmanager für Python installiert sein.
Nach der Installation der erforderlichen Abhängigkeiten starten Sie Claude Desktop und melden Sie sich mit einem Anthropic-Konto an. Navigieren Sie zu den Anwendungseinstellungen und dann zur Registerkarte “Developer”.
Durch Klicken auf die Schaltfläche “Edit Config” wird automatisch eine leere claude_desktop_config.json
-Datei im Ordner ~/Library/Application Support/Claude/
auf macOS oder im Ordner %APPDATA%\\Claude\\
auf Windows generiert. Diese Datei enthält die MCP-Client-Konfiguration. Die MCP-Server für Systemzeit und Dateisystem werden zu Testzwecken verwendet.
Öffnen Sie die Datei claude_desktop_config.json
in einem Texteditor oder einer IDE (z. B. VSCodium) und ersetzen Sie ihren Inhalt durch die folgende Time-Server-Konfiguration, wobei Sie die Zeitzone nach Wunsch anpassen: