MCP-Server-Vorlage in .NET 11
- Matt
Bisher fing ein MCP-Server in .NET so an: erst dotnet new install Microsoft.McpServer.ProjectTemplates, dann ein passendes SDK, dann dotnet new mcpserver. Seit .NET 11 fällt der erste Schritt weg, die Vorlage liegt im SDK. Ein dotnet new mcpserver -o MeinServer erzeugt eine Program.cs mit der Transportwahl (stdio oder http), eine Beispielklasse mit einer [McpServerTool]-Methode und eine server.json fürs Veröffentlichen auf NuGet. Native AOT und self-contained lassen sich beim Anlegen gleich mitwählen.
Der Haken sitzt beim Ausprobieren: Das mitgelieferte get_random_number ruft der Agent oft gar nicht auf, weil das Modell Zufallszahlen selbst liefert. Man muss das Tool im Prompt namentlich nennen (#get_random_number), sonst hält man den Server für kaputt, obwohl er läuft. Und das dnx, das die veröffentlichten Pakete startet, gibt es erst ab dem .NET-10-SDK.
Wie man die Tools selbst schreibt, statt sich auf das Beispiel zu verlassen, hatte ich vor gut einem Jahr ausführlicher notiert.