Розробники тепер можуть запускати сервер Model Context Protocol (MCP) на безкоштовному рівні Cloudflare, залишаючись у межах ліміту процесорного часу (CPU) у 10 мс на запит. Це важливо, оскільки будь-хто може перетворити статичні Markdown-файли на сервіс живого контенту, не оплачуючи тарифний план і не підтримуючи інфраструктуру зі збереженням стану (stateful infrastructure).

Чому безкоштовний рівень тепер працює

Можливість розгортання на безкоштовному плані зумовлена двома змінами. По-перше, специфікація MCP тепер використовує модель без збереження стану (stateless). Новий протокол відмовляється від сесій і рукостискань (handshakes), тому будь-який запит може бути оброблений будь-яким екземпляром сервера без спільного сховища. По-друге, Cloudflare змінила свої рекомендації: раніше рекомендований клас McpAgent застарів, і для нових MCP-серверів розробники повинні використовувати stateless-обробники запитів.

У попередній моделі відстеження сесії користувача вимагало використання Durable Object — конструкту Cloudflare, який зберігає стан між запитами.

Бенчмарки: що вкладається у 10 мс

Ми створили MCP-сервер лише для читання, який надає Markdown-файли, збережені як активи (assets). Сервер має чотири кінцеві точки (endpoints); ми зафіксували медіанне використання CPU для кожної з них:

  • server/discover – 0 мс
  • tools/list – 0 мс
  • list_articles – 1 мс
  • get_article – 1 мс (навіть для найдовшої статті)

Загальний час відповіді (wall-clock time) може зростати приблизно до 88 мс, але Cloudflare враховує у межах ліміту в 10 мс лише час CPU, витрачений на виконання вашого коду. Мережева затримка, очікування введення-виведення (I/O) та інші періоди простою не враховуються.

Ці цифри ілюструють просте практичне правило:

  • Кінцеві точки, які лише зчитують і повертають байти, легко залишаються в межах 2 мс.
  • Кінцеві точки, що виконують нетривіальні обчислення — парсинг, рендеринг, хешування — ризикують перевищити ліміт.

Якщо ваш інструмент виконує складну обробку, вам доведеться перейти на платний тарифний план Cloudflare, який пропонує вищий ліміт CPU на запит.

Хто виграє, а хто залишиться осторонь

Безкоштовний рівень тепер стає життєздатним варіантом для сервісів зі статичним контентом, сайтів документації або будь-яких сценаріїв використання, де завданням сервера є отримання та надання вже існуючих файлів.

Підсумок

MCP-сервери без збереження стану (stateless) тепер можуть працювати на безкоштовному плані Cloudflare, за умови, що вони не перевищують 10 мс процесорного часу на запит. Прості сервіси лише для читання легко вписуються в ці рамки; будь-що, що займається обробкою даних, — ні. Ця зміна усуває потребу в Durable Objects. Для тих, хто хоче масштабно надавати статичний контент, не оплачуючи інфраструктуру, безкоштовний рівень тепер є реальним варіантом.

Джерело: пост на dev.to, у якому вимірюється робота MCP-сервера відносно ліміту CPU Cloudflare у 10 мс.