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
Wissensüberprüfung 0 Fragen
No quiz for this lesson yet.