العودة إلى الفهرس / موثوقية MCP
جعل استدعاءات أدوات MCP الطويلة تستجيب للإلغاء
مرّر الإلغاء من العميل إلى المهمة الطويلة ونظّف الموارد وأوقف العمل غير الضروري.
الهدف
عند إلغاء المستخدم لعملية أداة معلقة، أوقف الخادم سريعاً أو أنهها بأمان.
الخطوات
- حدّد مراحل الإدخال والإخراج أو الحساب الطويلة وعرّف الحالة الآمنة بعد الإلغاء. [mcp-cancel]
- في معالج
@mcp.tool()غير المتزامن ضع التنظيف فيfinallyوأحط التنظيف المنتظر بـanyio.move_on_after(5, shield=True). [mcp-cancel] - لأداة
defعادية تعمل في خيط، استدعِanyio.from_thread.check_cancelled()بين وحدات العمل؛ ويلغي العميل المهمة المنتظرة أو يترك مهلة القراءة تنتهي. [mcp-cancel] - لا تفعّل
json_response=Trueلاتصالات Streamable HTTP الحديثة أوstateless_http=Trueللقديمة؛ فكلاهما يمنع وصول الإلغاء إلى المعالج. [mcp-cancel] - ألغِ مهمة اختبار بطيئة وتحقق من توقف المعالج وتحرير الموارد ووضع علامة الإلغاء على النتيجة. [mcp-cancel]
طريقة التحقق
بعد الإلغاء يعمل تنظيف async داخل `finally` ضمن حد الخمس ثواني، وتخرج أداة sync عند الفحص، وتسمح إعدادات HTTP بتمرير الإلغاء.
معالجة الأعطال
إذا تم تجاهل الإلغاء، فتحقق من تمرير رمز الإلغاء إلى عمليات الإدخال والإخراج اللاحقة.
الصلاحيات
المتطلبات السابقة
- Python 3.10+ وMCP Python SDK المتوافق مع المراجعة المثبتة
الصلاحيات
- استخدم بيئة محلية أو معزولة؛ وطبّق أقل الصلاحيات والموافقة للبيانات الخارجية أو الآثار الجانبية
القيود
يختلف سلوك SDK باختلاف الإصدار. قارن المراجعة المثبتة بالوكيل أو العميل المستخدم، ثم راجع الاحتفاظ بالبيانات والتفويض والآثار الجانبية قبل الإنتاج.
المصدر الأصلي المثبت
- المستودع
- modelcontextprotocol/python-sdk
- مسار الملف
- docs/handlers/cancellation.md
- الإيداع المثبت
754254c08fe1c3eda18b69da3d336106fe8d72d6- تاريخ فحص المصدر
- 2026-10-14 · تمت المراجعة مقابل المصدر الأصلي المثبت
مقاييس المستودع
تعكس هذه القيم المستودع الأصلي كله، ولا تمثل إعجابات أو شعبية مهارة أو دليل منفرد.
- النجوم
- لم يُجمع
- التفرعات
- لم يُجمع
- وقت الرصد
- لم يُجمع
لا تتوفر لقطة مقاييس بعد.
الترخيص: MIT