MCP بيستخدم معرف نصي بالشكل YYYY-MM-DD. التاريخ ده آخر يوم حصل فيه تغيير بيكسر التوافق، مش كل يوم فيه تحسين.
حالات المراجعة
- Draft: المواصفة لسه بتتشغل عليها، مش جاهزة للاستخدام.
- Current: الإصدار الحالي الجاهز، وممكن ياخد تعديلات متوافقة. الحالي 2026-07-28.
- Final: إصدارات قديمة مكتملة، مش هتتغير.
لما ميزة تتلغى
الميزة تفضل في المواصفة وهي Deprecated: لسه موجودة بس متجدولة للإزالة، ولازم يكون فيه مسار ترحيل (أو تقول إنه مش محتاج). بتفضل ١٢ شهر على الأقل، أو ٩٠ يوم على الأقل في استثناء الإزالة السريعة، قبل ما تبقى مؤهلة للشيل. بعدها ممكن تتشال في مراجعة جاية.
المسجل حاليًا في سجل الميزات الملغاة: Roots و Sampling و Logging.
المسار: نشطة، ثم ملغاة، ثم متشالة في المراجعة اللي بعد المدة.
التفاوض
كل ريكوست يعلن الإصدار في _meta بمفتاح io.modelcontextprotocol/protocolVersion. السيرفر يقبل أو يرفض كل ريكوست لوحده. على Streamable HTTP نفس القيمة بتتبعت كمان في هيدر MCP-Protocol-Version.
الكلاينت والسيرفر ممكن يدعموا كذا إصدار في نفس الوقت. لو السيرفر مش داعم الإصدار، يرجع UnsupportedProtocolVersionError وفيه الإصدارات المدعومة. الكلاينت يعيد بإصدار مشترك، أو يعرض خطأ لليوزر لو مفيش مشترك.
عايز تختار الإصدار من الأول؟ نادي server/discover. النداء إجباري على السيرفر واختياري للكلاينت.