Model Context Protocol (MCP) ได้ยกเลิกการใช้ session state โดยเปลี่ยนมาใช้การส่งคำขอแบบรูปแบบใบเสร็จ (receipt-style requests) และคำสั่ง server/discover แบบใหม่ นักพัฒนาสามารถรัน MCP บนแพลตฟอร์ม serverless อย่าง AWS Lambda ได้แล้ว ซึ่งจะช่วยหลีกเลี่ยงปัญหาคอขวดแบบ “พนักงานเสิร์ฟคนเดียว” (single waiter) ที่ส่งผลกระทบต่อความน่าเชื่อถือมาอย่างยาวนาน

ทำไมโมเดลแบบเดิมถึงมีความสำคัญ

เดิมที MCP จำเป็นต้องมีการเชื่อมต่อที่คงอยู่ตลอดเวลา (persistent connection) กับเซิร์ฟเวอร์เฉพาะเจาะจง โดยเซิร์ฟเวอร์จะถือ "หมายเลขโต๊ะ" ของผู้ใช้ไว้ ซึ่งก็คือ session ที่ซ่อนอยู่ซึ่งทำหน้าที่เก็บ context, กฎเกณฑ์ และการดำเนินการที่ค้างอยู่ เมื่อเซิร์ฟเวอร์นั้นล่ม session ก็จะหายไป และไคลเอนต์ (client) จะต้องเริ่มใหม่ทั้งหมด

สิ่งที่การอัปเดตนี้ทำแตกต่างออกไป

  • ไม่มี sessions – แต่ละคำขอจะพกพาข้อมูลทุกอย่างที่เซิร์ฟเวอร์ต้องการมาด้วย เปรียบเสมือนใบเสร็จร้านอาหารที่พนักงานแคชเชียร์คนไหนก็อ่านได้ และขั้นตอนการทำ handshake แบบ “initialize” ก็จะหายไป
  • โมเดลแบบใบเสร็จ (Receipt model) – จะมี meta block ขนาดเล็กที่ส่วนต้นของทุกคำขอ ซึ่งประกอบด้วยข้อมูลเวอร์ชันและพารามิเตอร์ที่จำเป็น เซิร์ฟเวอร์จะประมวลผลคำขอแบบแยกส่วน (in isolation) จากนั้นจะส่งผลลัพธ์กลับมาพร้อมกับ resultType, ttlMs (time-to-live ในหน่วยมิลลิวินาที) และ cacheScope ฟิลด์เหล่านี้ช่วยให้ไคลเอนต์สามารถแคช (cache) คำตอบได้อย่างปลอดภัยและทราบว่าข้อมูลจะหมดอายุเมื่อใด
  • Server/discover – คำสั่งใหม่ที่ช่วยให้ไคลเอนต์สามารถสอบถามความสามารถปัจจุบันของเซิร์ฟเวอร์ได้ โดยการตอบกลับจะเป็นไปในทันทีและไม่ขึ้นอยู่กับการโต้ตอบก่อนหน้านี้
  • Subscriptions/listen – ทำงานเหมือนเครื่องเรียกคิว (buzzer): ไคลเอนต์จะสมัครรับข้อมูลอัปเดตและจะได้รับการแจ้งเตือนก็ต่อเมื่อมีการเปลี่ยนแปลงเท่านั้น ซึ่งช่วยลดปริมาณการรับส่งข้อมูลแบบ polling
  • Flow แบบ Input_required – หากเซิร์ฟเวอร์ต้องการข้อมูลเพิ่มเติม จะส่งการตอบกลับแบบ input_required แทนที่จะต้องติดต่อกลับไปยังไคลเอนต์ จากนั้นไคลเอนต์จึงจะส่งข้อมูลที่ขาดหายไปในคำขอถัดไป

เนื่องจากเซิร์ฟเวอร์ไม่ต้องถือสถานะ (state) อีกต่อไป สภาพแวดล้อมการประมวลผลแบบ stateless ใดๆ ก็สามารถโฮสต์ MCP endpoints ได้ ฟังก์ชันที่ทำงานตามความต้องการ (spin up on demand), หยุดพัก (pause) หรือย้ายข้ามโซน (migrate across zones) จึงสามารถจัดการทราฟฟิกได้โดยไม่ทำให้การสนทนาขาดตอน

ใครได้ประโยชน์ ใครต้องกังวล

นักพัฒนาที่สร้าง AI front-ends – จะได้แบ็คเอนด์ (back-ends) ที่เรียบง่ายและน่าเชื่อถือยิ่งขึ้น ทีมโครงสร้างพื้นฐาน (Infrastructure teams) – สามารถจัดสรร MCP บนบริการที่มีราคาถูกและปรับขนาดอัตโนมัติ (auto-scaling) ได้ ผู้ดูแล MCP server – ต้องเขียน handler ใหม่เพื่อให้ส่งค่า ttlMs, cacheScope และปฏิบัติตามข้อกำหนด (contract) ของ server/discover โค้ดที่เคยพึ่งพา persistent session จะต้องได้รับการปรับปรุงโครงสร้างใหม่ (refactoring) องค์กรที่มีกฎระเบียบด้านการปฏิบัติตามข้อกำหนด (compliance) ที่เข้มงวด – จะได้รับประโยชน์จากการควบคุมวงจรชีวิตของข้อมูล (data-lifecycle) ที่ชัดเจนยิ่งขึ้น

รายละเอียดที่ซ่อนอยู่: การเจรจาเวอร์ชัน (version negotiation)

ใบเสร็จทุกใบจะมี meta block ขนาดเล็กที่ระบุเวอร์ชันของโปรโตคอลที่ไคลเอนต์คาดหวังไว้

สิ่งที่ยังไม่แน่นอน

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

บทสรุป

ด้วยการตัด session state ออกไปและเปลี่ยนทุกการโต้ตอบให้กลายเป็นใบเสร็จที่สมบูรณ์ในตัวเอง ทำให้ตอนนี้ MCP สามารถเข้ากับระบบนิเวศแบบ serverless ได้อย่างเป็นธรรมชาติ การเปลี่ยนแปลงนี้ทำให้ MCP มีความเสถียรและขยายขนาด (scalable) ได้มากขึ้น ช่วยให้เซิร์ฟเวอร์สามารถรันที่ไหนก็ได้และขยายขนาดได้เหมือนกับบริการเว็บทั่วไป