ขณะนี้นักพัฒนาสามารถรันเซิร์ฟเวอร์ Model Context Protocol (MCP) บน Cloudflare แผนใช้งานฟรี (free tier) ได้ โดยที่ยังอยู่ภายใต้ขีดจำกัด CPU 10 มิลลิวินาทีต่อคำขอ (per-request) ของแพลตฟอร์ม เรื่องนี้มีความสำคัญเพราะใครก็ตามสามารถเปลี่ยนไฟล์ Markdown แบบสแตติก (static) ให้กลายเป็นบริการเนื้อหาแบบสด (live content service) ได้ โดยไม่ต้องเสียค่าใช้จ่ายสำหรับแผนบริการหรือต้องดูแลโครงสร้างพื้นฐานแบบ stateful

ทำไมแผนใช้งานฟรีถึงใช้งานได้ในตอนนี้

การเปลี่ยนแปลงสองประการทำให้การปรับใช้ (deployment) บนแผนใช้งานฟรีเป็นไปได้ ประการแรก ข้อกำหนด (specification) ของ MCP เปลี่ยนมาใช้โมเดลแบบ stateless แล้ว โปรโตคอลใหม่นี้ตัดเรื่อง session และ handshake ออกไป ทำให้คำขอใดๆ ก็ตามสามารถจัดการโดยเซิร์ฟเวอร์อินสแตนซ์ใดก็ได้โดยไม่ต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกัน ประการที่สอง Cloudflare ได้เปลี่ยนคำแนะนำ: คลาส McpAgent ที่เคยแนะนำก่อนหน้านี้ถูกยกเลิกการใช้งาน (deprecated) แล้ว และนักพัฒนาต้องใช้ stateless request handlers สำหรับเซิร์ฟเวอร์ MCP ใหม่ๆ

ในโมเดลแบบเดิม การติดตามเซสชันของผู้ใช้จำเป็นต้องใช้ Durable Object ซึ่งเป็นโครงสร้างของ Cloudflare ที่ช่วยรักษาค่าสถานะ (state) ให้คงอยู่ข้ามคำขอต่างๆ

ผลการทดสอบ (Benchmarks): อะไรที่ใช้งานได้ภายใต้ 10 มิลลิวินาที

เราได้สร้างเซิร์ฟเวอร์ MCP แบบอ่านอย่างเดียว (read-only) ที่ให้บริการไฟล์ Markdown ซึ่งจัดเก็บไว้เป็น assets เซิร์ฟเวอร์นี้เปิดใช้งาน 4 endpoints โดยเราได้บันทึกค่าการใช้งาน CPU ระดับมัธยฐาน (median) ของแต่ละรายการไว้ดังนี้:

  • server/discover – 0 มิลลิวินาที
  • tools/list – 0 มิลลิวินาที
  • list_articles – 1 มิลลิวินาที
  • get_article – 1 มิลลิวินาที (แม้จะเป็นบทความที่ยาวที่สุดก็ตาม)

เวลาตอบสนองจริง (wall-clock response time) ทั้งหมดอาจพุ่งสูงถึงประมาณ 88 มิลลิวินาที แต่ Cloudflare จะนับเฉพาะเวลา CPU ที่ใช้ในการประมวลผลโค้ดของคุณเพื่อนำไปคำนวณกับขีดจำกัด 10 มิลลิวินาทีเท่านั้น ค่าความหน่วงของเครือข่าย (network latency), การรอ I/O และช่วงเวลาว่างอื่นๆ จะไม่ถูกนำมานับรวม

ตัวเลขเหล่านี้แสดงให้เห็นถึงหลักการง่ายๆ ดังนี้:

  • Endpoints ที่ทำเพียงแค่การอ่านและส่งคืนข้อมูลไบต์ (bytes) จะใช้เวลาไม่เกิน 2 มิลลิวินาทีอย่างสบายๆ
  • Endpoints ที่มีการประมวลผลที่ซับซ้อน เช่น การ parse, การ render หรือการทำ hashing มีความเสี่ยงที่จะใช้งานเกินขีดจำกัด

หากเครื่องมือของคุณมีการประมวลผลหนัก คุณจำเป็นต้องเปลี่ยนไปใช้แผนบริการแบบชำระเงินของ Cloudflare ซึ่งจะให้โควตา CPU ต่อคำขอที่สูงกว่า

ใครได้ประโยชน์ และใครที่ถูกทิ้งไว้ข้างหลัง

แผนใช้งานฟรีกลายเป็นทางเลือกที่ใช้งานได้จริงสำหรับบริการเนื้อหาสแตติก (static-content services), เว็บไซต์เอกสาร (documentation sites) หรือกรณีการใช้งานใดๆ ที่หน้าที่ของเซิร์ฟเวอร์คือการดึงและส่งไฟล์ที่มีอยู่แล้ว

สรุปสาระสำคัญ

เซิร์ฟเวอร์ MCP แบบ stateless สามารถรันบนแผนใช้งานฟรีของ Cloudflare ได้แล้ว ตราบใดที่ใช้เวลา CPU ไม่เกิน 10 มิลลิวินาทีต่อคำขอ บริการแบบอ่านอย่างเดียวที่เรียบง่ายสามารถใช้งานได้อย่างง่ายดาย แต่บริการใดก็ตามที่มีการประมวลผลข้อมูลหนักๆ จะไม่สามารถทำได้ การเปลี่ยนแปลงนี้ช่วยลดความจำเป็นในการใช้ Durable Objects สำหรับใครก็ตามที่ต้องการให้บริการเนื้อหาสแตติกในระดับสเกลใหญ่โดยไม่ต้องจ่ายค่าโครงสร้างพื้นฐาน แผนใช้งานฟรีถือเป็นทางเลือกที่เป็นไปได้จริงในขณะนี้

ที่มา: โพสต์จาก dev.to ที่ทำการวัดประสิทธิภาพเซิร์ฟเวอร์ MCP เทียบกับขีดจำกัด CPU 10 มิลลิวินาทีของ Cloudflare