El equipo del protocolo MCP lanzó una nueva versión el 28 de julio de 2026 que elimina la sesión a nivel de protocolo y obliga a que cada solicitud sea sin estado (stateless). Si ejecutas clientes, servidores o agentes de MCP, deberás reescribir el código que asume un ID de sesión persistente, o de lo contrario te enfrentarás a errores de enrutamiento, fallos de caché (cache misses) y procesos en segundo plano descontrolados.

Por qué este cambio es importante

MCP solía requerir un saludo (handshake) que generaba un identificador de sesión. Los servicios downstream dependían de ese ID para asumir que una serie de solicitudes llegarían al mismo proceso, para permitir que los equilibradores de carga utilizaran el enrutamiento persistente (sticky routing) y para almacenar datos por sesión en memoria. La versión de julio sustituye ese modelo por un flujo puro de solicitud-respuesta. Ahora se puede añadir o eliminar un servidor sin preocuparse por la pérdida de sesiones. El protocolo ya no preserva el contexto; la aplicación debe hacerlo.

Los equipos que mantengan el código antiguo centrado en sesiones verán cómo las solicitudes se desvían a la instancia incorrecta, las cachés fallan y los trabajos en segundo plano se acumulan. Los equipos que adopten el patrón sin estado (stateless) podrán ejecutar MCP detrás de equilibradores de carga no persistentes y obtendrán una observabilidad más precisa en toda la cadena de solicitudes.

Qué es lo que realmente cambia

  • Ciclo de vida del protocolo – El handshake y el ID de sesión desaparecen. Cada solicitud debe incluir toda la información que el servidor necesita; no hay garantía de que una solicitud posterior llegue al mismo proceso.
  • Enrutamiento HTTP – Los gateways ahora leen dos nuevos encabezados, Mcp-Method y Mcp-Name, para decidir a dónde reenviar una solicitud. El enrutamiento por cookies de sesión ya no funciona.
  • Caché – La especificación añade los campos ttlMs (tiempo de vida en milisegundos) y cacheScope para las lecturas. Usted decide si los datos obsoletos son aceptables y configura la caché en consecuencia.
  • Observabilidad – Un bloque _meta ahora espera un payload de W3C Trace Context, lo que permite que los sistemas de trazabilidad unan los edge gateways, las herramientas y el trabajo del backend en una única traza de extremo a extremo.
  • Composición – Las extensiones se han formalizado; se pueden añadir nuevas capacidades sin tocar la especificación principal, fomentando una arquitectura de estilo plug-in.
  • Trabajos de larga duración – El simple modelo de solicitud/respuesta ya no es suficiente para tareas que duran minutos u horas. El protocolo ahora define un objeto Task para el trabajo asíncrono, con controles de ciclo de vida completos.

Riesgos ocultos en el código heredado (legacy)

Una auditoría rápida suele revelar patrones que asumen la existencia de estado:

  • Mapas en memoria indexados por IDs de sesión.
  • Equilibradores de carga configurados para sesiones persistentes (sticky sessions).
  • Rutinas de inicio que precargan datos por sesión en la memoria local.
  • Lógica de limpieza que elimina datos de negocio cuando finaliza una sesión.

Si alguno de estos sobrevive a la migración, el sistema perderá datos o tendrá fugas de recursos bajo carga.

Una lista de verificación de migración concreta

1. Inventariar las suposiciones actuales

Mapee cada lugar donde su código toque un ID de sesión, una regla de enrutamiento persistente o una caché local del proceso. Documente de qué componentes depende cada uno.

2. Hacer la identidad explícita

Añada IDs de inquilino (tenant IDs), IDs de ejecución (run IDs) e IDs de usuario a cada carga útil (payload) o encabezado de solicitud. Trate estos identificadores como la fuente de verdad para la autorización y la partición de datos.

3. Actualizar la configuración de enrutamiento

Reemplace el enrutamiento basado en sesiones con reglas que lean Mcp-Method y Mcp-Name. Pruebe la nueva lógica del gateway con un despliegue mínimo de dos instancias detrás de un equilibrador de carga no persistente.

4. Refactorizar la lógica de caché

Cambie a los nuevos campos ttlMs y cacheScope. Realice pruebas de rendimiento para ver cómo los diferentes valores de TTL afectan las tasas de acierto (hit rates) y los requisitos de frescura de los datos.

Habilitar la trazabilidad de extremo a extremo: Complete el bloque _meta con un encabezado W3C Trace Context. Verifique que las trazas fluyan ahora desde el edge gateway a través de sus servicios de backend sin interrupciones.

Adoptar el modelo Task para el trabajo asíncrono: Defina quién puede crear una tarea, establezca tiempos de ejecución máximos y aplique límites de cola. Añada políticas explícitas de cancelación y reintento, y restrinja lo que un agente puede hacer mientras una tarea está pendiente.

Revise las notas de lanzamiento del SDK y de las librerías de clientes antes del 28 de julio.

Ejecute suites de regresión dirigidas a rutas de fallo: Más allá de las pruebas de "camino feliz" (happy-path), inyecte encabezados faltantes, tareas caducadas y directivas de caché malformadas. Confirme que el sistema se degrade de forma controlada.

Qué observar a continuación

Los equipos que migren de forma segura probarán los límites, no solo el camino feliz. Cualquier despliegue en producción que todavía espere un ID de sesión después del 28 de julio podría fallar al intentar interoperar con los nuevos servidores MCP.