Model Context Protocol (MCP) se convirtió, en su versión 2026-07-28, en un protocolo completamente sin estado, tras reescribir su núcleo, su modelo de interacción y los paquetes SDK asociados. Cloudflare afirma que este cambio permite ejecutar servidores MCP dentro de un Worker común, sin necesidad de una infraestructura dedicada para mantener las sesiones del protocolo, reduciendo la complejidad operativa y el coste derivado de los componentes adicionales.
La nueva especificación se lanzó la semana pasada junto con versiones actualizadas de los paquetes SDK para los lenguajes TypeScript, Python, Go y C#. Según Cloudflare, los servidores ahora pueden recibir una solicitud, ejecutar una herramienta, una instrucción o un recurso y devolver el resultado sin almacenar una sesión de protocolo entre solicitudes.
El abandono de las sesiones obligatorias
Las versiones anteriores comenzaban con un intercambio de initialize y initialized para crear una sesión, con la posibilidad de asignar un identificador mediante la cabecera Mcp-Session-Id. Cada solicitud posterior debía acceder al estado asociado a esa sesión, lo que planteaba desafíos para los entornos que dependen del escalado automático y obligaba a las implementaciones a drenar o trasladar las sesiones activas. La pérdida de una instancia activa del servidor podía provocar la reconexión del cliente o la interrupción de la sesión.
La nueva versión elimina el protocolo de enlace obligatorio, la cabecera Mcp-Session-Id y las sesiones de la ruta de solicitud principal. Cada solicitud incluye la versión del protocolo, la identidad del cliente y las capacidades necesarias. La llamada a server/discover para inspeccionar el servidor antes de ejecutar otra solicitud ahora es opcional.
Esto no significa que las aplicaciones con estado hayan dejado de ser necesarias; Cloudflare señala que Durable Objects siguen siendo apropiados cuando la propia aplicación necesita un estado coordinado. Sin embargo, MCP ya no requiere Durable Objects para comunicarse mediante el protocolo, y los servidores que necesitan procesamiento vinculado a la solicitud pueden escalar en Workers.
Interacciones de varias rondas en lugar de transmisión abierta
La versión rediseña el mecanismo de elicitation, que se utiliza cuando el servidor necesita información adicional antes de completar la solicitud, como la aprobación para publicar una versión en producción o la confirmación de la emisión de un reembolso. Anteriormente, las solicitudes iniciadas por el servidor dependían de una transmisión abierta.
Con el mecanismo Multi Round-Trip Requests, el servidor puede devolver un resultado denominado input_required que especifica los datos necesarios. El cliente recopila la respuesta y vuelve a intentar la operación con esos datos, sin que ninguna de las partes conserve una sesión de transporte entre las dos solicitudes. Cloudflare describe este cambio como incompatible con el enfoque anterior, aunque más sencillo desde el punto de vista operativo.
Hacer que las solicitudes MCP sean comprensibles para la infraestructura HTTP
La nueva especificación exige las dos cabeceras Mcp-Method y Mcp-Name en las solicitudes de Streamable HTTP. De este modo, la puerta de enlace, el limitador de solicitudes o el firewall de aplicaciones web pueden saber si la solicitud invoca una herramienta o lee un recurso sin analizar por completo el contenido de JSON-RPC.
La especificación también añadió las sugerencias ttlMs y cacheScope a los resultados de tools/list, prompts/list, resources/list y resources/read, junto con un orden determinista para los índices de herramientas, lo que permite reutilizarlos y mantener estable la caché de instrucciones al reconectarse.
Cambios en la autorización y el ciclo de vida de las funciones
La nueva especificación da prioridad a los clientes registrados previamente cuando existe una relación establecida entre el cliente y el servidor. Después utiliza documentos de metadatos de clientes CIMD para el registro dinámico, mientras que Dynamic Client Registration o DCR pasa a ser una opción de respaldo. Se ha anunciado la obsolescencia de DCR para las aplicaciones nuevas y se prevé eliminarlo después del verano de 2027.
La especificación también adopta el mecanismo RFC 9207 para identificar al emisor y exige utilizar la dirección del servidor principal como recurso, conforme a RFC 8707, en las solicitudes de autorización y de tokens. Cloudflare afirma que Workers OAuth Provider aplica estos requisitos a los servidores MCP en Workers.
La especificación cuenta ahora con un ciclo de vida formal que clasifica las funciones como activas, obsoletas o eliminadas. Una función obsoleta debe seguir disponible durante al menos 12 meses antes de su eliminación. Entre las funciones declaradas obsoletas en esta versión se encuentran Roots, Sampling, Logging, DCR y el antiguo transporte HTTP+SSE. MCP Apps y Enterprise-Managed Authorization pasan a ser extensiones, mientras que Tasks se trasladó al marco de extensiones para ofrecer una vía para trabajos prolongados y fiables.
Ruta de migración y disponibilidad
La interfaz createMcpHandler sale de su estado experimental y pasa al paquete oficial MCP TypeScript SDK. Cloudflare seguirá proporcionando una interfaz orientada a Workers dentro de Agents SDK. La empresa también ayudó a trasladar el SDK de TypeScript de Node.js a Web Standards para mejorar la compatibilidad con Bun, Deno y Cloudflare Workers.
Los clientes pueden migrar manteniendo la compatibilidad con las especificaciones anteriores. El punto de acceso /mcp acepta el nuevo protocolo y las solicitudes sin estado de clientes Streamable HTTP que utilizan la versión 2025, lo que permite a la mayoría de los clientes reconectarse sin cambios de configuración. En cambio, los servidores que dependen de sesiones antiguas, solicitudes del servidor al cliente o flujos independientes necesitan una ruta de migración más cuidadosa, como ejecutar una ruta sin estado junto a la antigua hasta que se agoten las sesiones activas.
Cloudflare afirma que la nueva especificación está disponible para clientes y servidores en su plataforma, y que se puede ejecutar un servidor MCP sin estado en un Worker y protegerlo mediante Workers OAuth Provider. Según la empresa, su servicio Code Mode MCP Server para la API de Cloudflare utilizó este enfoque y alcanzó miles de solicitudes por segundo y miles de millones de invocaciones de herramientas.