AI Personal Learning
und praktische Anleitung
Sitzsack Marscode1

MCP-Protokoll erhält ein großes Update: Vollständig zustandslos, Vereinfachung der HTTP-Kommunikation

Kernpunkte: MCP Durch die Einführung eines "Streaming-HTTP"-Transportschemas erreicht das Protokoll vollständige Zustandslosigkeit und vereinfacht die Kommunikation, wodurch die Grundlage für ein breiteres Spektrum künftiger Anwendungen geschaffen wird.

blank


Eine wichtige vorgeschlagene technische Verbesserung des Message Channel Protocol (MCP) wurde genehmigt, was eine breitere Zukunft für das entstehende Protokoll signalisiert. Im Mittelpunkt dieser Aktualisierung steht eine Revolution in der Art und Weise, wie MCP Daten überträgt, wodurch es vollständig zustandslos wird und die Kommunikation mit dem normalen HTTP-Protokoll vereinfacht wird.

 

Hintergrund: Beschränkungen von HTTP+SSE

Bisher verwendete das MCP-Protokoll HTTP plus SSE (Server Sent Events) zur Datenübertragung. Dieser Ansatz hatte einige Einschränkungen:

  • Trennen und erneutes Verbinden wird nicht unterstützt
  • Die Server müssen lange Verbindungen aufrechterhalten, um Stabilität zu gewährleisten
  • Server-Nachrichten können nur über SSE gesendet werden

Innovative Lösungen: HTTP-Streaming

Um diese Probleme zu lösen, hat die Gemeinschaft das "Streaming HTTP"-Transportschema vorgeschlagen. Dieses Schema enthält die folgenden wesentlichen Anpassungen:

  • Abschaffung der Schnittstelle /sse: Alle Nachrichten zwischen Clients und Servern werden einheitlich über die Schnittstelle /message (oder ähnlich) übertragen.
  • Eskalation von Anfragen an die SSE: Der Server kann eine Client-Anfrage an eine SSE-Verbindung für Echtzeit-Push-Benachrichtigungen oder -Daten weiterleiten.
  • Sitzungs-ID-Verwaltung: Der Client gibt im HTTP-Request-Header eine Sitzungs-ID an, die der Server optional zur Identifizierung der Sitzung verwenden kann.
  • SSE-Stream initiieren: Der Client kann eine leere GET-Anfrage an die /message-Schnittstelle senden, um einen SSE-Stream aufzubauen.

Diese Verbesserungen ermöglichen es MCP-Servern, vollständig zustandslos zu sein, wodurch die Notwendigkeit einer ständigen Verbindung entfällt und die Komplexität des Servers und der Ressourcenverbrauch erheblich reduziert werden. Gleichzeitig wird durch die Verwendung des reinen HTTP-Protokolls die Kompatibilität von MCP verbessert, so dass es sich besser in die bestehende Netzwerkinfrastruktur und Middleware einfügt.

 

Positive Reaktion der Gemeinschaft

Diese vorgeschlagene Verbesserung wurde von der MCP-Gemeinschaft weitgehend begrüßt und erhielt positives Feedback. shopify, Pydantic, Cloudflare, LangChain, Vercel und Anthropisch Das Team und viele andere Organisationen und Einzelpersonen haben dazu beigetragen.

 

Die vielfältigen Vorteile der Staatenlosigkeit

Die Zustandslosigkeit ist der zentrale Punkt dieser Aktualisierung des MCP-Protokolls und bringt MCP zahlreiche Vorteile:

  • Vereinfachte Bereitstellung und Wartung: Die Persistenz und Synchronisierung von Sitzungsdaten entfällt, was die Bereitstellung und Erweiterung von Servern erleichtert.
  • Verbesserung der Systemstabilität: Der Ausfall eines einzelnen Servers wirkt sich nicht auf den Gesamtbetrieb des Systems aus, so dass eine hohe Verfügbarkeit leichter zu erreichen ist.
  • Geringerer Ressourcenverbrauch: Es müssen keine langen Verbindungen und Sitzungszustände aufrechterhalten werden, was den Ressourcenverbrauch und die Kosten des Servers reduziert.

 

Anwendungsszenario Ausblick

