الانتقال إلى المحتوى الرئيسي

نظرة عامة

توفر Server-Sent Events (SSE) طريقة قياسية لخادم الويب لإرسال تحديثات إلى العميل عبر اتصال HTTP واحد طويل الأمد. في سياق MCP، تُستخدم SSE للخوادم البعيدة لبث البيانات (مثل استجابات الأدوات) إلى تطبيق CrewAI في الوقت الفعلي.

المفاهيم الرئيسية

  • خوادم بعيدة: SSE مناسب لخوادم MCP المستضافة عن بُعد.
  • بث أحادي الاتجاه: عادةً ما يكون SSE قناة اتصال أحادية الاتجاه من الخادم إلى العميل.
  • إعداد MCPServerAdapter: لـ SSE، ستوفر عنوان URL الخادم وتحدد نوع النقل.

الاتصال عبر SSE

يمكنك الاتصال بخادم MCP المبني على SSE باستخدام نهجين رئيسيين لإدارة دورة حياة الاتصال:

1. اتصال مُدار بالكامل (الموصى به)

استخدام مدير سياق Python (تعليمة with) هو النهج الموصى به. يتعامل تلقائياً مع إنشاء وإغلاق الاتصال بخادم MCP SSE.
استبدل "http://localhost:8000/sse" بعنوان URL الفعلي لخادم MCP SSE الخاص بك.

2. دورة حياة اتصال يدوية

إذا كنت بحاجة إلى تحكم أدق، يمكنك إدارة دورة حياة اتصال MCPServerAdapter يدوياً.
يجب عليك استدعاء mcp_server_adapter.stop() لضمان إغلاق الاتصال وتحرير الموارد. يُوصى بشدة باستخدام كتلة try...finally.

اعتبارات أمان SSE

هجمات إعادة ربط DNS: يمكن أن تكون عمليات نقل SSE عرضة لهجمات إعادة ربط DNS إذا لم يكن خادم MCP مؤمناً بشكل صحيح. قد يسمح هذا لمواقع ويب خبيثة بالتفاعل مع خوادم MCP المحلية أو على الشبكة الداخلية.
للتخفيف من هذا الخطر:
  • يجب أن تتحقق تطبيقات خادم MCP من رؤوس Origin على اتصالات SSE الواردة.
  • عند تشغيل خوادم MCP SSE محلية للتطوير، اربط فقط بـ localhost (127.0.0.1) بدلاً من جميع واجهات الشبكة (0.0.0.0).
  • نفّذ مصادقة مناسبة لجميع اتصالات SSE إذا كشفت أدوات أو بيانات حساسة.
للحصول على نظرة شاملة على أفضل ممارسات الأمان، يرجى الرجوع إلى صفحة اعتبارات الأمان ووثائق أمان نقل MCP الرسمية.