Model Context Protocol Advanced Topics
← Alle Lektionen
Lektion 08Model Context Protocol Advanced Topics

StreamableHTTP in depth

Zusammenfassung (Audio)

Keine Audio-Zusammenfassung für diese Lektion.

Studiennotizen

📝 Lernnotizen: Streamable HTTP Transport (MCP)

**I. Problem und Lösung**

  • Herausforderung: MCP-Funktionalitäten (z. B. Sampling, Benachrichtigungen, Logging) erfordern, dass der Server eine Anfrage an den Client sendet.
  • Problem mit HTTP: Standard-HTTP ist nicht gut geeignet, um Server-zu-Client-Anfragen zu ermöglichen.
  • Lösung: Der "Streamable HTTP" Transport bietet einen Workaround, um diese Server-zu-Client-Kommunikation zu ermöglichen.

**II. Initialisierungsfluss (HTTP Transport)**

  • Initialisierung: Der Client sendet eine Initialisierungsanfrage an den Server.
  • Session ID: Die Serverantwort enthält einen MCP Session ID (eine zufällige Zeichenfolge), der als eindeutiger Bezeichner für die Verbindung dient.
  • Nachfolgende Anfragen: Der Client muss diesen Session ID in alle nachfolgenden Anfragen zum Server einfügen.

**III. Der Workaround: Server → Client Kommunikation**

  • Aktivierung: Nach der Initialisierung kann der Client optional eine GET-Anfrage an den MCP-Server senden (mit Session ID).
  • SSE-Antwort: Der Server antwortet mit einer SSE (Server-Sent Events) Antwort.
  • Funktion: Diese SSE-Verbindung ist langlebig (long-lived) und ermöglicht es dem Server, Nachrichten (z. B. Logging, Sampling) jederzeit an den Client zu streamen.

**IV. Tool Call Flow (Client → Server → Client)**

  • Tool-Anfrage: Der Client sendet eine Tool-Anfrage an den Server (mit Session ID).
  • Zweite SSE-Verbindung: Der Server öffnet eine zweite SSE-Antwort, die spezifisch für diesen Tool-Call ist.
  • Abschluss: Diese zweite SSE-Antwort wird automatisch geschlossen, sobald die Tool-Call-Ergebnis-Nachricht gesendet wurde.
  • Nachrichten-Routing:
  • Progress Notifications: Werden über die erste, langlebige SSE-Verbindung gesendet.
  • Logging/Result: Werden über die zweite, kurzlebige SSE-Verbindung gesendet.

**V. Wichtige Einschränkungen**

  • Flag-Einstellung: Wenn bestimmte Flags auf "true" gesetzt werden, wird dieser Workaround unterbrochen.
  • Komplexität: Der Streamable HTTP Transport ist aufgrund dieser Limitationen und Workarounds komplex.

Takeaways

  • Standard-HTTP ist ungeeignet für Server-zu-Client-Anfragen (S2C); der Streamable HTTP Transport dient als Workaround.
  • Die Verbindung wird durch eine Initialisierungsanfrage gestartet, die eine eindeutige MCP Session ID erzeugt, die in allen nachfolgenden Anfragen verwendet werden muss.
  • S2C-Kommunikation wird über Server-Sent Events (SSE) realisiert, die eine langlebige Verbindung ermöglichen.
  • Tool Calls nutzen eine zweite, kurzlebige SSE-Antwort für das Ergebnis, während Fortschritt über die erste, langlebige SSE-Verbindung gesendet wird.
Lernkarten 8 Karten
Frage
zum Aufdecken klicken · ←/→
Antwort
zum Zurückdrehen klicken
Nach Anki exportieren (.tsv) ↓
Wissensüberprüfung 0 Fragen

No quiz for this lesson yet.