ข้อกำหนดใหม่ของ MCP ประจำวันที่ 2026-07-28 ได้ยกเลิกข้อกำหนดด้าน session-state ทั้งหมด โดยอนุญาตให้แต่ละคำขอ (request) สามารถพกพาข้อมูลทั้งหมดที่จำเป็นติดตัวไปได้ การเปลี่ยนผ่านสู่โปรโตคอลแบบ stateless หมายความว่านักพัฒนาสามารถสร้าง instance ขึ้นมาใช้งานเพียงหนึ่งครั้งต่อการเรียกหนึ่งครั้ง (per call) โดยสามารถรันบน serverless หรือ edge nodes และยกเลิกการจัดการระบบ sticky-routing และ shared-store แบบเดิมที่เคยเป็นปัญหาในการปรับใช้ (deployment)

จากการทำ Handshake สู่การเรียกใช้งานแบบจบในตัวเอง (Self-Contained Calls)

จนถึงตอนนี้ Model Context Protocol (MCP) บังคับให้ต้องมีการทำ handshake เพื่อออก session ID ซึ่งเซิร์ฟเวอร์ต้องจดจำ ID นั้นไว้ตลอดอายุการเชื่อมต่อ ซึ่งในทางปฏิบัติหมายถึงการต้องรักษา process ให้ทำงานอยู่ตลอด, การทำ replication สถานะผ่าน Redis cluster หรือการตั้งค่า load balancers สำหรับการทำ “sticky” routing ผลลัพธ์ที่ได้คือ stack ที่ซับซ้อนและกินทรัพยากรสูง ซึ่งเป็นอุปสรรคต่อการขยายระบบ (scaling) และทำให้การเติบโตในแนวราบ (horizontal growth) มีค่าใช้จ่ายสูง

ข้อกำหนดใหม่ทำให้ทุกคำขอเป็นแบบ self-contained โดยแต่ละ payload จะรวมเวอร์ชันของโปรโตคอลและตัวตนของผู้เรียก (caller’s identity) ไว้ด้วย ทำให้เซิร์ฟเวอร์สามารถจัดการคำขอในฐานะธุรกรรมแบบครั้งเดียวจบ (one-off transaction) ได้ โดยไม่ต้องมี session store, ไม่ต้องมี process ที่ทำงานค้างไว้นานๆ และไม่ต้องมีกฎการกำหนดเส้นทาง (routing rules) แบบพิเศษ

ทำไม Stateless ถึงสำคัญต่อการปรับใช้ (Deployment)

  • พร้อมสำหรับ Serverless และ Edge – คำขอจะพกพาข้อมูลทุกอย่างที่จำเป็นไปในตัว ทำให้ฟังก์ชันสามารถเริ่มทำงาน, ตอบสนอง และปิดตัวลงได้โดยไม่ต้องมีสถานะเตรียมพร้อม (warm-up state) ผู้ให้บริการที่คิดค่าบริการตามจำนวนการเรียกใช้งาน (per-invocation) จึงมีความคุ้มค่ามากขึ้นสำหรับเวิร์กโหลดของ MCP
  • การทำ Load Balancing ที่เรียบง่ายขึ้น – ตัวกระจายโหลด (load balancers) มาตรฐานระดับ L4/L7 สามารถกระจายทราฟฟิกได้อย่างสม่ำเสมอ โดยไม่จำเป็นต้องผูกลูกค้า (client) ไว้กับ backend ตัวใดตัวหนึ่ง
  • ลดภาระด้านการปฏิบัติการ (Operational Overhead) – ทีมงานสามารถยกเลิกการใช้ Redis clusters หรือโค้ดสำหรับทำ session-replication แบบกำหนดเอง ซึ่งช่วยลดทั้งต้นทุนและโอกาสในการเกิดข้อผิดพลาด (failure surface)

สำหรับองค์กรที่รัน MCP อยู่หลัง load balancer อยู่แล้ว การเปลี่ยนแปลงนี้จะช่วยกำจัดความจำเป็นในการใช้กฎ “sticky” ที่มักจะทำให้การกระจายทราฟฟิกไม่สม่ำเสมอ การประหยัดนี้จะเห็นได้ชัดเจนเป็นพิเศษสำหรับบริการที่มี throughput สูงซึ่งมีการเรียกใช้งานหลายล้านครั้งต่อวัน

การอัปเกรดประสิทธิภาพและความปลอดภัย

