Ir al contenido principal

Construyendo Servidores MCP con ASP.NET Core: Potenciando la Integración de IA



El Protocolo de Contexto de Modelo (MCP) representa una revolución en la forma en que las aplicaciones pueden interactuar con modelos de lenguaje de gran escala (LLM), permitiendo extender sus capacidades mediante herramientas, recursos y prompts personalizados. Microsoft ha lanzado un SDK oficial para C# que facilita la creación de servidores MCP, abriendo nuevas posibilidades para los desarrolladores de .NET que desean integrar funcionalidades personalizadas en sistemas de IA como GitHub Copilot, Claude de Anthropic o similares.

¿Qué es el Protocolo de Contexto de Modelo (MCP)?

El Protocolo de Contexto de Modelo es una especificación desarrollada inicialmente por Anthropic y ahora adoptada por otros actores de la industria como OpenAI. Su objetivo principal es permitir que las aplicaciones de IA se integren de manera efectiva con herramientas externas y fuentes de datos.

La necesidad de MCP surge de una limitación fundamental de los LLMs: están entrenados con datos hasta cierta fecha límite y no tienen conocimiento actualizado sobre eventos posteriores. MCP resuelve este problema permitiendo que el modelo acceda a datos externos o ejecute funciones específicas mediante un protocolo estandarizado.

Conceptos Clave de MCP

El ecosistema MCP se compone de tres elementos fundamentales:

  1. Host: La aplicación de IA que utiliza un LLM (como Visual Studio Code con GitHub Copilot, Claude, o similares).
  2. Client: El componente que implementa el protocolo MCP, conectando el host con el servidor.
  3. Server: Proporciona herramientas, recursos y contexto adicional al host. Puede ofrecer:
    • Herramientas: Funciones que el LLM puede invocar para obtener información o ejecutar acciones.
    • Prompts: Plantillas de texto estáticas o dinámicas que el LLM puede utilizar.
    • Recursos: Contenido estático como páginas web o documentación.

Principios Fundamentales

MCP se diseñó con dos principios centrales:

  • Los usuarios deben consentir explícitamente el acceso a datos y operaciones: Similar a los permisos en aplicaciones móviles, esto garantiza que el usuario comprenda qué información se comparte.
  • Los usuarios mantienen el control sobre los datos compartidos y las acciones realizadas: Siempre debe haber un "humano en el bucle" que pueda decidir qué información fluye hacia el servidor o el LLM.

El SDK de C# para MCP

Microsoft ha desarrollado un SDK oficial para C# que permite implementar servidores MCP. Actualmente está en versión preview (0.11) y evoluciona rápidamente para adaptarse a las actualizaciones de la especificación MCP.

Este SDK ofrece una API fluida similar a otras bibliotecas de ASP.NET Core:

var builder = McpServer.CreateBuilder();
builder.AddTransport(...);
builder.AddTool(...);
builder.AddPrompt(...);
builder.AddResource(...);
var server = builder.Build();

Transportes Disponibles

El SDK soporta diferentes métodos de comunicación entre el cliente y el servidor:

  1. Standard IO: Para comunicación local entre procesos en la misma máquina. Es similar al modelo utilizado por los servidores de lenguaje en VS Code.
  2. SSE (Server-Sent Events) con HTTP: Permite comunicación remota mediante eventos enviados del servidor al cliente y solicitudes HTTP del cliente al servidor.
  3. Streaming HTTP: Un transporte más reciente diseñado específicamente para entornos en la nube donde mantener el estado es difícil.

Casos de Uso Prácticos

Durante la presentación mas reciente de MS sobre el tema, se mostraron varios ejemplos prácticos de servidores MCP:

1. Servidor "Todo en Uno"

Un servidor de demostración que implementa herramientas, prompts y recursos para ilustrar las capacidades básicas del protocolo.

2. Visualización con SignalR

Un impresionante ejemplo donde un LLM usa una herramienta proporcionada por un servidor MCP para dibujar en un lienzo mediante SignalR, demostrando cómo los modelos pueden interactuar con interfaces visuales.

3. Análisis de Volcados de Memoria con NetDump

Un caso de uso real donde se creó un servidor MCP que envuelve NetDump, permitiendo a Claude (a través de GitHub Copilot) analizar volcados de memoria y diagnosticar problemas como deadlocks, fugas de memoria y otros escenarios complejos de depuración.

Ventajas del Enfoque MCP

