Anthropic anuncia hoy una importante actualización del Protocolo de Contexto de Modelo (MCP), presentando una nueva forma de transmisión "HTTP en streaming" que reemplaza la solución HTTP+SSE existente. Esta innovación resuelve completamente las limitaciones clave de la transmisión remota de MCP, al tiempo que conserva sus ventajas originales.
Esta actualización es esencialmente una reconstrucción del mecanismo de transmisión de datos de MCP, haciendo que el protocolo sea más flexible, fácil de usar y compatible. Por ejemplo, la forma de transmisión MCP anterior era como una llamada telefónica con un servicio de atención al cliente donde era necesario permanecer conectado continuamente (SSE requiere una conexión larga), mientras que la nueva solución es similar a poder enviar mensajes y esperar una respuesta en cualquier momento (petición HTTP normal, pero con transmisión en streaming opcional).
Esta actualización incluye cinco cambios principales: primero, se eliminó el punto final /sse dedicado; el servidor ya no mantiene un punto final SSE (Server-Sent Events) por separado; segundo, todos los mensajes del cliente al servidor se transmiten a través del punto final unificado /message, sin depender de /sse; tercero, el servidor puede actualizar dinámicamente una solicitud HTTP a un flujo SSE según sea necesario, para enviar notificaciones o solicitudes; cuarto, el cliente proporciona Mcp-Session-Id a través del encabezado, y el servidor puede decidir por sí mismo si almacena información de sesión; quinto, se admite la ejecución de servidores completamente sin estado, sin necesidad de mantener conexiones prolongadas.
La razón principal de este cambio radica en las múltiples deficiencias de la transmisión HTTP+SSE actual: no admite la función de recuperación después de la desconexión, lo que obliga al cliente a reiniciar toda la sesión; el servidor debe mantener una alta disponibilidad para admitir conexiones SSE continuas; y SSE solo admite la comunicación unidireccional (del servidor al cliente), lo que impide una comunicación bidireccional flexible. La nueva forma de transmisión "HTTP en streaming" resuelve con éxito estos problemas, al tiempo que mejora significativamente la escalabilidad y la flexibilidad del sistema.
Para los desarrolladores, esta actualización ofrece muchas ventajas: la implementación de servidores MCP se vuelve más sencilla, ya que solo se necesita un servidor HTTP normal para admitir MCP, sin necesidad de implementar un servidor SSE específico; la implementación en plataformas en la nube que no admiten conexiones largas, como Vercel, Cloudflare o AWS Lambda, se vuelve más fácil; la compatibilidad mejora considerablemente, ya que la nueva solución, como HTTP estándar, se puede integrar perfectamente con CDN, puertas de enlace API y equilibradores de carga; la escalabilidad aumenta significativamente, admite el modo de funcionamiento sin estado y puede actualizarse dinámicamente a SSE cuando sea necesario.
En cuanto a la infraestructura y la arquitectura del servidor, la nueva solución también aporta cambios revolucionarios: se permite el uso de servidores sin estado, los servidores ya no necesitan almacenar continuamente la información de sesión del cliente; es más adecuada para la arquitectura de microservicios, se integra fácilmente con API REST, GraphQL, equilibradores de carga y CDN; la utilización de los recursos del servidor es mayor, ya que los recursos se liberan después de procesar la solicitud, lo que es adecuado para escenarios de alta concurrencia.
Curiosamente, a pesar de los problemas de SSE, Anthropic no eligió WebSocket como alternativa. La razón es que: WebSocket necesita mantener una conexión larga, mientras que MCP utiliza principalmente un modelo similar a RPC, donde cada solicitud se ejecuta de forma independiente; WebSocket no puede transmitir información de encabezado HTTP, lo que complica el proceso de autenticación; WebSocket solo admite la actualización GET, no POST, lo que es incompatible con las solicitudes POST que utiliza principalmente MCP. Por lo tanto, se decidió continuar utilizando HTTP, pero otorgando al servidor la capacidad de actualizarse a SSE según sea necesario, en lugar de usar SSE o WebSocket obligatoriamente.
En general, esta actualización hace que MCP sea más ligero y flexible; el servidor puede decidir por sí mismo si admite la transmisión en streaming; el proceso de implementación se simplifica significativamente, es adecuado para la arquitectura Serverless; la compatibilidad mejora considerablemente, se puede integrar perfectamente con diversas infraestructuras de red; la utilización de los recursos del servidor es mayor, admite un mayor número de solicitudes simultáneas.
Este cambio innovador hace que los servidores MCP sean más simples, eficientes y flexibles, capaces de admitir implementaciones distribuidas a mayor escala, eliminando completamente las limitaciones de SSE y abriendo un nuevo capítulo para la comunicación entre modelos de IA y aplicaciones.
Dirección del proyecto: https://github.com/modelcontextprotocol/specification/pull/206