أصدر فريق بروتوكول MCP نسخة جديدة في 28 يوليو 2026، والتي تلغي الجلسة على مستوى البروتوكول وتفرض أن يكون كل طلب عديم الحالة (stateless). إذا كنت تشغل عملاء (clients) أو خوادم (servers) أو وكلاء (agents) MCP، فيجب عليك إعادة كتابة الكود الذي يفترض وجود معرف جلسة مستمر—وإلا ستواجه مشاكل في التوجيه، وإخفاقات في التخزين المؤقت، وأعمالاً خلفية خارجة عن السيطرة.
لماذا يهم هذا التحول
كان MCP يتطلب سابقاً عملية "مصافحة" (handshake) تنتج معرف جلسة. واعتمدت الخدمات التابعة على هذا المعرف لافتراض أن سلسلة من الطلبات ستصل إلى نفس العملية، وللسماح لموازنات التحميل باستخدام التوجيه الثابت (sticky routing)، ولتخزين بيانات الجلسة في الذاكرة. النسخة الصادرة في يوليو تستبدل هذا النموذج بتدفق طلب-استجابة نقي. يمكن الآن إضافة خادم أو إزالته دون القلق بشأن فقدان الجلسات. لم يعد البروتوكول يحافظ على السياق؛ بل يجب على التطبيق القيام بذلك.
الفرق التي تحتفظ بالكود القديم المعتمد على الجلسة ستشهد انتقال الطلبات إلى مثيلات (instances) خاطئة، وفشل التخزين المؤقت، وتراكم المهام الخلفية. أما الفرق التي تتبنى نمط "عديم الحالة" (stateless) فيمكنها تشغيل MCP خلف موازنات تحميل غير ثابتة والحصول على قابلية مراقبة (observability) أدق عبر سلسلة الطلبات بأكملها.
ما الذي اختلف حقاً
- دورة حياة البروتوكول – تختفي عملية المصافحة ومعرف الجلسة. يجب أن يحمل كل طلب جميع المعلومات التي يحتاجها الخادم؛ فلا يوجد ضمان بأن الطلب التالي سيصل إلى نفس العملية.
- توجيه HTTP – تقرأ البوابات (gateways) الآن رأسين جديدين،
Mcp-MethodوMcp-Nameلتحديد مكان توجيه الطلب. لم يعد توجيه ملفات تعريف الارتباط الخاصة بالجلسة (session-cookie routing) يعمل. - التخزين المؤقت (Caching) – تضيف المواصفات حقول
ttlMs(وقت البقاء بالملي ثانية) وcacheScopeلعمليات القراءة. أنت من يقرر ما إذا كانت البيانات القديمة مقبولة ويقوم بتكوين التخزين المؤقت وفقاً لذلك. - قابلية المراقبة (Observability) – يتوقع كتلة
_metaالآن حمولة W3C Trace Context، مما يسمح لأنظمة التتبع بربط البوابات الطرفية، والأدوات، وأعمال الخلفية في تتبع واحد شامل (end-to-end trace). - التركيب (Composition) – تم إضفاء الطابع الرسمي على الامتدادات؛ حيث يمكن إضافة قدرات جديدة دون المساس بالمواصفات الأساسية، مما يشجع على بنية بأسلوب المكونات الإضافية (plug-in style).
- المهام طويلة الأمد – لم يعد نموذج الطلب/الاستجابة البسيط كافياً للمهام التي تستغرق دقائق أو ساعات. يحدد البروتوكول الآن كائن
Taskللعمل غير المتزامن، مع ضوابط كاملة لدورة الحياة.
المخاطر الكامنة في الكود القديم
غالباً ما يكشف التدقيق السريع عن أنماط تفترض وجود حالة (statefulness):
- خرائط الذاكرة (In-memory maps) المرتبطة بمعرفات الجلسة.
- موازنات التحميل المهيأة للجلسات الثابتة (sticky sessions).
- روتين التشغيل الذي يقوم بتحميل بيانات الجلسة مسبقاً في الذاكرة المحلية.
- منطق التنظيف الذي يحذف بيانات العمل عند انتهاء الجلسة.
إذا نجا أي من هذه الأنماط من عملية الهجرة، فسيفقد النظام البيانات أو يسرب الموارد تحت ضغط العمل.
قائمة مراجعة هجرة ملموسة
1. جرد الافتراضات الحالية
حدد كل مكان يلمس فيه الكود الخاص بك معرف الجلسة، أو قاعدة توجيه ثابتة، أو ذاكرة تخزين مؤقت محلية للعملية. وثّق المكونات التي تعتمد على كل منها.
2. جعل الهوية صريحة
أضف معرفات المستأجر (tenant IDs)، ومعرفات التشغيل (run IDs)، ومعرفات المستخدمين (user IDs) إلى كل حمولة طلب أو رأس (header). تعامل مع هذه المعرفات كمصدر للحقيقة للتفويض وتقسيم البيانات.
3. تحديث تكوين التوجيه
استبدل التوجيه القائم على الجلسة بقواعد تقرأ Mcp-Method و Mcp-Name. اختبر منطق البوابة الجديد باستخدام نشر بسيط يتكون من مثيلين خلف موازن تحميل غير ثابت.
4. إعادة هيكلة منطق التخزين المؤقت
انتقل إلى حقول ttlMs و cacheScope الجديدة. قم بإجراء اختبارات الأداء لمعرفة كيفية تأثير قيم TTL المختلفة على معدلات الإصابة (hit rates) ومتطلبات الحداثة.
5. تمكين التتبع الشامل (end-to-end tracing)
قم بتعبئة كتلة _meta برأس W3C Trace Context. تحقق من أن التتبعات تتدفق الآن من البوابة الطرفية عبر خدمات الخلفية الخاصة بك دون فجوات.
6. اعتماد نموذج Task للعمل غير المتزامن
حدد من يمكنه إنشاء مهمة، وضع حدوداً قصوى لأوقات التشغيل، وافرض قيوداً على الطوابير. أضف سياسات صريحة للإلغاء وإعادة المحاولة، وقيد ما يمكن للوكيل القيام به أثناء انتظار المهمة.
7. مراجعة ملاحظات إصدار SDK ومكتبات العميل
راجع ملاحظات الإصدار الخاصة بـ SDK ومكتبات العميل قبل 28 يوليو.
8. تشغيل مجموعات اختبار التراجع (regression suites)
قم بتشغيل مجموعات اختبار التراجع التي تستهدف مسارات الفشل: بالإضافة إلى اختبارات المسار السعيد (happy-path)، قم بحقن رؤوس مفقودة، ومهام منتهية الصلاحية، وتوجيهات تخزين مؤقت مشوهة. تأكد من أن النظام يتدهور بشكل تدريجي وسلس (degrades gracefully).
ما يجب مراقبته لاحقاً
الفرق التي تهاجر بأمان ستختبر الحدود، وليس فقط المسار السعيد. أي نشر في بيئة الإنتاج لا يزال يتوقع معرف جلسة بعد 28 يوليو قد يفشل في التفاعل مع خوادم MCP الجديدة.
