Crea un servidor MCP en .NET que exponga tus servicios existentes
Cuándo usarlo: Estás en .NET y quieres exponer lógica de negocio a agentes sin reescribir.
Requisitos previos
- .NET 8+ SDK —
dotnet --version
Flujo
-
Crea el proyectoEjecuta
dotnet new console -n MyMcpServer. AgregaModelContextProtocolNuGet. Usa la plantilla de hosting mínimal para MCP.✓ Copiado→ csproj + Program.cs con servicio MCP hospedado -
Añade una herramientaCrea una clase estática con
[McpServerToolType]. Añade un métodoGetOrder(string id)decorado con[McpServerTool(Description="...")]que llame a tu OrderService existente mediante DI.✓ Copiado→ La herramienta se compila, la descripción viene del atributo -
Prueba con el inspectorEjecuta el servidor como stdio. Lanza el Inspector MCP mediante
npx @modelcontextprotocol/inspector dotnet run. Llama a GetOrder.✓ Copiado→ La invocación de herramienta devuelve JSON de orden
Resultado: Un servidor MCP compilado y tipado que reutiliza tus servicios .NET existentes y contenedor DI.
Errores comunes
- Los métodos de herramienta que son métodos de instancia en una clase necesitan DI para funcionar — Registra la clase propietaria en ServiceCollection; el SDK se resuelve a través de DI
- Los métodos async sin tokens de cancelación apropiados se cuelgan al apagar — Acepta
CancellationToken ctcomo último parámetro en cada herramienta — el SDK lo inyecta