تم إهمال MCP SSE: قم بالترحيل إلى Streamable HTTP قبل أن ينقطع الخادم الخاص بك
وصل نقل MCP SSE إلى نهاية العمر في 1 أبريل 2026. قم بالترحيل إلى HTTP القابل للتدفق باستخدام معالج عديم الحالة، ومثيل جديد لكل طلب، ومسار استئناف الجلسة؛ كود لعمال Node وPython وCloudflare.
وصل نقل الأحداث التي يرسلها خادم MCP إلى نهاية عمره في 1 أبريل 2026. ولا تزال مكتبات العملاء
دعم SSE للتوافق مع الإصدارات السابقة، ولكنه الإصدار الثانوي التالي من البروتوكول الأساسي
بإزالته، ويرفض سجل MCP العام الآن قوائم SSE الجديدة فقط. إذا كان خادم MCP الخاص بك
لا تزال الإجابات على /sse و /messages، لديك نافذة الهجرة، لا
نافذة إلى الأبد.
يحتفظ SSE باتصال TCP واحد مفتوح لكل عميل. نسختان من خادم MCP الخاص بك خلف التحميل أنتج الموازن جلسات انقسام الدماغ. يتطلب القياس الأفقي توجيهًا ثابتًا أكثر من غيره لا يمكن لموازنات التحميل المُدارة التعبير بشكل نظيف. يستخدم HTTP القابل للتدفق استجابة الطلب القياسية دورات مع تدفقات اختيارية قابلة للاستئناف، مما يعني أن أي مثيل يمكنه الإجابة على أي طلب و كل CDN في العالم يعرف بالفعل كيفية تخزينه مؤقتًا وتوجيهه.
إليك مسار الترحيل الكامل: رمز الخادم قبل وبعد، ونمط مخزن البيانات لـ
أدوات ذات حالة، وتنفيذ Cloudflare Workers، ومكافئ FastAPI، و
.well-known ملف بيانات التعريف حتى يتمكن العملاء من اكتشاف الخادم الخاص بك دون فتح ملف
الاتصال أولا.
الخطوة 1: حذف معالج SSE
الرمز القديم يبدو هكذا. طريقان، خريطة الجلسة المحفوظة في ذاكرة العملية، والنقل الذي يبقي الاستجابة مفتوحة حتى قطع اتصال العميل:
تظهر كل مشكلة تتعلق بـ SSE في هذا المقتطف. ال transports الخريطة فقط
مرئية لعملية واحدة؛ أعد تشغيل الخادم وتموت كل جلسة مفتوحة؛ مقياس أفقيا و
وصل نصف عملائك إلى خادم لم يسمع عنهم من قبل. مزق بها.
الخطوة 2: تثبيت HTTP القابل للتدفق
المعالج الجديد أصغر. مسار واحد يجيب على كل من GET وPOST؛ كل طلب يدور بشكل جديد زوج الخادم والنقل؛ يقوم جامع البيانات المهملة بالتنظيف عند إغلاق الاستجابة:
ثلاثة مفاتيح مهمة. sessionIdGenerator: undefined يختار عدم تثبيت الجلسة
النقل عديم الجنسية تمامًا. enableJsonResponse: true تقوم بإرجاع JSON واحد
body للأدوات التي لا تصدر تقدمًا، مما يحافظ على المسار سريعًا وقابلاً للتخزين المؤقت. ال
res.on("close") يمنع التنظيف تسرب مأخذ التوصيل عند قطع اتصال العميل المبكر.
الخطوة 3: نقل حالة الجلسة من ذاكرة العملية
المعالج عديم الجنسية لا يعني منتجًا عديم الجنسية. لا تزال الأدوات طويلة الأمد بحاجة إلى الإبلاغ عنها التقدم عبر طلبات متعددة. ضع هذه الحالة في Redis، أو كائن متين، أو DynamoDB، أو بوستجرس. اقرأها عند الدخول واكتبها عند الخروج:
ال Mcp-Session-Id يحدد الرأس، إذا كان موجودًا، الجلسة المنطقية؛ المعالج
يستخدمه كمفتاح مخزن البيانات. أ Last-Event-Id رأس من العميل يتيح
يستأنف النقل الدفق بعد قطع الاتصال دون إعادة تشغيل استدعاء الأداة. كلا الرأسين
اختياري؛ يمكن للأدوات عديمة الجنسية أن تتجاهلها تمامًا.
الخطوة 4: النشر بدون خادم
يفتح HTTP القابل للتدفق الشيء الذي حظره SSE: تشغيل خادم MCP على Cloudflare Workers، AWS Lambda، أو وظائف Vercel، أو آلات الطيران. هنا هو خادم Cloudflare Workers الكامل في 40 الخطوط، لتصل إلى نقطة نهاية بحث IP الخاص بـ Botoi كأداة نموذجية واحدة:
لا توجد خريطة للجلسة، ولا مؤقتات في الخلفية، ولا توجد أصوات مستمرة. العامل يدور عند الطلب، فيجيب الطلب، ويغلق. يتعامل عامل واحد مع أي عدد من العملاء المتوازيين نظرًا لوجود لا توجد حالة قابلة للتغيير مشتركة. يبدأ التشغيل البارد لخوادم MCP على مدار الساعة العمالية في أقل من 5 مللي ثانية بالنسبة لمعظم الأشخاص أسطح الأدوات؛ على Lambda تكون درجة حرارتها باردة من 50 إلى 200 مللي ثانية.
الخطوة 5: ترحيل بايثون باستخدام FastAPI
خوادم بايثون لها نفس الشكل. يقوم معالج FastAPI بإنشاء خادم MCP لكل طلب ومندوبين النقل :
النمط هو نفسه عبر اللغات: إنشاء خادم لكل طلب، وتسليم طلب HTTP إلى النقل، إرجاع ما ينتجه النقل. تختلف أوقات تشغيل اللغة؛ الهندسة المعمارية لا.
الخطوة 6: نشر بطاقة الخادم للاكتشاف
إحدى الفجوات التي تسدها خارطة الطريق لعام 2026 هي الاكتشاف دون اتصال. السجلات و
كانت برامج الزحف تحتاج إلى مصافحة مباشرة لمعرفة ما يفعله خادمك. قم بتقديم مستند JSON في
/.well-known/mcp/server-card.json ويمكن للعملاء التعرف على عنوان URL الخاص بالنقل،
نظام المصادقة، ومجموعة القدرات قبل الاتصال:
هذه هي القطعة التي تتيح لمنصات الوكلاء فهرسة خادمك دون التحقق منه. مصادقة0 ل يستهلك كل من Agents وCloudflare Agent Cloud والسجل العام لـ MCP هذا التنسيق؛ إضافته مرة واحدة ويصبح الخادم الخاص بك قابلاً للقائمة.
التحقق من الهجرة
قبل أن تقوم بقلب DNS، قم بتشغيل المفتش أو قم بالالتفاف مقابل نقطة النهاية الجديدة. السطوح الأولى أ واجهة المستخدم مع كل أداة وموارد مكشوفة؛ والثاني يؤكد أن تنسيق السلك صحيح:
ناجحة tools/list الاستجابة مع كتالوج الأدوات الكامل الخاص بك تعني أن الخادم
يعيش. إذا كان الرد يعود كما text/event-stream عندما تتوقع JSON، فإن
النقل لديه enableJsonResponse عاجز؛ اقلب العلم.
استمر في تشغيل كلا الوسيلة على مسارات مختلفة لمدة أسبوع بعد عملية التحويل:
/sse مثل المستمع القديم /mcp كالجديد. تنبعث منها سطر سجل كل
الوقت الذي يتصل به العميل /sse مع وكيل المستخدم الخاص به. عندما يصبح السجل هادئًا، أنت
يمكن حذف المعالج القديم. قامت معظم مكتبات العملاء بشحن دعم HTTP القابل للتدفق بين
ديسمبر 2025 وفبراير 2026؛ نتوقع ذيلًا طويلًا من عمليات تثبيت Cursor وClaude Desktop القديمة.
ما الذي يبقى على حاله، ما الذي يتغير
| هَم | النقل SSE | HTTP قابل للتدفق |
|---|---|---|
| نموذج الاتصال | واحدة طويلة العمر لكل عميل | استجابة الطلب، دفق اختياري |
| موازنة التحميل | جلسات لزجة المطلوبة | أي مثيل يجيب على أي طلب |
| حالة الجلسة | الذاكرة الجارية | مخزن البيانات مرتبط بمعرف الجلسة |
| تناسب بدون خادم | محظور بسبب حدود مدة الاتصال | محلي |
| تدفق التقدم | تقصير | الاشتراك عبر قبول الرأس |
| اكتشاف | المصافحة الحية | /.well-known/mcp/server-card.json |
| استدعاء الأداة | JSON-RPC عبر إطارات SSE | JSON-RPC عبر نص HTTP |
الوجبات السريعة الرئيسية
- تم إهمال SSE، ولم تتم إزالته. ولا يزال العملاء يقبلونها حتى عام 2026، ولكنها جديدة تتطلب الخوادم وقوائم التسجيل HTTP القابل للتدفق.
- بناء جديد لكل طلب. لا توجد خرائط جلسة قيد التشغيل؛ دع كائن الخادم يعيش فقط ما دام يستغرق RPC.
-
دفع الحالة إلى مخزن البيانات. Redis أو الكائنات المعمرة أو Postgres ذات المفاتيح على
Mcp-Session-Idheader. - لقد عاد Serverless إلى الطاولة. عمال Cloudflare، لامدا، فيرسيل وظائف؛ ولم يدعم أي منهم الاقتصاد الاجتماعي والتضامني طويل الأمد بشكل جيد.
-
نشر بطاقة الخادم.
/.well-known/mcp/server-card.jsonيجعل يمكن اكتشاف الخادم الخاص بك دون اتصال.
يتم شحن خادم MCP الخاص بـ Botoi على HTTP القابل للتدفق على api.botoi.com/mcp مع 49 أداة منسقة عبر البحث عن IP، والتحقق من البريد الإلكتروني، وDNS، والتجزئة، وتوقيع JWT، وQR جيل. المصدر مرخص من معهد ماساتشوستس للتكنولوجيا ويعكس النمط أعلاه؛ قراءة مستندات الإعداد ل تكوينات Claude Desktop وClaude Code وCursor وVS Code وWindsurf.
FAQ
- هل تمت إزالة MCP SSE أم تم إهماله فقط؟
- تم الإيقاف اعتبارًا من 1 أبريل 2026؛ لا يزال دعم وقت التشغيل موجودًا في مكتبات العملاء للتوافق مع الإصدارات السابقة، لكن خوادم MCP الجديدة وقوائم التسجيل تتطلب HTTP قابلاً للتدفق. تقوم خريطة الطريق لعام 2026 بإزالة SSE من البروتوكول الأساسي بالكامل في الإصدار الثانوي التالي؛ ابدأ عملية الترحيل الآن بدلاً من الإزالة.
- لماذا أسقط MCP SSE؟
- احتفظت SSE باتصال TCP واحد مفتوح لكل عميل وجعلت القياس الأفقي مؤلمًا. أنتج خادمان SSE متطابقان خلف موازن تحميل دائري روبن جلسات تقسيم الدماغ: كانت حالة الأداة المخزنة على الخادم A غير مرئية للخادم B. يستخدم HTTP القابل للتدفق دورات استجابة للطلبات القصيرة مع تدفقات اختيارية قابلة للاستئناف، لذا تقوم موازنات التحميل وشبكات CDN بتوجيه كل طلب دون تثبيت العميل على مثيل.
- ما هو المثيل الجديد لكل طلب؟
- يقوم كل طلب وارد بإنشاء كائن خادم MCP جديد، ويتعامل مع RPC، ويتخلص من المثيل. لا توجد حالة في الذاكرة بين الطلبات. الحالة التي تحتاج إلى الاستمرار (رموز التقدم، جلسات الأداة) موجودة في مخزن البيانات الذي يقرأه المعالج عند الإدخال ويكتب عند الخروج. يتيح لك ذلك تشغيل نفس الخادم على نظام أساسي بدون خادم مثل Cloudflare Workers أو AWS Lambda دون الحد الأقصى لمدة الاتصال البالغة 15 دقيقة.
- هل ما زلت بحاجة إلى WebSockets لإخراج أداة البث؟
- لا، يتضمن HTTP القابل للتدفق دفقًا اختياريًا بنمط SSE داخل استجابة POST القياسية للأدوات التي تصدر نتائج جزئية. يتمثل الاختلاف عن SSE القديم في أن الدفق يعيش داخل طلب HTTP واحد وينتهي باستدعاء الأداة. لا تحتفظ بمقبس مفتوح بين استدعاءات الأداة.
- كيف يمكنني اختبار خادم HTTP قابل للتدفق محليًا؟
- استخدم مفتش MCP الرسمي (npx @modelcontextprotocol/inspector) الذي يتحدث الآن كلا وسيلة النقل. أو قم بتجعيد نقطة النهاية باستخدام نص JSON-RPC وقبول: رأس النص/دفق الحدث؛ سترى إما استجابة JSON واحدة أو تدفق حدث اعتمادًا على ما إذا كانت الأداة تصدر التقدم أم لا. استئناف الجلسة قابل للاختبار باستخدام رؤوس Mcp-Session-Id وLast-Event-Id.
ابدأ البناء مع botoi
أكثر من 150 نقطة نهاية API للبحث ومعالجة النصوص وتوليد الصور وأدوات المطورين. باقة مجانية، بدون بطاقة ائتمان.