Puente HTTP a MCP

Resumen del proyecto: creación de un puente entre el .NET MCP SDK y un stack HTTP personalizado para permitir que mensajes JSON RPC lleguen desde el body HTTP al servidor MCP y que sus respuestas vuelvan por la misma conexión.
Arquitectura y piezas clave: el servidor MCP se instancia con McpServerFactory.Create que recibe como parámetros ITransport para leer y escribir JsonRpcMessage, McpServerOptions con la configuración de herramientas y prompts, ILoggerFactory opcional y IServiceProvider opcional. El método devuelve una instancia de McpServer que expone RunAsync, una tarea de larga duración que consume JsonRpcMessage, procesa y envía las respuestas al transporte.
Desafío: cómo llevar los mensajes JSON del body HTTP al servidor MCP sin reimplementar todo el servidor. Solución: usar canales .NET como túneles entre hilos. Se crean dos canales FIFO: HttpToMcp para enviar peticiones desde el hilo HTTP al hilo MCP, y McpToHttp para enviar las respuestas de vuelta al hilo HTTP.
Implementación del transporte: la interfaz ITransport del MCP encaja con este diseño porque acepta un ChannelReader JsonRpcMessage para que el servidor MCP lea las peticiones y expone SendMessageAsync para enviar respuestas. La estrategia fue proporcionar al ITransport la Reader del canal HttpToMcp y en SendMessageAsync usar el Writer del canal McpToHttp. El hilo HTTP se encarga de leer los mensajes del body, deserializarlos a JsonRpcMessage y encolarlos en HttpToMcp; cuando llegan las respuestas, el hilo HTTP lee del lector de McpToHttp y las escribe al NetworkStream hacia el cliente.
Aspectos concurrentes: se ejecutan dos tareas en el ThreadPool, una para el servidor HTTP que procesa la conexión y otra para el McpServer que procesa los JsonRpcMessage. Gracias a los canales se evita bloqueo intenso y se mantiene orden FIFO en la entrega de mensajes.
Conceptos aprendidos: funcionamiento del .NET MCP SDK, qué es HTTP streamable y cómo implementar un transporte MCP sobre HTTP streamable, diseño de un HTTP-Stack personalizado, uso de .NET Channels para comunicación entre hilos y mejores prácticas para multitarea y sincronización.
Estado y siguientes pasos: la implementación actual es stateless y funciona como prueba de concepto. Pasos futuros incluyen manejo de estado por sesión, control de flujo y límites, autenticación y trazabilidad, integración con soluciones cloud y despliegue seguro.
Sobre Q2BSTUDIO: somos una empresa de desarrollo de software y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad y servicios cloud. Diseñamos soluciones escalables y seguras como software a medida y aplicaciones a medida, desarrollamos agentes IA y proyectos de IA para empresas, y ofrecemos servicios de inteligencia de negocio y visualización con power bi. Si necesita un proyecto a medida puede consultarnos en servicios de software y aplicaciones a medida y para soluciones avanzadas de inteligencia artificial visite nuestra página de inteligencia artificial. También ofrecemos seguridad y pruebas de intrusión para proteger sus aplicaciones y servicios cloud aws y azure.
Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.
Comentarios