HTTP Transmitible: La clave para la interacción IA en tiempo real vía MCP
El Protocolo de Contexto del Modelo (MCP) se erige como un estándar abierto diseñado para vincular sin problemas modelos de inteligencia artificial —que actúan como clientes— con herramientas externas y diversas fuentes de datos, que funcionan como servidores. Si bien las integraciones locales pueden aprovechar un mecanismo sencillo de entrada/salida estándar, las interacciones remotas a través de redes dependen de una sofisticada capa de comunicación basada en HTTP. Aquí es donde entra en juego el HTTP Transmitible (Streamable HTTP), un transporte moderno introducido a principios de 2025 como una evolución de enfoques anteriores, diseñado específicamente para gestionar interacciones de streaming entre clientes de IA y sus herramientas remotas. Esencialmente, el HTTP Transmitible permite a MCP transmitir y recibir datos a través de internet en un flujo continuo y en tiempo real, yendo más allá del paradigma tradicional de solicitud-respuesta única. Esta innovación es fundamental para el funcionamiento de los servidores MCP remotos, permitiendo que los agentes de IA interactúen con los servicios web de manera fluida y altamente interactiva.
En su núcleo, el HTTP Transmitible es un marco de comunicación basado en HTTP que facilita las respuestas en streaming y la comunicación bidireccional a través de una única conexión HTTP. Desde la perspectiva del cliente, esto típicamente implica el envío de solicitudes a través de HTTP POST. El servidor, a su vez, puede responder con un mensaje JSON único convencional o iniciando un flujo de eventos en vivo utilizando Eventos Enviados por el Servidor (SSE) para entregar múltiples mensajes a lo largo del tiempo. Una característica clave del diseño es el uso por parte del servidor de un único punto final HTTP unificado —por ejemplo, https://example.com/mcp
— que admite tanto solicitudes POST para enviar comandos como solicitudes GET para establecer un flujo de escucha persistente. Esta arquitectura de un solo punto final simplifica significativamente la implementación en comparación con esquemas más antiguos y complejos de múltiples puntos finales. Crucialmente, el HTTP Transmitible mantiene la compatibilidad con la infraestructura web existente, como proxies y balanceadores de carga, al construirse sobre protocolos HTTP estándar (POST, GET) y SSE, al mismo tiempo que permite flujos de datos de larga duración. En esencia, proporciona un mecanismo controlado para que MCP transmita datos a través de HTTP, utilizando SSE para entregar mensajes continuos del servidor cuando sea necesario.
Para comprender completamente la mecánica del HTTP Transmitible, es útil trazar los pasos secuenciales de una interacción típica cliente-servidor, desde la configuración inicial hasta la terminación. El proceso comienza con el cliente iniciando una sesión enviando una solicitud HTTP POST al punto final MCP designado del servidor. Esta solicitud fundamental lleva información sobre las capacidades del cliente y la versión del protocolo deseada. Tras un procesamiento exitoso, el servidor responde con un estado HTTP 200 OK, incluyendo críticamente un Mcp-Session-Id
único en sus encabezados. Este identificador es la piedra angular para mantener el estado de la sesión, y el cliente debe incluirlo en todas las solicitudes subsiguientes para preservar el contexto. El cuerpo de la respuesta también confirma la configuración exitosa y detalla las capacidades del servidor, como las herramientas disponibles.
Después del establecimiento de la sesión, el cliente típicamente abre un canal de comunicación secundario para mensajes iniciados por el servidor, conocido como Canal de Anuncios. Esto se logra enviando una solicitud HTTP GET al mismo punto final, incluyendo nuevamente el Mcp-Session-Id
y señalando su intención de recibir flujos de eventos a través del encabezado Accept: text/event-stream
. El servidor responde con HTTP 200 OK y un encabezado Content-Type: text/event-stream
, manteniendo la conexión TCP abierta indefinidamente. Esta conexión persistente permite al servidor enviar solicitudes JSON-RPC o notificaciones al cliente en cualquier momento, independientemente de las propias solicitudes de comandos del cliente.
El verdadero poder del HTTP Transmitible se hace evidente al manejar tareas de larga duración que requieren actualizaciones en tiempo real. Cuando un cliente necesita ejecutar una tarea de este tipo, por ejemplo, ejecutar un script de análisis de datos, envía otra solicitud HTTP POST que contiene el comando relevante, completo con el Mcp-Session-Id
. Reconociendo esto como una operación potencialmente larga, el servidor responde inmediatamente con un estado HTTP 200 OK y un encabezado Content-Type: text/event-stream
. Esta acción mantiene abierta la conexión para esta solicitud POST específica, transformando su cuerpo de respuesta en un flujo SSE dedicado. A medida que la tarea progresa, el servidor envía actualizaciones en tiempo real como eventos SSE en este flujo. Una vez que la tarea se completa, el resultado final se envía como el último evento SSE, y este flujo específico se cierra, vinculando ordenadamente todas las actualizaciones de progreso y el resultado final a la solicitud iniciadora.
Crucialmente, los dos canales operan de forma independiente. Mientras una transacción POST de larga duración está en curso, el servidor aún puede comunicarse con el cliente sobre asuntos no relacionados. Por ejemplo, si se agrega una nueva herramienta al servidor, este puede construir una notificación y enviarla como un evento SSE no en el flujo de respuesta POST activo, sino a través de la conexión GET persistente establecida anteriormente. Esto demuestra el Canal de Anuncios en acción, entregando notificaciones generales con alcance de sesión, desacopladas de cualquier comando específico iniciado por el cliente.
El protocolo también está diseñado para ser robusto contra fallos de red. Si la conexión GET de larga duración del cliente (el Canal de Anuncios) se interrumpe, la biblioteca de red del cliente detecta la desconexión e inmediatamente emite una nueva solicitud HTTP GET. Esta solicitud incluye tanto el Mcp-Session-Id
como un encabezado Last-Event-ID
, indicando el último evento procesado con éxito. El servidor utiliza esta información para reproducir cualquier mensaje enviado después de ese evento que el cliente podría haber perdido, restaurando sin problemas el Canal de Anuncios sin pérdida de datos. Este enfoque en capas para el estado —donde el Mcp-Session-Id
crea una sesión duradera a nivel de aplicación y las conexiones HTTP abiertas proporcionan un estado de flujo efímero a nivel de transporte— permite tal resiliencia, permitiendo que el protocolo reconstruya el estado de transporte efímero utilizando el estado de aplicación duradero cada vez que ocurran interrupciones.
Finalmente, cuando el cliente completa todas sus tareas, termina explícitamente la sesión enviando una solicitud HTTP DELETE al punto final /mcp
, incluyendo el Mcp-Session-Id
. El servidor valida la ID, limpia cualquier estado de sesión asociado, cierra la conexión GET persistente e invalida la ID de sesión, respondiendo con un HTTP 200 OK para concluir formalmente el ciclo de vida de la comunicación.
El HTTP Transmitible es una piedra angular de la capacidad de MCP para conectar agentes de IA con herramientas a través de internet de una manera rica e interactiva. Al extender HTTP para que sea compatible con el streaming y aprovechar SSE para actualizaciones continuas, proporciona la flexibilidad esencial para los sistemas de IA que necesitan transmitir salidas, gestionar tareas de larga duración y mantener la sincronización en tiempo real. A diferencia del modelo tradicional de solicitud-respuesta HTTP, el HTTP Transmitible mantiene la conversación viva: un agente de IA puede iniciar una tarea con una herramienta e inmediatamente comenzar a recibir actualizaciones de progreso o resultados, mientras que la herramienta también puede enviar alertas o pedir aclaraciones sobre la misma línea de comunicación persistente. Este enfoque mejora significativamente la fiabilidad a través de las capacidades de reanudación de sesión y mejora la eficiencia al evitar conexiones innecesarias siempre activas, todo ello mientras sigue siendo totalmente compatible con los estándares web establecidos. En la práctica, el HTTP Transmitible permite escenarios como un asistente de codificación que transmite registros en vivo desde una herramienta de compilación remota o un agente de análisis de datos que consulta una base de datos y recibe resultados de forma incremental. Efectivamente, une la simplicidad de HTTP con el poder del streaming, cumpliendo la promesa de MCP de actuar como un “USB-C para herramientas de IA” al proporcionar una interfaz unificada y robusta para transmitir contexto y datos entre la IA y el mundo.