Die Implementierung von zustandslosem MCP eröffnet neue Möglichkeiten für viele Anwendungsszenarien:

  • Zustandsloser Tool-Server: Ein vollständig zustandsloser MCP-Server kann so aufgebaut werden, dass er nur die Funktionen des Sprachmodellierungswerkzeugs ohne Zustandsverwaltung bereitstellt und so den Prozess des Werkzeugaufrufs vereinfacht.
  • Zustandslose Server mit Unterstützung für Streaming-Antworten: Auch zustandslose Server können SSE nutzen, um Streaming-Antworten bereitzustellen, z. B. um während der Tool-Ausführung Fortschrittsinformationen in Echtzeit zu übermitteln.

 

Warum HTTP-Streaming über WebSocket?

Bei der Auswahl des Transportschemas wurde auch WebSocket in Betracht gezogen, aber letztendlich entschied sich die Gemeinschaft aufgrund der folgenden Überlegungen für "Streaming HTTP":

  • Overhead in RPC-Szenarien: Bei einfachen RPC-Szenarien (Remote Procedure Call) führt die erzwungene Verwendung von WebSocket zu einer unnötigen Betriebs- und Netzwerkbelastung.
  • Browserkompatibilität: WebSocket ist nicht so flexibel wie SSE in Bezug auf HTTP-Request-Header-Einstellungen und Bibliotheksimplementierungen von Drittanbietern in der Browserumgebung.
  • Komplexität der Protokollaktualisierung: WebSocket unterstützt nur die Aktualisierung von GET-Anfragen, die Aktualisierung von POST-Anfragen ist komplex und erhöht die Latenzzeit.
  • Straffe Protokollspezifikation: Die MCP-Protokollspezifikation neigt dazu, die Vielfalt der offiziellen Transportprotokolle zu begrenzen, um Kompatibilitätsprobleme zu vermeiden.

 

Erforschung der Sicherheit

Die Staatenlosigkeit bietet zwar viele Vorteile, wirft aber auch die Frage nach der Sicherheit auf, insbesondere im Hinblick auf die Verwaltung der Sitzungsnummer und die Autorisierung.

Einige Entwickler haben darauf hingewiesen, dass ein Server, der den Mcp-Session-Id-Request-Header zur Verwaltung von Sitzungen verwendet, die Sitzungs-ID an die Autorisierungsumgebung binden sollte, um zu verhindern, dass sie in verschiedenen Autorisierungsumgebungen missbraucht wird. Das bedeutet, dass die Sitzungs-ID mit einem bestimmten Benutzer oder einer Client-Sitzung verknüpft sein sollte, anstatt global einheitlich zu sein.

Für Entwickler, die einen minimalistischen Server suchen, sind komplexe Authentifizierungsmechanismen möglicherweise nicht geeignet. Im zustandsabhängigen Modus kann die HTTP-Anfrage selbst als Sitzungsgrenze betrachtet werden. Beim zustandslosen Modell stellt sich jedoch immer noch die Frage, wie die Sitzung ohne reine HTTP-Cookies sicher verwaltet werden kann.

Einige Entwickler schlagen vor, reine HTTP-Cookies zur Verwaltung von Client-Sitzungen einzuführen und jeder Client-Sitzung eindeutige IDs zuzuweisen, unter denen dann mehrere MCP-Sitzungs-IDs verwaltet werden, um eine hierarchische Sitzungsverwaltung zu erreichen und ein Gleichgewicht zwischen Sicherheit und Flexibilität herzustellen.

 

Zusammenfassung und Ausblick

Die Weiterentwicklung des MCP-Protokolls zur Zustandslosigkeit ist ein wichtiger Schritt in Richtung Praktikabilität und Benutzerfreundlichkeit. Es wird erwartet, dass die Annahme des "Streaming HTTP"-Schemas die Schwelle für den Einsatz von MCP senken und mehr Entwickler und Anwendungsszenarien anziehen wird. Obwohl es noch Diskussionsbedarf in Bezug auf die Sicherheit gibt, sind wir der Meinung, dass die Zukunft des MCP-Protokolls mit der weiteren Verbesserung durch die Gemeinschaft einen Blick wert ist.

 

Einschlägige Vorschläge

[RFC] Ersetzen von HTTP+SSE durch den neuen "Streamable HTTP"-Transport #206 Vorgeschlagener Link: [RFC] Ersetzen von HTTP+SSE durch den neuen "Streamable HTTP"-Transport #206

Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " MCP-Protokoll erhält ein großes Update: Vollständig zustandslos, Vereinfachung der HTTP-Kommunikation

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)