MCP प्रोटोकॉल टीम ने 28 जुलाई 2026 को एक नया वर्ज़न जारी किया है जो प्रोटोकॉल-लेवल सेशन को हटा देता है और हर रिक्वेस्ट को stateless बनाने के लिए मजबूर करता है। यदि आप MCP क्लाइंट, सर्वर या एजेंट चलाते हैं, तो आपको उस कोड को फिर से लिखना होगा जो एक persistent session ID मानकर चलता है—वरना आपको खराब रूटिंग, कैश मिस और अनियंत्रित बैकग्राउंड वर्क का सामना करना पड़ेगा।

यह बदलाव क्यों महत्वपूर्ण है

पहले MCP को एक हैंडशेक की आवश्यकता होती थी जो एक सेशन आइडेंटिफायर (session identifier) बनाता था। डाउनस्ट्रीम सर्विसेज उस आईडी पर निर्भर रहती थीं ताकि यह माना जा सके कि रिक्वेस्ट की एक श्रृंखला एक ही प्रोसेस पर पहुंचेगी, लोड बैलेंसर स्टिकी रूटिंग (sticky routing) का उपयोग कर सकें, और मेमोरी में प्रति-सेशन डेटा स्टोर किया जा सके। जुलाई का यह रिलीज़ उस मॉडल को एक शुद्ध रिक्वेस्ट-रिस्पॉन्स फ्लो (request-response flow) से बदल देता है। अब सेशन खोने की चिंता किए बिना सर्वर को जोड़ा या हटाया जा सकता है। प्रोटोकॉल अब कॉन्टेक्स्ट (context) को सुरक्षित नहीं रखता; अब एप्लिकेशन को यह करना होगा।

जो टीमें पुराना सेशन-केंद्रित (session-centric) कोड बनाए रखेंगी, वे देखेंगी कि रिक्वेस्ट गलत इंस्टेंस पर जा रही हैं, कैश मिस हो रहे हैं, और बैकग्राउंड जॉब्स जमा होते जा रहे हैं। जो टीमें stateless पैटर्न को अपनाती हैं, वे नॉन-स्टिकी लोड बैलेंसर के पीछे MCP चला सकती हैं और पूरी रिक्वेस्ट चेन में बेहतर ऑब्जर्वेबिलिटी (observability) प्राप्त कर सकती हैं।

वास्तव में क्या अलग है

  • प्रोटोकॉल लाइफसाइकिल (Protocol lifecycle) – हैंडशेक और सेशन आईडी खत्म हो जाते हैं। हर रिक्वेस्ट में वह सारी जानकारी होनी चाहिए जिसकी सर्वर को आवश्यकता है; इस बात की कोई गारंटी नहीं है कि अगला रिक्वेस्ट उसी प्रोसेस पर पहुंचेगा।
  • HTTP रूटिंग – गेटवे अब यह तय करने के लिए कि रिक्वेस्ट कहाँ भेजनी है, दो नए हेडर, Mcp-Method और Mcp-Name को पढ़ते हैं। सेशन-कुकी रूटिंग अब काम नहीं करेगी।
  • कैशिंग (Caching) – स्पेसिफिकेशन रीड्स (reads) के लिए ttlMs (मिलीसेकंड में time-to-live) और cacheScope फ़ील्ड जोड़ता है। आप तय करते हैं कि क्या पुराना (stale) डेटा स्वीकार्य है और उसी के अनुसार कैश कॉन्फ़िगर करते हैं।
  • ऑब्जर्वेबिलिटी (Observability) – एक _meta ब्लॉक अब W3C Trace Context पेलोड की अपेक्षा करता है, जिससे ट्रेसिंग सिस्टम एज गेटवे, टूलिंग और बैकएंड वर्क को एक सिंगल एंड-टू-एंड ट्रेस में जोड़ सकते हैं।
  • कंपोजिशन (Composition) – एक्सटेंशन को औपचारिक रूप दिया गया है; कोर स्पेसिफिकेशन को छुए बिना नई क्षमताएं जोड़ी जा सकती हैं, जो प्लग-इन स्टाइल आर्किटेक्चर को बढ़ावा देती हैं।
  • लंबे समय तक चलने वाला काम (Long-running work) – उन कार्यों के लिए साधारण रिक्वेस्ट/रिस्पॉन्स अब पर्याप्त नहीं है जो मिनटों या घंटों तक चलते हैं। प्रोटोकॉल अब एसिंक्रोनस वर्क (asynchronous work) के लिए एक Task ऑब्जेक्ट को परिभाषित करता है, जो लाइफसाइकिल कंट्रोल के साथ आता है।

