El Model Context Protocol (MCP) acaba de pasar a ser sin estado (stateless), y ese cambio permite a los desarrolladores desplegar diminutos servidores MCP en el nivel gratuito de Cloudflare Workers, siempre que cada solicitud se mantenga por debajo del límite de 10 ms de CPU de la plataforma.
Por qué este cambio es importante
Dos movimientos recientes abrieron la puerta. Primero, el núcleo de MCP abandonó su diseño basado en sesiones y ahora se ejecuta sin handshakes; cualquier solicitud puede ser gestionada por cualquier instancia del código. Segundo, Cloudflare retiró la clase McpAgent y ahora recomienda manejadores de solicitudes (request handlers) simples para nuevos servidores. Juntos, eliminan la necesidad de Durable Objects u otros almacenamientos con estado, que eran los principales obstáculos para ejecutar MCP en el plan gratuito.
Lo que el nivel gratuito realmente puede hacer
Construimos un servidor MCP de solo lectura que sirve archivos Markdown desde un sitio estático. El servidor implementa dos herramientas —list_articles y get_article— utilizando una simple sentencia switch para enrutar los métodos. Sin cálculos pesados, solo la obtención de activos estáticos.
La contabilidad de CPU de Cloudflare es distinta al tiempo total de respuesta. El tiempo de CPU solo cuenta los ciclos dedicados a la ejecución de tu JavaScript; el tiempo que se pasa esperando llamadas de red o lecturas de disco queda excluido. Esa distinción es importante porque el nivel gratuito limita la CPU a 10 ms por solicitud, mientras que la latencia total puede ser mayor.
Nuestras mediciones en el nivel gratuito fueron las siguientes:
server/discover: 0-1 ms de CPUtools/list: 0 ms de CPUget_article(archivo más grande): 1-2 ms de CPU
Incluso el artículo más grande utilizó una fracción del presupuesto de 10 ms. La aparente ralentización en el lado del cliente se debió a la espera de la lectura del archivo, no a la ejecución del código.
Donde el límite se hace notar
Los datos apuntan a un patrón claro:
- Herramientas de servicio de datos (lecturas simples, listados) se mantienen cómodamente por debajo del límite.
- Herramientas de computación intensiva (parsing, renderizado, hashing o cualquier trabajo algorítmico) pueden agotar rápidamente el presupuesto de 10 ms.
Si una herramienta requiere un procesamiento más que trivial, los desarrolladores tendrán que pasar a un plan de pago de Workers. El plan de $5 aumenta el límite a 30 segundos por solicitud.
Quién gana y quién vigila el reloj
Los sitios pequeños que ya alojan archivos Markdown o un feed RSS pueden exponer un endpoint de MCP con una sola ruta nueva y permanecer en el plan gratuito. Eso significa menores costos operativos y menos piezas móviles para aficionados, sitios de documentación o blogs de bajo tráfico.
Si una herramienta requiere un procesamiento más que trivial, los desarrolladores tendrán que pasar a un plan de pago de Workers.
Qué probar antes de lanzar
- Perfilado de tu herramienta: Ejecuta algunas solicitudes representativas y comprueba el medidor de CPU en el panel de Cloudflare.
- Separa las rutas estáticas y dinámicas: Mantén el servicio de archivos estáticos en el nivel gratuito y enruta las llamadas de computación intensiva a un worker de pago o a otro backend.
- Vigila la latencia oculta: Las esperas de red no cuentan contra la CPU, pero siguen afectando la experiencia del usuario. Considera el uso de caché en el borde (edge caching) para los archivos que sirvas.
Contrapunto: el plan gratuito no es ilimitado
Si bien el núcleo sin estado elimina la necesidad de Durable Objects, el límite de 10 ms sigue siendo un techo rígido. Los desarrolladores que subestimen el costo incluso de un análisis modesto (por ejemplo, la conversión de markdown a HTML) pueden alcanzar el límite inesperadamente. El nivel gratuito es adecuado para escenarios de "servir tal cual", no para la generación de contenido sobre la marcha.
Qué sigue para MCP en Cloudflare
Si tu sitio ya tiene su contenido en un bucket estático, añadir un endpoint de MCP podría ser tan sencillo como unas pocas líneas de código y una sola ruta. El protocolo ahora se alinea con las necesidades de los servidores pequeños: un endpoint HTTP simple que puede alojarse de forma gratuita, siempre que te mantengas por debajo del límite de 10 ms de CPU.
