Alexander Maridueña

March 31, 2025

MCP ahora con soporte para HTTP

En Jelou hemos estado siguiendo de cerca la evolución del Model Context Protocol (MCP), una iniciativa que permite conectar LLMs y servicios externos de forma estructurada, segura y escalable. Desde nuestro primer experimento con MCP, vimos su potencial para convertir herramientas tradicionales en agentes LLM-aware — sin tener que reconstruir todo desde cero.

Pero uno de los mayores retos hasta ahora era su dependencia en el transporte HTTP + Server-Sent Events (SSE). Esta arquitectura obligaba a mantener conexiones largas desde el servidor al cliente, lo cual:
  • Rompe con los principios de escalabilidad horizontal.
  • Dificulta implementaciones puramente HTTP, ya que SSE no es trivial de manejar en muchos entornos.
  • Requiere alta disponibilidad y persistencia de conexión, lo cual limita a muchas infraestructuras modernas como serverless, edge functions, o entornos que escalan a través de contenedores efímeros.

La propuesta: Streamable HTTP Transport

Gracias a una propuesta comunitaria liderada por equipos de Shopify, Pydantic, LangChain, Cloudflare, Vercel, Anthropic y más, ahora MCP da un paso clave hacia adelante: soporte para transporte 100% HTTP, sin depender de SSE como requisito.

Este nuevo enfoque propone lo siguiente:
  • Se elimina la necesidad del endpoint /sse.
  • Todo se maneja por un único endpoint /message (o similar), incluyendo notificaciones, solicitudes y respuestas.
  • Las respuestas del servidor pueden ser promovidas a SSE si se desea transmitir datos en streaming, pero ya no es obligatorio.
  • El cliente puede iniciar un stream SSE con un GET /message vacío.
  • Se introduce el concepto de session_id opcional para quienes quieran mantener estado (ej. sticky sessions, brokers, etc.).
  • Se puede construir un servidor 100% stateless, compatible con cualquier infraestructura HTTP, sin preocuparse por reconexiones o persistencia.

Esto significa que ahora puedes tener un agente MCP que:
  1. Recibe una solicitud POST /message con una CallToolRequest.
  2. Ejecuta la herramienta correspondiente.
  3. Devuelve una única CallToolResponse como cuerpo de la respuesta HTTP.
  4. (Opcional) Si desea enviar notificaciones intermedias, puede abrir un SSE y transmitirlas durante la ejecución.

¿Y por qué no WebSockets?

El equipo evaluó usar WebSocket como transporte alternativo, pero lo descartaron por varias razones clave:
  • No permite adjuntar headers personalizados (como Authorization) de forma consistente en navegador.
  • Impone un costo de conexión y operación mayor, especialmente en escenarios RPC-like.
  • No es compatible con POST → upgrade de forma nativa, lo que introduce complejidad.
  • Añadir múltiples transportes oficiales puede generar combinaciones difíciles de mantener entre clientes y servidores.

¿Qué habilita esto para Jelou?

Esta evolución es especialmente útil para nosotros en Jelou. Nos permite:
  • Integrar herramientas de clientes sin forzarlos a usar SSE ni mantener infra dedicada.
  • Operar agentes sobre entornos serverless, edge functions o clusters altamente volátiles.
  • Aumentar la resiliencia de nuestras integraciones: ahora no dependemos de mantener una conexión viva para funcionar.
  • Simplificar nuestros deployments y debugging al usar HTTP puro.

También podemos pensar en escenarios como:
  • Tool servers que solo ejecutan una función sin guardar estado, ideales para funciones como GetWeather, CreateTicket, o QueryCRM.
  • Agentes con lógica compleja que quieren mantener sesiones activas usando session_id + Redis, si lo requieren.
  • Reporting en tiempo real con ProgressNotification sin sacrificar compatibilidad con firewalls o proxys.

La comunidad está apostando fuerte

La señal más clara del momento que vive MCP es que OpenAI ha anunciado oficialmente su soporte:

“People love MCP and we are excited to add support across our products. Available today in the Agents SDK and support for ChatGPT Desktop app + Responses API coming soon!”— Sam Altman, CEO de OpenAI

Esto marca un punto de inflexión. Si hasta ahora MCP era una tecnología prometedora, con este tipo de apoyo institucional se convierte en un estándar emergente para construir agentes inteligentes interoperables.