بالتأكيد، إليك الترجمة العربية للنص مع الحفاظ على تنسيق Markdown وعدم ترجمة المصطلحات المتخصصة:ابدأ في بناء عميلك الخاص الذي يمكنه التكامل مع جميع خوادم Model Context Protocol (MCP).في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء عميل دردشة مدعوم بنموذج لغوي كبير (LLM) يتصل بخوادم Model Context Protocol (MCP). من المفيد أن تكون قد اطلعت على البدء السريع للخادم الذي يرشدك خلال أساسيات بناء خادمك الأول.Python#
متطلبات النظام#
قبل البدء، تأكد من أن نظامك يفي بهذه المتطلبات:جهاز كمبيوتر Mac أو Windows
أحدث إصدار من Python مثبت
إعداد بيئتك#
أولاً، قم بإنشاء مشروع Python جديد باستخدام uv
:إعداد مفتاح واجهة برمجة التطبيقات (API) الخاص بك#
قم بإنشاء ملف .env
لتخزينه:أضف .env
إلى .gitignore
الخاص بك:تأكد من الحفاظ على ANTHROPIC_API_KEY
الخاص بك آمنًا!إنشاء العميل#
الهيكل الأساسي للعميل#
أولاً، دعنا نقم بإعداد عمليات الاستيراد الخاصة بنا وإنشاء فئة العميل الأساسية:إدارة اتصال الخادم#
بعد ذلك، سنقوم بتنفيذ الطريقة للاتصال بخادم Model Context Protocol (MCP):منطق معالجة الاستعلام#
الآن دعنا نضيف الوظيفة الأساسية لمعالجة الاستعلامات والتعامل مع استدعاءات الأدوات:واجهة دردشة تفاعلية#
الآن سنضيف حلقة الدردشة ووظيفة التنظيف:نقطة الدخول الرئيسية#
أخيرًا، سنضيف منطق التنفيذ الرئيسي:يمكنك العثور على ملف client.py
الكامل هنا.المكونات الرئيسية المشروحة#
1. تهيئة العميل#
يتم تهيئة فئة MCPClient
بإدارة الجلسة وعملاء واجهة برمجة التطبيقات (API)
تستخدم AsyncExitStack
لإدارة الموارد المناسبة
تقوم بتكوين عميل Anthropic لتفاعلات Claude
2. اتصال الخادم#
يدعم خوادم Python و Node.js
يتحقق من صحة نوع البرنامج النصي للخادم
يقوم بإعداد قنوات اتصال مناسبة
يقوم بتهيئة الجلسة ويسرد الأدوات المتاحة
3. معالجة الاستعلام#
يتعامل مع استجابات Claude واستدعاءات الأدوات
يدير تدفق الرسائل بين Claude والأدوات
يجمع النتائج في استجابة متماسكة
4. واجهة تفاعلية#
يوفر واجهة سطر أوامر بسيطة
يتعامل مع إدخال المستخدم ويعرض الاستجابات
يتضمن معالجة أساسية للأخطاء
5. إدارة الموارد#
معالجة الأخطاء لمشاكل الاتصال
إجراءات إيقاف التشغيل السلس
نقاط التخصيص الشائعة#
1.
قم بتعديل process_query()
للتعامل مع أنواع أدوات معينة
أضف معالجة مخصصة للأخطاء لاستدعاءات الأدوات
قم بتنفيذ تنسيق استجابة خاص بالأداة
2.
خصص كيفية تنسيق نتائج الأدوات
أضف تصفية أو تحويل للاستجابة
3.
أضف واجهة مستخدم رسومية (GUI) أو واجهة ويب
قم بتنفيذ إخراج وحدة تحكم غني
أضف سجل الأوامر أو الإكمال التلقائي
تشغيل العميل#
لتشغيل عميلك مع أي خادم Model Context Protocol (MCP):إذا كنت تتابع البرنامج التعليمي للطقس من البداية السريعة للخادم، فقد يبدو الأمر كما يلي: python client.py .../weather/src/weather/server.py
3.
بدء جلسة دردشة تفاعلية حيث يمكنك:رؤية عمليات تنفيذ الأدوات
الحصول على استجابات من Claude
إليك مثال لما يجب أن يبدو عليه إذا تم الاتصال بخادم الطقس من البداية السريعة للخادم:كيف يعمل#
1.
يحصل العميل على قائمة الأدوات المتاحة من الخادم
2.
يتم إرسال استعلامك إلى Claude مع أوصاف الأدوات
3.
يقرر Claude الأدوات التي سيستخدمها (إن وجدت)
4.
يقوم العميل بتنفيذ أي استدعاءات أدوات مطلوبة من خلال الخادم
5.
يتم إرسال النتائج مرة أخرى إلى Claude
6.
يقدم Claude استجابة لغة طبيعية
أفضل الممارسات#
1.
قم دائمًا بتضمين استدعاءات الأدوات في كتل try-catch
تعامل بأمان مع مشاكل الاتصال
2.
استخدم AsyncExitStack
للتنظيف المناسب
أغلق الاتصالات عند الانتهاء
تعامل مع انقطاع اتصال الخادم
3.
قم بتخزين مفاتيح واجهة برمجة التطبيقات (API) بأمان في .env
تحقق من صحة استجابات الخادم
كن حذرًا بشأن أذونات الأدوات
استكشاف الأخطاء وإصلاحها#
مشاكل مسار الخادم#
تحقق جيدًا من أن المسار إلى البرنامج النصي للخادم الخاص بك صحيح
استخدم المسار المطلق إذا كان المسار النسبي لا يعمل
بالنس بة لمستخدمي Windows، تأكد من استخدام شرطات مائلة للأمام (/) أو شرطات مائلة للخلف مُهرَّبة (\) في المسار
تحقق من أن ملف الخادم يحتوي على الامتداد الصحيح (.py لـ Python أو .js لـ Node.js)
مثال على الاستخدام الصحيح للمسار:توقيت الاستجابة#
قد تستغرق الاستجابة الأولى ما يصل إلى 30 ثانية للعودة
هذا أمر طبيعي ويحدث أثناء: الاستجابات اللاحقة عادة ما تكون أسرع
لا تقاطع العملية خلال فترة الانتظار الأولية هذه
رسائل الخطأ الشائعة#
FileNotFoundError
: تحقق من مسار الخادم الخاص بك
Connection refused
: تأكد من أن الخادم قيد التشغيل وأن المسار صحيح
Tool execution failed
: تحقق من أن متغيرات البيئة المطلوبة للأداة قد تم تعيينها
Timeout error
: ضع في اعتبارك زيادة المهلة في تكوين العميل الخاص بك
Modified at 2025-03-12 10:29:50