Programmierung und Softwareentwicklung

Microsoft veröffentlicht Version 2.0 des offiziellen MCP-Pakets für C#

Die neue Version ist mit der MCP-Spezifikation vom 28.07.2026 kompatibel, verwendet standardmäßig ein zustandsloses Modell, vereinheitlicht HTTP-Header und unterstützt Multi-Round-Trip-Anfragen für den Umgang mit interaktiven Tools. Die Version bewahrt eine weitreichende Kompatibilität mit früherem Code sowie früheren Clients und Servern, mit Ausnahme der experimentellen Tasks-Erweiterung.

2026-07-28
5 Min. Lesezeit
217 Aufrufe
certi.news Editorial Team
Microsoft veröffentlicht Version 2.0 des offiziellen MCP-Pakets für C#

Microsoft hat Version 2.0 des offiziellen MCP-Software Development Kits für C# veröffentlicht, zeitgleich mit der Umsetzung der Spezifikation vom 28.07.2026. Die Version ändert die Art und Weise, wie MCP-Server über HTTP betrieben werden, indem sie standardmäßig zustandslos arbeiten, fügt standardisierte HTTP-Header hinzu und unterstützt Multi-Round-Trip-Anfragen, durch die Tools Eingaben vom Benutzer oder vom Sprachmodell anfordern können, ohne auf eine dauerhafte Sitzung angewiesen zu sein.

Die Version richtet sich an Entwickler, die MCP-Server und -Clients auf .NET erstellen, wobei stabile APIs der Version 1.x weiterhin funktionieren. Unterstützt werden die Frameworks net8.0, net9.0 und net10.0 sowie netstandard2.0 zur Verwendung mit .NET Framework.

Standardmäßig zustandslose Server

In früheren Versionen erforderte die Verwendung von Streamable HTTP den Abschluss eines Initialize- und Initialized-Handshakes sowie das Senden eines Mcp-Session-Id-Headers mit jeder nachfolgenden Anfrage. Dadurch wurden Anfragen an die Serverinstanz gebunden, die die ID ausgestellt hatte, was beim Betrieb mehrerer Instanzen statisches Routing oder die Übertragung von Sitzungen erforderte.

Die Spezifikation vom 28.07.2026 schafft den Initialize- und Initialized-Handshake sowie den Mcp-Session-Id-Header ab und übermittelt die Protokollversion und die Fähigkeiten in jeder Anfrage. Dadurch kann jede Serverinstanz jede Anfrage verarbeiten, ohne dass statische Sitzungen oder gemeinsam genutzte Sitzungsspeicher auf Protokollebene erforderlich sind. Damit kommt die Bereitstellung von MCP-Servern in serverlosen Umgebungen, Umgebungen mit mehreren Instanzen oder Edge-Umgebungen dem Betrieb einer gewöhnlichen ASP.NET-Core-Anwendung hinter einem Load Balancer näher.

Die Option HttpServerTransportOptions.Stateless ist in Version 2.0 standardmäßig auf true gesetzt. Bei Bedarf kann der zustandsbehaftete Modus aktiviert werden, wenn nicht angeforderte Nachrichten vom Server an den Client oder ein sitzungsgebundener Transportzustand erforderlich sind. Sitzungen bleiben verfügbar, sind jedoch nicht mehr die Standardeinstellung.

HTTP-Header für Routing und Überwachung

Das zustandslose Modell verwandelt eine MCP-Anfrage in eine eigenständige HTTP-POST-Anfrage, sodass die übliche Infrastruktur sie wie jeden anderen HTTP-Datenverkehr behandeln kann. Die Spezifikation ermöglicht Header wie Mcp-Method und Mcp-Name sowie die Möglichkeit, bestimmte Tool-Parameter in Header des Typs Mcp-Param-* hochzustufen.

Load Balancer, Proxys, Gateways oder Web Application Firewalls können diese Header für Routing und Überwachung verwenden, ohne den JSON-RPC-Anfragerumpf analysieren zu müssen. Der Anfragerumpf bleibt die maßgebliche Quelle. Weicht der Wert des Headers vom Wert im Rumpf ab, lehnt der Server die Anfrage mit dem Fehler HeaderMismatch ab. Das Design unterstützt außerdem die Kodierung von Werten, die in Headern nicht unterstützt werden, etwa Nicht-ASCII-Werten, mithilfe eines Base64-Indikators.

Multi-Round-Trip-Anfragen für interaktive Tools

Die Funktion Multi Round-Trip Requests, kurz MRTR, bietet eine Möglichkeit, mit Tools umzugehen, die ihre Aufgabe nicht innerhalb eines einzigen Aufrufs abschließen können. Statt dass der Server während der Verarbeitung der Anfrage über eine aktive Sitzung mit dem Client kommuniziert, gibt er ein Ergebnis des Typs InputRequiredResult zurück, das Eingabeanforderungen und einen opaken Zustand namens requestState enthält.

