Especificación MCP 2026-07-28: qué cambiar en tu servidor
La especificación MCP 2026-07-28 elimina las sesiones y el handshake initialize, y añade server/discover. Qué cambió para quien mantiene un servidor.
El Model Context Protocol publicó su revisión 2026-07-28 como versión estable el 28 de julio de 2026. El cambio grande: se acabaron las sesiones y el handshake initialize. Ahora cada petición se sostiene por sí sola. Si mantienes un servidor o un cliente MCP, reserva tiempo para probarlo contra esta versión.
Este resumen sigue el changelog oficial del repositorio de la especificación, que lista los cambios desde la revisión 2025-11-25. Lee el texto completo antes de tocar código.
¿Qué cambió en el protocolo?
- Se acabaron las sesiones. Streamable HTTP ya no tiene sesiones a nivel de protocolo ni la cabecera
Mcp-Session-Id. Un servidor que necesita estado entre llamadas emite su propio identificador, y el cliente lo envía como un argumento normal de herramienta. - Sin handshake. Se elimina el intercambio
initialize. Cada petición lleva la versión del protocolo y las capacidades del cliente en_meta, y si la versión no coincide se devuelveUnsupportedProtocolVersionError. server/discover. Una llamada nueva que los servidores deben implementar. Anuncia las versiones admitidas, las capacidades y la identidad.subscriptions/listen. Un único flujo de respuesta de larga duración transporta las notificaciones de cambio. Sustituye al antiguo endpoint GET y a las llamadas de suscribir y cancelar suscripción.- Llamadas eliminadas.
ping,logging/setLevelynotifications/roots/list_changeddesaparecen. El nivel de log ahora viaja en cada petición. - Se acabó el SSE reanudable. Si un flujo se corta, el cliente vuelve a enviar la petición con un ID nuevo.
¿Qué está obsoleto?
Roots, Sampling y Logging siguen funcionando durante una ventana de obsolescencia, pero el changelog dice que las implementaciones nuevas no deberían añadirlos. El antiguo transporte HTTP+SSE queda obsoleto a favor de Streamable HTTP. El registro dinámico de clientes de OAuth (Dynamic Client Registration) queda obsoleto como método de registro, a favor de los Client ID Metadata Documents. La nueva política de ciclo de vida de funciones fija una ventana mínima de obsolescencia de doce meses.
¿Qué más deberías revisar?
- Tasks pasó del núcleo a una extensión, con sondeo mediante
tasks/geten lugar de esperar bloqueado a un resultado. - Las peticiones que inicia el servidor, como sampling y elicitation, ahora siguen un patrón de varias idas y vueltas: el servidor devuelve un resultado
input_requiredy el cliente reintenta con sus respuestas. - Cada resultado necesita
resultType, que puede ser"complete"o"input_required". Los clientes deben tratar como completos a los servidores antiguos que no lo incluyan. - Las pistas de caché (
ttlMsycacheScope) son obligatorias en los resultados de list y read. - Los POST de Streamable HTTP deben incluir las cabeceras
Mcp-MethodyMcp-Name. - Los códigos de error cambiaron. "Recurso no encontrado" ahora es
-32602, y varios códigos de MCP se renumeraron dentro del rango-32020a-32099.
¿Qué hacer esta semana?
- Lee el changelog de principio a fin y anota qué partes tocan tu servidor.
- Si guardas algo por sesión, rediséñalo en torno a identificadores que se pasan como argumentos.
- Añade
server/discovery prueba la negociación de versión contra un cliente con la revisión anterior. - Deja de añadir Roots, Sampling o Logging a trabajo nuevo.
- Mantén tu revisión anterior activa hasta que tus clientes hayan migrado.
Si estás decidiendo cómo alojar los modelos que usan tus agentes, revisa nuestra guía para montar un servidor LLM local y el centro de Agentes de IA e Infraestructura. ¿Cuál de tus servidores guarda hoy el estado en una sesión?