이제 개발자들은 Cloudflare의 요청당 CPU 제한인 10ms 이내를 유지하면서 무료 티어에서 Model Context Protocol (MCP) 서버를 실행할 수 있습니다. 이는 누구나 유료 플랜을 결제하거나 상태 유지형(stateful) 인프라를 관리할 필요 없이 정적 Markdown 파일을 라이브 콘텐츠 서비스로 전환할 수 있다는 점에서 매우 중요합니다.

무료 티어가 이제 가능한 이유

두 가지 변화 덕분에 무료 플랜 배포가 가능해졌습니다. 첫째, MCP 사양이 이제 상태 비저장(stateless) 모델을 사용합니다. 새로운 프로토콜은 세션과 핸드셰이크를 제거하여, 공유 저장소 없이도 어떤 서버 인스턴스에서든 모든 요청을 처리할 수 있습니다. 둘째, Cloudflare의 가이드라인이 변경되었습니다. 이전에 권장되던 McpAgent 클래스는 더 이상 사용되지 않으며(deprecated), 개발자는 새로운 MCP 서버를 위해 상태 비저장 요청 핸들러를 사용해야 합니다.

이전 모델에서는 사용자의 세션을 추적하기 위해 요청 간에 상태를 유지하는 Cloudflare의 구성 요소인 Durable Object가 필요했습니다.

벤치마크: 10ms 이내에 들어오는 작업은 무엇인가

저희는 에셋으로 저장된 Markdown 파일을 제공하는 읽기 전용 MCP 서버를 구축했습니다. 이 서버는 4개의 엔드포인트를 노출하며, 각 엔드포인트의 CPU 사용량 중앙값을 기록했습니다:

  • server/discover – 0ms
  • tools/list – 0ms
  • list_articles – 1ms
  • get_article – 1ms (가장 긴 문서의 경우에도)

전체 응답 시간(wall-clock time)은 약 88ms까지 올라갈 수 있지만, Cloudflare는 코드를 실행하는 데 소비된 CPU 시간만을 10ms 제한에 포함합니다. 네트워크 지연 시간, I/O 대기 및 기타 유휴 시간은 제외됩니다.

이 수치들은 다음과 같은 간단한 원칙을 보여줍니다:

  • 단순히 바이트를 읽고 반환하는 엔드포인트는 2ms 미만으로 여유 있게 유지됩니다.
  • 파싱, 렌더링, 해싱과 같이 복잡한 계산을 수행하는 엔드포인트는 제한을 초과할 위험이 있습니다.

도구가 무거운 처리를 수행하는 경우, 요청당 더 높은 CPU 허용량을 제공하는 Cloudflare 유료 플랜으로 전환해야 합니다.

누가 이득을 보고, 누가 제외되는가

이제 무료 티어는 정적 콘텐츠 서비스, 문서 사이트 또는 서버의 역할이 기존 파일을 가져와 전달하는 것인 모든 유스케이스에 대해 실행 가능한 옵션이 되었습니다.

결론

상태 비저장 MCP 서버는 요청당 CPU 시간이 10ms 미만이라면 이제 Cloudflare 무료 플랜에서 운영할 수 있습니다. 단순한 읽기 전용 서비스는 쉽게 적합하지만, 데이터를 처리하는 작업은 그렇지 않습니다. 이러한 변화로 Durable Object의 필요성이 사라졌습니다. 인프라 비용을 지불하지 않고 대규모로 정적 콘텐츠를 제공하려는 모든 이에게 무료 티어는 이제 현실적인 선택지입니다.

출처: Cloudflare의 10ms CPU 제한을 기준으로 MCP 서버를 측정한 dev.to 게시물.