גרסת MCP 2 תעלה לאוויר ב-28 ביולי 2026. היא מבטלת כל handshake, כותרת session-ID ושלוש תתי-מערכות מורשת (legacy) שקישרו את ה-Model Context Protocol (MCP) לשרתי sticky-session. הפרוטוקול הופך ל-stateless לחלוטין, כך שכל מופע (instance) ב-autoscaling או serverless יכול לטפל בכל בקשה מבלי לשמור על מצב הלקוח (client state).
למה השינוי הזה חשוב
MCP v1 חייב את הלקוח להתחיל סשן באמצעות handshake של initialize; לאחר מכן השרת הקצה Mcp-Session-Id. כל קריאה מאוחרת יותר הייתה חייבת לשאת את הכותרת הזו, מה שקיבע את המשתמש לצומת (node) backend יחיד. מאזני עומסים (Load balancers) נאלצו לאכוף session affinity, מה שהוסיף שיהוי (latency) וחיכוך תפעולי.
המצב ה-stateless מבטל את החיכוך הזה. כל ההקשר (context) חי כעת בשדות meta ייעודיים המלווים כל קריאת HTTP. בקשה יכולה להגיע לכל instance, לעבור עיבוד, וה-instance יכול להימחק ברגע שהתגובה נשלחת. צוותים המשתמשים בפלטפורמות serverless, אשכולות (clusters) מנוהלי קונטיינרים, או כל סביבה שמריצה pods באופן דינמי לפי דרישה, יכולים כעת להתאים את הפרוטוקול לתשתית שלהם.
מה יוצא משימוש
שלוש תתי-מערכות שהסתמכו על חיבורים קבועים (persistent connections) מוגדרות רשמית כ-deprecated:
- Sampling – בגרסה 1, שרת יכול היה לבקש מהלקוח ליצור טקסט, דפוס שדרש סשן פתוח. גרסה 2 מצפה מהשרת לקרוא ישירות לספק ה-large-language-model או להשתמש בדפוס
InputRequiredResult, שבו הלקוח מספק את הקלט החסר בבקשה המשכית. - Roots – בעבר, לקוחות שלחו URIs שהגבילו את תצוגת המשאבים החיצוניים של השרת. הגישה החדשה מעבירה את ה-URIs הללו כפרמטרים של כלי (tool parameters) או מטמיעה אותם בשדות ה-resource של הבקשה, ובכך מסירה את שלב המשא ומתן הנפרד של "roots".
- Logging – כותרות ה-logging ברמת הפרוטוקול נעלמות. כדאי לכתוב ל-
stderrלצורך debugging מקומי או לאמץ את OpenTelemetry לצורך observability בסביבת ייצור (production).
חלון ה-deprecation נמשך שנה אחת. תכונות מיושנות (deprecated) ימשיכו לעבוד במהלך תקופה זו, מה שנותן לצוותים זמן לבצע refactor לפני שהפרוטוקול ידחה אותן.
מה חדש מלבד statelessness
MCP v2 מוסיף שתי הרחבות (extensions) רשמיות:
- MCP Apps – דרך קלה לתאר ממשקי משתמש המרונדרים בשרת (server-rendered) שהפרוטוקול יכול להפעיל.
- Tasks – דפוס לטיפול בפעולות ארוכות טווח שעשויות להשתרע על פני מספר מחזורי בקשה-תגובה.
שתי ההרחבות מניחות מודל בקשה stateless ונמנעות מניהול מצב סשן (session state) נסתר.
סיכונים ונקודות למחשבה
השינוי אינו שדרוג מסוג plug-and-play. ה-SDKs של גרסה 2 עדיין בגרסת beta, וה-APIs הציבוריים שלהם עשויים להשתנות לפני שתצא גרסה יציבה. עבור עומסי עבודה בסביבת production שאינם יכולים להרשות לעצמם שינויים שוברים (breaking changes), הישארו עם ה-SDK היציב של גרסה 1 עד שה-SDK של גרסה 2 יצא מגרסת ה-beta.
מפתחים צריכים גם לבצע audit לקוד הקיים עבור אחת משלוש תתי-המערכות המיושנות.
מפת דרכים פרגמטית להגירה
- בצעו audit כבר היום – סרקו את השירותים שלכם כדי לזהות שימוש ב-handshake, ב-
Mcp-Session-Id, בקריאות sampling, ב-roots URIs ובלוגים ברמת הפרוטוקול. זהו קוד שעלול להישבר תחת מודל stateless. - בצעו בדיקות על צומת (node) לא קריטי – כאשר יצא SDK יציב של גרסה 2, הקימו שרת sandbox, כוונו אותו ללקוח בדיקה, וודאו שכל שדות ה-meta הנדרשים קיימים ומפורשים כראוי.
- הגירה מלאה לפני המועד האחרון – השלימו את המעבר בכל צמתי ה-production לפני סיום תקופת החסד בת השנה, כדי למנוע דחיות בזמן ריצה (runtime rejections).
מה לעקוב אחריו בהמשך
- שחרור SDK יציב – ה-SDKs בגרסת ה-beta יוקפאו ותפורסם חבילה יציבה עם גרסה (versioned). גרסה זו תהיה היעד הבטוח לכל פריסה קריטית.
המעבר ידרוש שינויי קוד ותקופה קצרה של ניסויים עם beta-SDK, אך התמורה היא נקודת אינטגרציה נקייה וניתנת להרחבה (scalable) יותר עבור כל אפליקציה מבוססת LLM.
שורה תחתונה: אם ה-stack שלכם עדיין נשען על handshakes של MCP או על שלוש תתי-המערכות המיושנות, התחילו ב-audit כבר עכשיו; תקופת חסד של שנה היא נדיבה, אך העלות האמיתית היא מאמץ ה-refactor, ולא המועד האחרון.