Der Client führt die erforderliche Aktion aus, etwa eine Bestätigungsanfrage an den Benutzer, den Aufruf eines Sprachmodells oder die Anzeige von Arbeitsbereichs-Stammverzeichnissen, und sendet anschließend denselben Tool-Aufruf erneut, ergänzt um inputResponses und requestState. Der Vorgang kann über mehrere Runden wiederholt werden. Die Informationen zur Fortsetzung werden in der Nutzlast übertragen, sodass der Vorgang keine Sitzung benötigt.

Der übergeordnete McpClient verarbeitet MRTR automatisch, nachdem die entsprechenden Handler registriert wurden. Die Version kann außerdem eine Kompatibilitätsbrücke zu älteren Clients verwenden, wenn eine zustandsbehaftete Sitzung vorhanden ist. Ein älterer Client, der ohne Sitzung arbeitet, kann keine Interaktion über mehrere Runden ausführen. Daher muss das Tool einen alternativen Pfad anbieten, etwa die direkte Übergabe des erforderlichen Werts als Aufrufparameter.

Kompatibilität und verfügbare Pakete

Stabile, nicht veraltete APIs der Version 1.x lassen sich weiterhin unter 2.0 kompilieren und ausführen, während veraltete Änderungen als Warnungen und nicht als Löschungen erscheinen. Ein 2.0-Client kann beim Verbinden mit einem älteren Server den alten Initialize-Handshake verwenden. Ebenso akzeptiert ein 2.0-Server diesen Handshake von einem älteren Client.

Die einzige Ausnahme bei der Protokollkompatibilität ist die Tasks-Erweiterung. Ihr in 2.0 überarbeitetes Design ersetzt die experimentelle Tasks-Funktion aus der Spezifikation 2025-11-25 und ist auf Schnittstellen- oder Protokollebene nicht mit ihr kompatibel. Tasks ist nun im separaten Paket ModelContextProtocol.Extensions.Tasks verfügbar, während die experimentellen MCP Apps im Paket ModelContextProtocol.Extensions.Apps enthalten sind.

Zu den Kernpaketen gehören ModelContextProtocol.Core für den Client und Low-Level-Komponenten, ModelContextProtocol für die meisten Server sowie ModelContextProtocol.AspNetCore für Streamable-HTTP-Server. Der Beitrag weist darauf hin, dass der nächste Schwerpunkt der 2.x-Reihe auf einer umfassenden Authentifizierung und Autorisierung liegen wird, basierend auf einer engeren Abstimmung mit OAuth und OpenID Connect.

Nachrichtenquelle
c
Autor

certi.news Editorial Team

Das Wichtigste

Microsoft hat Version 2.0 des offiziellen MCP-Pakets für C# veröffentlicht. Standardmäßig wird zustandsloser Transport verwendet, außerdem werden mehrstufige Anfragen für interaktive Tools unterstützt. Die Version bewahrt eine breite Kompatibilität mit den 1.x-APIs, ist jedoch nicht mit der alten experimentellen Tasks-Erweiterung kompatibel.

  • Version 2.0 macht MCP-Server über HTTP standardmäßig zustandslos. Dadurch sind keine dauerhaften Sitzungen oder protokollweiten gemeinsamen Sitzungsspeicher erforderlich.
  • Einheitliche HTTP-Header wie Mcp-Method und Mcp-Name wurden hinzugefügt. Eine Anfrage wird abgelehnt, wenn der Headerwert nicht mit dem Wert im JSON-RPC-Body übereinstimmt.
  • Die MRTR-Funktion ermöglicht die Ausführung interaktiver Tools über mehrere Runden mit InputRequiredResult und requestState, ohne eine dauerhafte Sitzung.
  • Das Paket unterstützt net8.0, net9.0, net10.0 und netstandard2.0. Stabile 1.x-APIs bleiben bezüglich Kompilierung und Ausführung kompatibel; veraltete Änderungen werden als Warnungen angezeigt.
  • Die Tasks-Erweiterung in Version 2.0 ist nicht mit Tasks aus der experimentellen Spezifikation 2025-11-25 kompatibel und ist jetzt als separates Paket verfügbar.

FAQ

Was ist die neue Standardeinstellung für MCP-Server über HTTP?

HttpServerTransportOptions.Stateless ist nun standardmäßig auf true gesetzt. Der zustandsbehaftete Modus bleibt bei Bedarf verfügbar.

Ist Version 2.0 mit älteren Clients und Servern kompatibel?

Ja. Ein 2.0-Client kann den alten Initialisierungs-Handshake mit einem älteren Server verwenden, und ein 2.0-Server akzeptiert den Handshake eines älteren Clients. Ein älterer zustandsloser Client kann jedoch keine mehrstufige Interaktion ausführen.

Welche Kernpakete sind verfügbar?

Dazu gehören ModelContextProtocol.Core für Komponenten auf niedriger Ebene, ModelContextProtocol für die meisten Server und ModelContextProtocol.AspNetCore für Streamable-HTTP-Server.

Aus derselben Kategorie

Das könnte Sie interessieren

Alle Nachrichten anzeigen