MCP C# SDK 2.0 macht Streamable HTTP standardmäßig zustandslos
Microsoft hat die stabile Version 2.0 des offiziellen C#-SDK für das Model Context Protocol veröffentlicht. Sie setzt die Spezifikationsrevision vom 28. Juli 2026 um — laut SDK-Team die größte Änderung seit dem Start des Protokolls. Streamable-HTTP-Server sind jetzt standardmäßig zustandslos. Der Initialisierungs-Handshake und der Header Mcp-Session-Id entfallen; Protokollversion und Fähigkeiten reisen mit jeder Anfrage, sodass jede Serverinstanz jede Anfrage bedienen kann — ohne klebende Routen oder gemeinsamen Sitzungsspeicher. HttpServerTransportOptions.Stateless steht auf true; wer wirklich Sitzungen braucht, schaltet zurück.
Mit der Zustandslosigkeit verschwindet der Kanal, über den ein Server den Client mitten im Aufruf um Eingaben bat. Multi-Round-Trip-Requests ersetzen ihn: Ein Werkzeug wirft InputRequiredException mit Anfragen aus InputRequest.ForElicitation, ForSampling oder ForRootsList samt undurchsichtigem requestState, und der Client wiederholt den Aufruf mit den Antworten. Roots-, Sampling- und Logging-APIs gelten als veraltet. Bis Oktober folgten die Versionen 2.1 bis 2.3; 2.3 machte McpClient.ServerInfo nullbar und warnt davor, der selbstgemeldeten Serveridentität für Sicherheitsentscheidungen zu trauen.

Was das bedeutet
Standardmäßig zustandslos ist der richtige Kompromiss für jeden, der MCP hinter einem Lastverteiler betreibt — also die meisten Produktivumgebungen: keine Sitzungsbindung, kein gemeinsamer Speicher, horizontale Skalierung, die einfach funktioniert. Die Kosten tragen die Werkzeugautoren. Ein Werkzeug, das innehielt, um den Nutzer etwas zu fragen, muss das nun als geworfene Ausnahme und fortgesetzten Aufruf modellieren; der alte serverinitiierte Weg überlebt nur als Brücke auf zustandsbehafteten Sitzungen. Bemerkenswert: Ein Leser fragte, ob requestState gegen Manipulation oder Wiedereinspielung geschützt ist — eine Antwort blieb aus.