ข้อกำหนดใหม่นี้มีการเพิ่มฟีเจอร์ที่ช่วยยกระดับโปรโตคอลให้แน่นหนายิ่งขึ้น นอกเหนือจากการเป็น stateless:

  • การทำ Caching ตาม TTL – รายการเครื่องมือ (tool) และ prompt จะมีฟิลด์ time-to-live (TTL) เพิ่มเข้ามา ช่วยให้ client สามารถทำ cache ผลลัพธ์ไว้ในเครื่องได้ และหลีกเลี่ยงการรับส่งข้อมูล (round-trips) ที่ไม่จำเป็น
  • การทำ Routing ด้วย Header – HTTP headers ใหม่จะเปิดเผยข้อมูลการกำหนดเส้นทางตั้งแต่เนิ่นๆ ทำให้ gateway สามารถส่งต่อทราฟฟิกได้โดยไม่ต้องเสียเวลา parse เนื้อหา JSON ทั้งหมด ช่วยลด latency ลงได้หลายมิลลิวินาที
  • การเสริมความแข็งแกร่งให้ OAuth/OIDC – Identity tokens จะผ่านการตรวจสอบ OAuth และ OpenID Connect ที่เข้มงวดขึ้น ช่วยลดความเสี่ยงจากการโจมตีแบบ replay และการขโมย token
  • โครงสร้างส่วนขยายที่เป็นทางการ (Formal extensions framework) – Tasks และ Apps จะถูกจัดอยู่ในโมเดลส่วนขยายที่กำหนดไว้ชัดเจน ทำให้การเปิดตัวฟีเจอร์ใหม่ๆ ในอนาคตเป็นไปอย่างราบรื่นยิ่งขึ้นสำหรับผู้ดูแล SDK

ผลกระทบต่อนักพัฒนา

ระบบนิเวศของ SDK ได้สะท้อนถึงการเปลี่ยนแปลงนี้แล้ว โดยไลบรารีในภาษา TypeScript, Python, Go และ C# ต่างก็รองรับรูปแบบคำขอใหม่นี้ ยอดดาวน์โหลดรวมของ SDK เหล่านี้พุ่งสูงขึ้นเกือบห้าแสนล้านครั้งต่อเดือน ซึ่งมากกว่าช่วงต้นปีถึงสี่เท่า แสดงให้เห็นว่า MCP กำลังถูกนำไปใช้งานอย่างแพร่หลายเพียงใด

นักพัฒนาจำเป็นต้องปรับปรุงโค้ดใดๆ ที่เคยตั้งสมมติฐานว่าจะมี session ที่คงอยู่ตลอดเวลา โดยปกติแล้วนั่นหมายถึงการย้ายข้อมูลเฉพาะของ session ไปไว้ใน request payload หรือเก็บไว้ใน store ภายนอกที่ต้องเรียกใช้ในทุกๆ คำขอ โดยมีระยะเวลาในการเปลี่ยนผ่าน (migration window) 12 เดือน เพื่อให้ทีมงานมีเวลาในการ refactor, ทดสอบ และเริ่มใช้งานรูปแบบใหม่

ข้อโต้แย้ง: ความซับซ้อนในการย้ายระบบ (Migration)

ความเป็น stateless ไม่ใช่เรื่องที่ได้มาฟรีๆ แอปพลิเคชันที่เคยพึ่งพาสถานะฝั่งเซิร์ฟเวอร์ (server-side state) สำหรับสิ่งต่างๆ เช่น ประวัติการสนทนาแบบต่อเนื่อง (progressive conversation history) จะต้องเปลี่ยนมาจัดการสถานะนั้นที่ฝั่ง client หรือผ่านเลเยอร์การจัดเก็บข้อมูล (persistence layer) แยกต่างหากแทน

สิ่งที่ต้องจับตามอง

  • ตัวชี้วัดการใช้งาน (Adoption metrics) – ติดตามการอัปเดตเวอร์ชันของ SDK หากการเติบโตชะลอตัวลง อาจเป็นสัญญาณของความยากลำบากในการย้ายระบบ
  • การรองรับแพลตฟอร์ม Edge – เมื่อผู้ให้บริการรายต่างๆ เริ่มประกาศรองรับ runtime ที่เข้ากันได้กับ MCP มากขึ้น ประโยชน์ด้านต้นทุนที่แท้จริงของ serverless จะชัดเจนยิ่งขึ้น
  • รายงานเหตุการณ์ด้านความปลอดภัย – กระบวนการ OAuth/OIDC ที่แข็งแกร่งขึ้นควรจะช่วยลดการโจมตีด้านอัตลักษณ์ได้ แต่การละเมิดความปลอดภัยใดๆ ก็ตามจะเป็นบททดสอบมาตรการป้องกันใหม่เหล่านี้

สรุป: การทำให้ MCP เป็นแบบ stateless ช่วยให้โปรโตคอลสอดคล้องกับรูปแบบ cloud-native สมัยใหม่ ช่วยลดภาระด้านการจัดการ session และเปิดประตูสู่โมเดลการปรับใช้ที่ราคาถูกกว่าและมีความยืดหยุ่น (elastic) มากกว่า แม้จะต้องแลกมาด้วยช่วงเวลาสั้นๆ ในการ refactor โค้ดและขนาดของ request ที่ใหญ่ขึ้น แต่ผลตอบแทนในระยะยาวคือโปรโตคอลที่สามารถขยายระบบได้ง่ายพอๆ กับโครงสร้างพื้นฐานที่มันทำงานอยู่