Transcription
mCP, oder das Model Context Protocol, ist das, worüber jeder spricht. Und hier ist Ihre Zusammenfassung: Was es ist, warum es wichtig ist, wie es funktioniert, wie es sich mit anderen Protokollen vergleicht und einige wichtige Erkenntnisse. Lasst uns direkt einsteigen. [Musik]
Okay, beginnen wir mit der Aufschlüsselung des Namens. mCP steht für Model Context Protocol, und das „m“ für Model steht in diesem Fall für ein KI-Modell. Während Sie es für Bildmodelle und Text-zu-Sprache-Modelle und wirklich alle Arten von Modellen verwenden können, ist es für LLMs oder Large Language Models wie OpenAI GPT-4, Googles Gemini und Anthropics Claude am nützlichsten. Wenn es um KI-Modelle geht, ist Kontext alles.
Nehmen wir eine Anfrage wie diese: „Schauen Sie sich meine SQLite-Datenbank an und stellen Sie sicher, dass die Summe aller Bestellungen korrekt ist und mit dem übereinstimmt, was in meiner Präsentation steht.“ Kein Modell allein wird dies tun können. Es fehlt der Kontext. Es muss in der Lage sein, die Datenbank abzufragen, um die Bestellungen zu erhalten, und es muss in der Lage sein, die Präsentation zu lesen, die sich in einer Datei befindet. Wenn es dann beides hat, kann es Ihre Frage beantworten. Daher kommt das „C“ in mCP, das für Kontext steht. mCP-Server bieten eine Möglichkeit für KI-Modelle, auf den Kontext zuzugreifen, den sie benötigen, um Aufgaben zu erledigen. Im Fall dieser Anfrage haben Sie wahrscheinlich einen mCP-Server, der auf die Datenbank zugreifen kann, und einen anderen mCP-Server, der auf Ihre Präsentationsdatei zugreifen kann, vielleicht aus der Cloud. Das Modell kann beide mCP-Server verwenden, um diese einzelne Aufgabe zu erledigen.
Es gibt vier Arten von Kontext-Primitiven, die ein mCP-Server einem KI-Modell bereitstellen kann. Erstens sind da Tools. Dies sind Funktionen, die das Modell verwenden kann, um Aktionen auszuführen, wie z. B. das Erstellen oder Aktualisieren einer Datenbank oder wirklich alles. Es gibt auch Ressourcen. Ressourcen sind im Wesentlichen Anhänge, die Sie dem Modell zur Verfügung stellen. In unserem Fall wäre das die Präsentationsdatei. Ressourcen und Tools sind bei weitem die häufigsten, die ich gesehen habe. Aber es gibt noch zwei weitere: Sampling, eine Möglichkeit für das Modell, andere Modelle abzufragen, und parametrisierte Eingabeaufforderungen, die Clients als Vorlagen verwenden können, wenn sie Anfragen an das Modell stellen. Diese beiden werden weniger häufig verwendet, sind aber immer noch Teil von mCP, und wir könnten sehen, dass sie in Zukunft häufiger verwendet werden.
Ich habe viel über mCP-Server und -Clients gesprochen, also lassen Sie uns darauf eingehen. mCP-Server sind Programme oder Server, die Anfragen von mCP-Clients bearbeiten. Der mCP-Server implementiert die Tools oder stellt die Ressourcen bereit, und der mCP-Client stellt die Anfrage an den Server für diese Tools und Ressourcen. Hier ist eine Website, die eine Liste aller mCP-Clients sowie eine umfangreiche Liste von mCP-Servern enthält. Ich habe einen Link dazu in die Beschreibung unten eingefügt, und Sie können selbst nachsehen. In unserem Beispiel ist der mCP-Client die Chat-Oberfläche, in die wir tippen, Claude Desktop, und der mCP-Server wäre ein Programm, das wir auf unserem eigenen Computer ausführen oder in der Cloud hosten und das uns Zugriff auf die SQL-Datenbank und die Präsentation ermöglicht.
Das „P“ in mCP steht für Protokoll, und das mCP-Protokoll definiert die Struktur der Nachrichten, die zwischen Client und Server ausgetauscht werden. Ehrlich gesagt, müssen Sie nicht alle Details der Nachrichten selbst kennen, aber wichtig ist, dass es gut definiert ist und etwas namens Reflection unterstützt. Reflection ist die Fähigkeit des Clients, den Server nach Informationen über die Primitiven zu fragen, die der Server bereitstellt, wie z. B. die Tools und Ressourcen. Reflection ist ein kritischer Bestandteil von mCP und macht mCP von anderen API-Protokollen wie gRPC, tRPC und REST verschieden.
Ich habe erwähnt, dass mCP-Server Programme sind, die Sie ausführen können, oder dass sie als Dienst bereitgestellt werden können, und das liegt daran, dass das Protokoll für die Verwendung mit verschiedenen Transportarten konzipiert ist. Es gibt zwei Haupttransportarten. Als erstes die Standard-IO-Transportart. Dort führt der mCP-Client den mCP-Server als Programm direkt auf Ihrem eigenen Computer aus, und der mCP-Client kommuniziert mit dem mCP-Server über die integrierten Unix- oder Windows-Standard-Eingabe- und -Ausgabemechanismen, kurz Standard-IO. Der andere Transportmechanismus ist SSE oder Server-Sent Events. Dies ist netzwerkbasiert, sodass Ihr mCP-Client mit einer Remote-URL konfiguriert ist, und dann werden Nachrichten über SSE über HTTP oder HTTPS hin und her gesendet. Welche dieser Transportmechanismen Sie verwenden, hängt von Ihrem Anwendungsfall ab. In unserem Beispiel werden wir wahrscheinlich Standard-IO für beide verwenden, da unsere lokale Maschine Zugriff auf unsere SQLite-Datenbank sowie auf unsere Präsentationsdatei hat.
Okay, lassen Sie uns nun tatsächlich einen mCP-Server ausprobieren. Tatsächlich lassen Sie uns einen SQLite-Server ausprobieren, der zu unserem Beispiel passt, und als mCP-Client verwenden wir Claude Desktop. Das wird jetzt ziemlich komplex. mCP ist noch neu, daher sind diese Flows noch etwas grob. Zuerst müssen Sie den Quellcode auf Ihren Server herunterladen, was ich bereits getan habe. Dann müssen Sie den Client konfigurieren, und jeder Client handhabt dies etwas anders. Für Claude Desktop bedeutet dies tatsächlich, eine JSON-Konfigurationsdatei zu bearbeiten und eine neue Serverkonfiguration hinzuzufügen. Da wir den Standard-IO-Transport verwenden, müssen wir den Server als Programm ausführen. Daher geben wir den Befehl und die Argumente an, und Claude Desktop übernimmt das Booten dieser Anwendung. Nun können wir Claude mit einer neuen Konfiguration neu starten, und wir können dieses kleine Verbindungssymbol sehen. Wenn wir darauf klicken, können wir sehen, dass ein Server läuft, und jetzt können wir eine Anfrage eingeben, um eine SQLite-Datenbank zu verwenden, und an jedem Punkt werden wir aufgefordert zu bestätigen, ob das Richtige getan wird, da dieser mCP-Server tatsächlich Änderungen an der Datenbank vornehmen könnte, und daher wollen wir sicherstellen, dass diese Bestätigungen Ihnen helfen zu verstehen, was passiert, und ihn stoppen, wenn er nicht das tut, was Sie wollen.
Nachdem wir nun mehr darüber verstehen, wie der Client funktioniert, lassen Sie uns etwas tiefer in den Server eintauchen. Ich tue das aus zwei Gründen. Erstens möchte ich Ihnen zeigen, wie mCP-Server funktionieren, und zweitens möchte ich Sie ermutigen, Ihren eigenen mCP-Server zu erstellen, der zu Ihrem spezifischen Anwendungsfall passt. Dies ist der Code für ein sehr einfaches Serverbeispiel, das in Typescript geschrieben wurde. Sie sehen oben, dass wir den Server mit seinem Namen und seiner Version definieren, und unten führen wir diesen Server mit Standard-IO-Transport aus. Das bedeutet, dass es sich um ein Programm handelt, das Sie auf Ihrem eigenen Computer ausführen werden. Zwischen der Definition dieser beiden Dinge fügen wir unsere Tools und Ressourcen hinzu. Für jedes Tool geben wir ihm einen Namen und eine Beschreibung, und diese sollten so geschrieben sein, dass es für die KI leicht zu verstehen ist, was das Tool ist und wann es es verwenden sollte. Dann definieren wir die Parameter für die Funktion, aber wieder fügen wir Beschreibungen hinzu, damit wir der KI einen Hinweis geben können, wofür jeder Parameter bestimmt ist und welches Format der Parameter hat. Dann definieren wir den Funktionskörper, und hier haben Sie tatsächlich Ihren benutzerdefinierten Abfragecode, der eine Verbindung zu Ihrer Datenbank oder Ihrer API herstellen würde, um die Bestellungen abzurufen. Das Coole ist, dass wir das alles ohne KI testen können. Wir können diesen Server tatsächlich in dem sogenannten Inspektor ausführen, und dann sehen Sie oben alle verschiedenen Arten von Primitiven, und wir können auf Tools klicken und diese überprüfen. Beachten Sie, dass wir eine Liste aller verfügbaren Tools erhalten haben, und das liegt daran, dass das mCP-Protokoll Reflection unterstützt. Das erste, was der Client tut, ist, einen Server nach seinen Tools und Ressourcen und allen Primitiven zu fragen, damit er weiß, auf was er Zugriff hat. Das ist super wichtig, weil nicht viele Protokolle Reflection unterstützen. Wir können das Tool sogar im Inspektor ausführen, was sicherlich billiger ist, als es in einer KI zu testen, und wir können sicherstellen, dass wir der KI die richtigen Ergebnisse liefern. Zurück im Code können wir auch Ressourcen definieren, bei denen Sie eine Liste aller möglichen Ressourcen angeben, z. B. eine Liste von Dateien oder ein Verzeichnis, und dann haben wir eine Methode, die sie abruft, wenn eine bestimmte Ressource angefordert wird, und natürlich können wir diese Ressourcen im Inspektor testen.
Nachdem wir nun im Großen und Ganzen wissen, was mCP ist und wie es funktioniert, lassen Sie uns die erste Frage beantworten, die jeder stellt: Warum mCP anstelle eines allgemeineren API-Standards wie GraphQL verwenden? GraphQL hat Reflection, genau wie mCP, obwohl es deaktiviert werden kann, und GraphQL ist ein wirklich gut definiertes Protokoll. Warum also nicht einfach das verwenden? Nun, es hilft, den Unterschied aus der Perspektive des KI-Modells zu verstehen. LLMs unterstützen Tools. GraphQL hat keine Tools als Primitives. Es hat Entitäten und Felder, aber keinen direkten Remote Procedure Call- oder RPC-Mechanismus, der Tools ähnelt. Wenn Sie also ein LLM-Modell mit einer GraphQL-API verbinden möchten, müssen Sie Tools erstellen, die die Entitäten in diesen Feldern abfragen, und dann die Tools dem Modell geben. mCP ist nur ein standardisierter Mechanismus, um dies zu tun. Wie wäre es mit anderen gRPC-Mechanismen wie tRPC? Diese sind alle großartig, aber sie bieten nicht von Natur aus Reflection. Es gibt keine Möglichkeit für ein KI-Modell, sich direkt mit einem von ihnen zu verbinden und zu fragen: „Hey, welche Tools und Ressourcen stehen mir zur Verfügung?“ Also müssen Sie wieder diese Mapping-Ebene von den KI-Tools zu RPC-Aufrufen in Ihrem Code erstellen.
Und das ist mein erster wichtiger Punkt: Sie sollten mCP in Verbindung mit einer Backend-API verwenden, nicht als Ersatz für diese API. Sie können sich mCP als eine effizientere Benutzeroberfläche für das KI-Modell vorstellen, nicht als einen neuen allgemeinen API-Standard für alles. Ein weiterer wichtiger Punkt ist, dass Sie nicht versuchen sollten, alles mit einem einzigen mCP-Server zu tun. Tun Sie einfach Ihr einzigartiges Ding, und lassen Sie den mCP-Client Ihren mCP-Server in Verbindung mit anderen mCP-Servern verwenden. mCP ist dafür konzipiert. Ein Client kann und sollte mit mehreren mCP-Servern kommunizieren, um eine bestimmte Aufgabe zu erledigen. Und mein letzter wichtiger Punkt ist, dass Sie Ihren mCP-Server auf einer möglichst hohen Abstraktionsebene halten sollten. Wenn Sie möchten, dass die KI nach Bestellungen sucht, geben Sie ihr nicht den vollständigen Zugriff auf Ihre Datenbank, Ihre Schemas und all diese Low-Level-Details. Geben Sie ihr ein Tool, um nach den Bestellungen zu suchen, und fügen Sie weitere Tools hinzu, wenn Sie sie benötigen. Auch hier geht es darum, KI-Modellen Kontext zu geben und ihnen diesen Kontext so zeit- und kosteneffizient wie möglich zu geben.
Okay, das ist meine kurze Übersicht über das Model Context Protocol. In den folgenden Videos werden wir tiefer in die Details eintauchen. Bei Fragen oder Kommentaren geben Sie diese bitte in den Kommentarbereich unten ein. Wenn Ihnen dieses Video gefallen hat, klicken Sie auf den Like-Button. Wenn Ihnen das Video wirklich gefallen hat, klicken Sie auf den Abonnieren-Button und klicken Sie auf die Glocke, um benachrichtigt zu werden, wenn das nächste Blue Collar C herauskommt.