Протокол Model Context Protocol (MCP) стал stateless, и это изменение позволяет разработчикам запускать крошечные MCP-серверы на бесплатном уровне (free tier) Cloudflare Workers — при условии, что каждый запрос не превышает лимит CPU в 10 мс, установленный платформой.

Почему это важно

Два недавних изменения открыли эту возможность. Во-первых, ядро MCP отказалось от дизайна, основанного на сессиях, и теперь работает без «рукопожатий» (handshakes); любой запрос может быть обработан любым экземпляром кода. Во-вторых, Cloudflare вывел из эксплуатации класс McpAgent и теперь рекомендует использовать обычные обработчики запросов для новых серверов. Вместе они устраняют необходимость в Durable Objects или других хранилищах с сохранением состояния (stateful storage), которые были основными препятствиями для запуска MCP на бесплатном плане.

Что на самом деле позволяет делать бесплатный уровень

Мы создали MCP-сервер только для чтения, который отдает Markdown-файлы со статического сайта. Сервер реализует два инструмента — list_articles и get_article — используя простой оператор switch для маршрутизации методов. Никаких тяжелых вычислений, только получение статических ресурсов.

Учет CPU в Cloudflare отличается от общего времени ответа. Время CPU учитывает только циклы, затраченные на выполнение вашего JavaScript; время, потраченное на ожидание сетевых вызовов или чтения с диска, исключается. Это различие важно, так как бесплатный уровень ограничивает CPU 10 мс на запрос, в то время как общая задержка (latency) может быть выше.

Наши измерения на бесплатном уровне выглядели следующим образом:

  • server/discover: 0–1 мс CPU
  • tools/list: 0 мс CPU
  • get_article (самый большой файл): 1–2 мс CPU

Даже самая большая статья использовала лишь малую часть бюджета в 10 мс. Очевидное замедление на стороне клиента было вызвано ожиданием чтения файла, а не выполнением кода.

Где проявляется ограничение

Данные указывают на четкую закономерность:

  • Инструменты для отдачи данных (простое чтение, списки) уверенно укладываются в лимит.
  • Инструменты с высокой вычислительной нагрузкой (парсинг, рендеринг, хеширование или любые алгоритмические задачи) могут быстро исчерпать бюджет в 10 мс.

Если инструменту требуется более чем тривиальная обработка, разработчикам придется перейти на платный план Workers. План за $5 увеличивает лимит до 30 секунд на запрос.

Кто в выигрыше, а кто следит за временем

Небольшие сайты, которые уже размещают Markdown-файлы или RSS-ленту, могут открыть MCP-эндпоинт с помощью всего одного нового маршрута и остаться на бесплатном плане. Это означает снижение эксплуатационных расходов и уменьшение количества компонентов для энтузиастов, сайтов документации или блогов с низкой посещаемостью.

Если инструменту требуется более чем тривиальная обработка, разработчикам придется перейти на платный план Workers.

Что протестировать перед запуском

  • Профилируйте свой инструмент: выполните несколько репрезентативных запросов и проверьте счетчик CPU в панели управления Cloudflare.
  • Разделяйте статические и динамические пути: оставьте отдачу статических файлов на бесплатном уровне, а вызовы с интенсивными вычислениями направляйте на платный worker или другой бэкенд.
  • Следите за скрытыми задержками: ожидание сети не учитывается в CPU, но все равно влияет на пользовательский опыт. Рассмотрите возможность edge-кеширования для файлов, которые вы отдаете.

Контраргумент: бесплатный план не безграничен

Хотя stateless-ядро устраняет необходимость в Durable Objects, ограничение в 10 мс остается жестким пределом. Разработчики, недооценивающие стоимость даже умеренного парсинга (например, преобразования Markdown в HTML), могут неожиданно столкнуться с лимитом. Бесплатный уровень подходит для сценариев «отдачи как есть», а не для генерации контента на лету.

Что дальше для MCP на Cloudflare

Если ваш сайт уже хранит контент в статическом хранилище (bucket), добавление MCP-эндпоинта может быть так же просто, как написание нескольких строк кода и создание одного маршрута. Протокол теперь соответствует потребностям небольших серверов — обычного HTTP-эндпоинта, который можно разместить бесплатно, пока вы не превышаете потолок в 10 мс CPU.