लेगेसी कोड में छिपे जोखिम

एक त्वरित ऑडिट अक्सर ऐसे पैटर्न का पता लगाता है जो स्टेटफुलनेस (statefulness) मानकर चलते हैं:

  • सेशन आईडी द्वारा की (keyed) इन-मेमोरी मैप्स।
  • स्टिकी सेशन्स के लिए कॉन्फ़िगर किए गए लोड बैलेंसर।
  • स्टार्टअप रूटीन जो प्रति-सेशन डेटा को लोकल मेमोरी में प्रीलोड करते हैं।
  • क्लीनअप लॉजिक जो सेशन समाप्त होने पर बिजनेस डेटा को डिलीट कर देता है।

यदि इनमें से कोई भी माइग्रेशन के बाद भी बना रहता है, तो लोड के दौरान सिस्टम डेटा खो देगा या रिसोर्स लीक (leak resources) कर देगा।

एक ठोस माइग्रेशन चेकलिस्ट

1. वर्तमान धारणाओं की सूची बनाएं (Inventory current assumptions)

हर उस जगह को मैप करें जहाँ आपका कोड सेशन आईडी, स्टिकी-रूटिंग नियम, या प्रोसेस-लोकल कैश का उपयोग करता है। दस्तावेज़ बनाएं कि कौन से घटक (components) प्रत्येक पर निर्भर हैं।

2. पहचान को स्पष्ट बनाएं (Make identity explicit)

हर रिक्वेस्ट पेलोड या हेडर में टेनेंट आईडी, रन आईडी और यूजर आईडी जोड़ें। इन आइडेंटिफायर्स को ऑथराइजेशन और डेटा पार्टीशनिंग के लिए 'सोर्स ऑफ ट्रुथ' के रूप में मानें।

3. रूटिंग कॉन्फ़िगरेशन अपडेट करें (Update routing configuration)

सेशन-आधारित रूटिंग को उन नियमों से बदलें जो Mcp-Method और Mcp-Name को पढ़ते हैं। नॉन-स्टिकी लोड बैलेंसर के पीछे एक न्यूनतम दो-इंस्टेंस डिप्लॉयमेंट के साथ नए गेटवे लॉजिक का परीक्षण करें।

4. कैशिंग लॉजिक को रिफैक्टर करें (Refactor caching logic)

नए ttlMs और cacheScope फ़ील्ड पर स्विच करें। यह देखने के लिए परफॉरमेंस टेस्ट चलाएं कि विभिन्न TTL मान हिट रेट और फ्रेशनेस आवश्यकताओं को कैसे प्रभावित करते हैं।

एंड-टू-एंड ट्रेसिंग सक्षम करें: _meta ब्लॉक को W3C Trace Context हेडर के साथ भरें। सत्यापित करें कि अब ट्रेसेस बिना किसी अंतराल के एज गेटवे से आपके बैकएंड सेवाओं तक प्रवाहित हो रहे हैं।

एसिंक्रोनस वर्क के लिए Task मॉडल अपनाएं: परिभाषित करें कि कौन टास्क बना सकता है, अधिकतम रनटाइम सेट करें, और कतार (queue) की सीमाएं लागू करें। स्पष्ट कैंसलेशन और रिट्राय नीतियां जोड़ें, और यह प्रतिबंधित करें कि टास्क पेंडिंग होने के दौरान एक एजेंट क्या कर सकता है।

28 जुलाई से पहले SDK और क्लाइंट लाइब्रेरी रिलीज़ नोट्स की समीक्षा करें।

विफलता पथों (failure paths) को लक्षित करने वाले रिग्रेशन सूट्स चलाएं: हैप्पी-पाथ (happy-path) टेस्ट के अलावा, गायब हेडर, एक्सपायर्ड टास्क और खराब (malformed) कैश डायरेक्टिव्स को इंजेक्ट करके देखें। पुष्टि करें कि सिस्टम सुचारू रूप से डिग्रेड (degrade gracefully) होता है।

आगे क्या देखें

जो टीमें सुरक्षित रूप से माइग्रेट करेंगी, वे केवल हैप्पी-पाथ ही नहीं, बल्कि सीमाओं (boundaries) का भी परीक्षण करेंगी। 28 जुलाई के बाद भी जो कोई भी प्रोडक्शन डिप्लॉयमेंट सेशन आईडी की अपेक्षा करेगा, वह नए MCP सर्वर के साथ इंटरऑपरेट करने में विफल हो सकता है।