Model Context Protocol (MCP) vừa chuyển sang trạng thái không lưu trạng thái (stateless), và thay đổi này cho phép các nhà phát triển triển khai các MCP server siêu nhỏ trên gói miễn phí của Cloudflare Workers—miễn là mỗi yêu cầu nằm trong giới hạn 10ms CPU của nền tảng.
Tại sao sự thay đổi này lại quan trọng
Hai bước đi gần đây đã mở ra cánh cửa này. Đầu tiên, lõi MCP đã loại bỏ thiết kế dựa trên phiên (session-based) và hiện hoạt động mà không cần các bước bắt tay (handshakes); bất kỳ yêu cầu nào cũng có thể được xử lý bởi bất kỳ thực thể (instance) nào của mã nguồn. Thứ hai, Cloudflare đã ngừng sử dụng lớp McpAgent và hiện khuyến nghị sử dụng các trình xử lý yêu cầu (request handlers) thuần túy cho các server mới. Cùng với nhau, chúng loại bỏ nhu cầu sử dụng Durable Objects hoặc các kho lưu trữ có trạng thái (stateful storage) khác, vốn là những rào cản chính khi chạy MCP trên gói miễn phí.
Gói miễn phí thực sự có thể làm được gì
Chúng tôi đã xây dựng một MCP server chỉ đọc (read-only) để phục vụ các tệp Markdown từ một trang web tĩnh. Server này triển khai hai công cụ—list_articles và get_article—sử dụng một câu lệnh switch đơn giản để định tuyến các phương thức. Không có các tính toán nặng nề, chỉ là lấy các tài sản tĩnh (static assets).
Cách tính toán CPU của Cloudflare khác với tổng thời gian phản hồi. Thời gian CPU chỉ tính các chu kỳ dành cho việc thực thi JavaScript của bạn; thời gian chờ các lệnh gọi mạng hoặc đọc đĩa sẽ được loại trừ. Sự khác biệt này rất quan trọng vì gói miễn phí giới hạn CPU ở mức 10ms mỗi yêu cầu, trong khi tổng độ trễ có thể cao hơn.
Các phép đo của chúng tôi trên gói miễn phí như sau:
server/discover: 0-1 ms CPUtools/list: 0 ms CPUget_article(tệp lớn nhất): 1-2 ms CPU
Ngay cả bài viết lớn nhất cũng chỉ sử dụng một phần nhỏ trong ngân sách 10ms. Sự chậm trễ rõ rệt ở phía client đến từ việc chờ đọc tệp, chứ không phải từ việc thực thi mã.
Nơi giới hạn trở thành rào cản
Dữ liệu chỉ ra một mô hình rõ ràng:
- Các công cụ phục vụ dữ liệu (đọc đơn giản, liệt kê) hoàn toàn nằm dưới giới hạn.
- Các công cụ tiêu tốn nhiều tài nguyên tính toán (phân tích cú pháp, kết xuất, băm, hoặc bất kỳ công việc thuật toán nào) có thể nhanh chóng làm cạn kiệt ngân sách 10ms.
Nếu một công cụ cần xử lý nhiều hơn mức tối thiểu, các nhà phát triển sẽ phải chuyển sang gói Workers trả phí. Gói 5 USD nâng giới hạn lên 30 giây mỗi yêu cầu.
Ai được lợi, ai phải canh thời gian
Các trang web nhỏ vốn đã lưu trữ các tệp Markdown hoặc nguồn cấp dữ liệu RSS có thể công khai một endpoint MCP chỉ với một route mới duy nhất và vẫn duy trì được gói miễn phí. Điều đó có nghĩa là chi phí vận hành thấp hơn và ít thành phần chuyển động hơn cho những người làm sở thích, các trang tài liệu, hoặc các blog có lưu lượng truy cập thấp.
Nếu một công cụ cần xử lý nhiều hơn mức tối thiểu, các nhà phát triển sẽ phải chuyển sang gói Workers trả phí.
Những gì cần kiểm tra trước khi triển khai
- Đo lường hiệu năng công cụ của bạn: Chạy một vài yêu cầu đại diện và kiểm tra đồng hồ CPU trong bảng điều khiển của Cloudflare.
- Tách biệt các đường dẫn tĩnh và động: Giữ việc phục vụ tệp tĩnh ở gói miễn phí, và định tuyến các lệnh gọi tiêu tốn nhiều tính toán sang một worker trả phí hoặc một backend khác.
- Chú ý đến độ trễ tiềm ẩn: Việc chờ đợi mạng không tính vào CPU, nhưng chúng vẫn ảnh hưởng đến trải nghiệm người dùng. Hãy cân nhắc sử dụng edge caching cho các tệp mà bạn phục vụ.
Quan điểm ngược lại: gói miễn phí không phải là vô hạn
Mặc dù lõi stateless đã loại bỏ nhu cầu sử dụng Durable Objects, giới hạn 10ms vẫn là một ngưỡng cứng. Các nhà phát triển đánh giá thấp chi phí của ngay cả việc phân tích cú pháp khiêm tốn (ví dụ: chuyển đổi markdown sang HTML) có thể chạm tới giới hạn một cách bất ngờ. Gói miễn phí phù hợp với các kịch bản "phục vụ nguyên trạng" (serve-as-is), chứ không phải tạo nội dung tức thời (on-the-fly).
Bước tiếp theo của MCP trên Cloudflare
Nếu trang web của bạn đã có nội dung trong một bucket tĩnh, việc thêm một endpoint MCP có thể đơn giản như chỉ vài dòng mã và một route duy nhất. Giao thức hiện đã phù hợp với nhu cầu của các server nhỏ—một HTTP endpoint thuần túy có thể được lưu trữ miễn phí, miễn là bạn duy trì dưới ngưỡng CPU 10ms.