La implementación de servidores MCP ofrece varias ventajas significativas:

  1. Estandarización: El protocolo MCP proporciona una forma estandarizada para que diferentes sistemas de IA interactúen con herramientas externas.
  2. Extensibilidad: Permite a los desarrolladores extender las capacidades de sistemas de IA existentes sin necesidad de modificar el sistema base.
  3. Control del Usuario: El protocolo está diseñado con privacidad y seguridad en mente, garantizando que el usuario mantenga el control sobre sus datos.
  4. Reutilización: Un servidor MCP desarrollado para un propósito específico puede utilizarse con cualquier cliente compatible con MCP.

Diferencias con Otras Aproximaciones

MCP se diferencia de otros enfoques como la integración de especificaciones OpenAPI o el uso de funciones en Semantic Kernel:

  • Mayor estandarización: Ofrece un protocolo unificado adoptado por múltiples proveedores de IA.
  • Capacidades adicionales: Incluye características como mensajes de servidor a cliente y muestreo que van más allá de las API REST tradicionales.
  • Independencia de plataforma: No está vinculado a un framework específico como Semantic Kernel.

Implementando un Servidor MCP

Crear un servidor MCP básico con ASP.NET Core es sorprendentemente sencillo:

var builder = McpServer.CreateBuilder();
builder.AddTransport(new StandardIoServerTransport());

// Agregar una herramienta
builder.AddTool("echo", (string message) => message);

// Agregar un prompt
builder.AddPrompt("simple", "Este es un prompt simple");

// Agregar un recurso
builder.AddResource("info", new Uri("https://ejemplo.com/info"));

var server = builder.Build();
await server.RunAsync();

Próximos Pasos

El Protocolo de Contexto de Modelo representa un avance significativo en la forma en que las aplicaciones interactúan con los modelos de IA, y el SDK de C# facilita a los desarrolladores de .NET la creación de servidores MCP para extender sistemas de IA existentes.

Si bien la tecnología está evolucionando rápidamente, ya es lo suficientemente estable para casos de uso prácticos, como se demostró con el ejemplo de NetDump. La comunidad .NET tiene ahora una oportunidad emocionante para desarrollar servidores MCP que mejoren la experiencia de desarrollo y ofrezcan nuevas capacidades a herramientas como GitHub Copilot.

Para los desarrolladores interesados en experimentar con MCP, se recomienda:

  1. Visitar el sitio oficial de Model Context Protocol (modelcontextprotocol.github.io)
  2. Explorar el repositorio del SDK de C# (github.com/modelcontextprotocol/c-sharp-sdk)
  3. Probar los ejemplos incluidos, como el servidor "todo en uno" y el servidor de clima
  4. Experimentar con GitHub Copilot en VS Code Insiders, que ya soporta la integración con servidores MCP

Comentarios

Entradas populares de este blog

Aprende con Platzi | Metodología Ágil y SCRUM para tu vida diaria | Platzi

Usar Metodolgias Agiles para tu dia a dia. Platzi es ese amigo que siempre está aprendiendo cosas nuevas que nunca le sirven a él para gran cosa, pero que cuando viene y te cuenta sobre algo nuevo que aprendió tu puedes hacer clic con algunos conceptos bastante interesantes que a ti si te pueden servir para algo. Yo no critico Platzi y su necesidad de producir contenido a los fines de vender entretenimiento disfrazado de conocimiento, vendiendo una falsa ilusión de aprendizaje, ya que es la unica forma que ellos tienen para ser el mostruo tecnologico que son hoy dia, ademas, si sabes escarbar, te puedes topar con grandes joyitas como este video. Ahora bien, debes ser lo suficientemente inteligente para abandonar un "Curso" lo suficientemente rapido, si el mismo no te está aportando nada. Incluso, perder el tiempo criticando a Platzi y su metodologia, es una gran perdida de tiempo, para mi, Platzi es una genial plataforma, donde puedes, de una manera profesional, conocer de di...

Usando scrcpy para mostrar nuestro dispositivo en el computador

MANTENER UNA PÁGINA WEB SEGURA, CLAVE PARA LOGRAR VISIBILIDAD Y AUMENTAR LA CONFIANZA DE LOS VISITANTES

El comercio global y los modelos de negocio se encuentran en pleno proceso de adaptación al mundo digital, que es ya toda una realidad. En este sentido, el 62.6% de los españoles realizó compras a través de Internet en 2020, frente al 58% que lo hicieron en el año anterior, según la Encuesta sobre Equipamiento y Uso de Tecnologías de Información y Comunicación en los Hogares, elaborada por el Instituto Nacional de Estadística. Estamos, por tanto, ante una tendencia al alza en la que las tiendas online están cobrando un peso cada vez más importante para los consumidores.