MCP ورژن 2، 28 جولائی 2026 کو لائیو ہو جائے گا۔ یہ ہر handshake، session-ID header، اور ان تینوں legacy subsystems کو ختم کر رہا ہے جنہوں نے Model Context Protocol (MCP) کو sticky-session servers کے ساتھ جوڑ رکھا تھا۔ یہ پروٹوکول مکمل طور پر stateless ہو جائے گا، اس لیے کوئی بھی autoscaled یا serverless instance کلائنٹ اسٹیٹ کو محفوظ کیے بغیر کسی بھی درخواست کو سنبھال سکتا ہے۔

یہ تبدیلی کیوں اہم ہے

MCP v1 میں کلائنٹ کے لیے initialize handshake کے ساتھ سیشن شروع کرنا لازمی تھا؛ اس کے بعد سرور ایک Mcp-Session-Id تفویض کرتا تھا۔ بعد میں کی جانے والی ہر کال میں اس header کا ہونا ضروری تھا، جس کی وجہ سے صارف ایک ہی backend node تک محدود ہو جاتا تھا۔ Load balancers کو session affinity نافذ کرنی پڑتی تھی، جس سے latency اور آپریشنل رکاوٹیں پیدا ہوتی تھیں۔

Statelessness اس رکاوٹ کو ختم کر دیتی ہے۔ اب تمام context مخصوص meta fields میں موجود ہوتا ہے جو ہر HTTP call کے ساتھ سفر کرتے ہیں۔ ایک درخواست کسی بھی instance پر پہنچ سکتی ہے، اسے پراسیس کیا جا سکتا ہے، اور جواب بھیجے جاتے ہی اس instance کو ختم کیا جا سکتا ہے۔ وہ ٹیمیں جو serverless platforms، container-orchestrated clusters، یا کسی بھی ایسے ماحول کا استعمال کر رہی ہیں جہاں ضرورت کے مطابق pods کو بنایا اور ختم کیا جاتا ہے، اب اس پروٹوکول کو اپنے انفراسٹرکچر کے مطابق ڈھال سکتی ہیں۔

کن چیزوں کو ختم کیا جا رہا ہے

تین subsystems جو مستقل کنکشنز (persistent connections) پر انحصار کرتے تھے، انہیں باضابطہ طور پر deprecated قرار دے دیا گیا ہے:

  • Sampling – v1 میں، ایک سرور کلائنٹ سے ٹیکسٹ تیار کرنے کے لیے کہہ سکتا تھا، یہ ایک ایسا طریقہ تھا جس کے لیے کھلا سیشن (open session) درکار تھا۔ v2 میں یہ توقع کی جاتی ہے کہ سرور براہ راست large-language-model provider کو کال کرے یا InputRequiredResult پیٹرن کا استعمال کرے، جہاں کلائنٹ ایک فالو اپ درخواست میں مطلوبہ ان پٹ فراہم کرتا ہے۔
  • Roots – پہلے، کلائنٹس ایسے URIs بھیجتے تھے جو بیرونی وسائل (external resources) کے بارے میں سرور کے ویو کو محدود کر دیتے تھے۔ نیا طریقہ ان URIs کو tool parameters کے طور پر پاس کرتا ہے یا انہیں درخواست کے resource fields میں شامل کر دیتا ہے، جس سے علیحدہ "roots" negotiation کا مرحلہ ختم ہو جاتا ہے۔
  • Logging – پروٹوکول لیول کے logging headers ختم ہو رہے ہیں۔ مقامی ڈیبگنگ (local debugging) کے لیے stderr پر لکھیں یا پروڈکشن observability کے لیے OpenTelemetry اپنائیں۔

Deprecation کی مدت ایک سال ہے۔ اس مدت کے دوران deprecated فیچرز کام کرتے رہیں گے، جس سے ٹیموں کو پروٹوکول کی طرف سے انہیں مسترد کیے جانے سے پہلے ریفیکٹر (refactor) کرنے کا وقت ملے گا۔

Statelessness کے علاوہ نیا کیا ہے

MCP v2 دو آفیشل extensions شامل کرتا ہے:

  • MCP Apps – سرور پر رینڈر ہونے والے یوزر انٹرفیس (user interfaces) کو بیان کرنے کا ایک ہلکا پھلکا طریقہ جسے پروٹوکول کال کر سکتا ہے۔
  • Tasks – طویل عرصے تک چلنے والے آپریشنز (long-running operations) کو سنبھالنے کا ایک پیٹرن جو متعدد request-response سائیکلز تک پھیل سکتے ہیں۔

دونوں extensions stateless request ماڈل پر مبنی ہیں اور چھپے ہوئے session state سے بچتے ہیں۔

خطرات اور متبادل نکات

یہ تبدیلی محض ایک "plug-and-play" اپ گریڈ نہیں ہے۔ v2 SDKs ابھی بیٹا (beta) مرحلے میں ہیں، اور ایک مستحکم ریلیز سے پہلے ان کے عوامی APIs تبدیل ہو سکتے ہیں۔ ان پروڈکشن ورک لوڈز کے لیے جو بریکنگ تبدیلیاں (breaking changes) برداشت نہیں کر سکتے، v2 SDK کے مستحکم ہونے تک stable v1 SDK پر ہی رہیں۔

ڈویلپرز کو تینوں deprecated subsystems میں سے کسی کے بھی استعمال کے لیے موجودہ کوڈ کا آڈٹ کرنے کی ضرورت ہے۔

ایک عملی مائیگریشن روڈ میپ

  1. آج ہی آڈٹ کریں – اپنے سروسز میں handshake، Mcp-Session-Id، sampling calls، roots URIs، اور پروٹوکول لیول کی logging کے استعمال کو اسکین کریں۔ اس کوڈ کی نشاندہی کریں جو stateless ماڈل کے تحت کام کرنا چھوڑ دے گا۔
  2. غیر اہم نوڈ پر ٹیسٹ کریں – جب ایک مستحکم v2 SDK ریلیز ہو جائے، تو ایک sandbox server بنائیں، اسے ایک ٹیسٹ کلائنٹ پر پوائنٹ کریں، اور تصدیق کریں کہ تمام مطلوبہ meta fields موجود ہیں اور ان کی صحیح تشریح کی گئی ہے۔
  3. ڈیڈ لائن سے پہلے مکمل مائیگریشن – runtime ریجیکشن سے بچنے کے لیے ایک سال کی رعایت کی مدت ختم ہونے سے پہلے تمام پروڈکشن نوڈز پر تبدیلی مکمل کر لیں۔

آگے کیا نظر آئے گا

  • مستحکم SDK ریلیز – بیٹا SDKs کو فریز کر دیا جائے گا اور ایک ورژن شدہ مستحکم پیکج شائع کیا جائے گا۔ وہ ورژن کسی بھی اہم ڈیپلائمنٹ کے لیے محفوظ ہدف ہوگا۔

اس منتقلی کے لیے کوڈ میں تبدیلیوں اور بیٹا-SDK کے تجرباتی دور کی ضرورت ہوگی، لیکن اس کا فائدہ کسی بھی LLM پر مبنی ایپلی کیشن کے لیے ایک صاف ستھرا اور زیادہ اسکیل ایبل (scalable) انٹیگریشن پوائنٹ ہوگا۔

خلاصہ: اگر آپ کا اسٹیک اب بھی MCP handshakes یا ان تینوں deprecated subsystems پر منحصر ہے، تو آڈٹ ابھی شروع کریں؛ ایک سال کی رعایت کافی ہے، لیکن اصل قیمت ریفیکٹر کرنے کی کوشش ہے، ڈیڈ لائن نہیں۔