Skip to content

Latest commit

 

History

History
171 lines (129 loc) · 7.48 KB

File metadata and controls

171 lines (129 loc) · 7.48 KB

أمثلة كاملة لعملاء MCP

يحتوي هذا الدليل على أمثلة كاملة وعاملة لعملاء MCP مكتوبة بلغات برمجة مختلفة. كل عميل يوضح الوظائف الكاملة التي تم وصفها في دليل README.md الرئيسي.

العملاء المتاحون

1. عميل Java (client_example_java.java)

  • النقل: SSE (أحداث مرسلة من الخادم) عبر HTTP
  • الخادم المستهدف: http://localhost:8080
  • الميزات:
    • إنشاء الاتصال وإرسال إشارات ping
    • عرض الأدوات
    • عمليات الآلة الحاسبة (الجمع، الطرح، الضرب، القسمة، المساعدة)
    • معالجة الأخطاء واستخراج النتائج

لتشغيل:

# Ensure your MCP server is running on localhost:8080
javac client_example_java.java
java client_example_java

2. عميل C# (client_example_csharp.cs)

  • النقل: Stdio (الإدخال/الإخراج القياسي)
  • الخادم المستهدف: خادم MCP محلي .NET عبر dotnet run
  • الميزات:
    • تشغيل الخادم تلقائيًا عبر النقل Stdio
    • عرض الأدوات والموارد
    • عمليات الآلة الحاسبة
    • تحليل نتائج JSON
    • معالجة شاملة للأخطاء

لتشغيل:

dotnet run

3. عميل TypeScript (client_example_typescript.ts)

  • النقل: Stdio (الإدخال/الإخراج القياسي)
  • الخادم المستهدف: خادم MCP محلي Node.js
  • الميزات:
    • دعم كامل لبروتوكول MCP
    • عمليات الأدوات والموارد والمطالبات
    • عمليات الآلة الحاسبة
    • قراءة الموارد وتنفيذ المطالبات
    • معالجة قوية للأخطاء

لتشغيل:

# First compile TypeScript (if needed)
npm run build

# Then run the client
npm run client
# or
node client_example_typescript.js

4. عميل Python (client_example_python.py)

  • النقل: Stdio (الإدخال/الإخراج القياسي)
  • الخادم المستهدف: خادم MCP محلي Python
  • الميزات:
    • نمط Async/await للعمليات
    • اكتشاف الأدوات والموارد
    • اختبار عمليات الآلة الحاسبة
    • قراءة محتوى الموارد
    • تنظيم يعتمد على الفئات

لتشغيل:

python client_example_python.py

الميزات المشتركة بين جميع العملاء

كل تنفيذ للعميل يوضح:

  1. إدارة الاتصال

    • إنشاء اتصال مع خادم MCP
    • معالجة أخطاء الاتصال
    • تنظيف الموارد وإدارتها بشكل صحيح
  2. اكتشاف الخادم

    • عرض الأدوات المتاحة
    • عرض الموارد المتاحة (عند الدعم)
    • عرض المطالبات المتاحة (عند الدعم)
  3. استدعاء الأدوات

    • عمليات الآلة الحاسبة الأساسية (الجمع، الطرح، الضرب، القسمة)
    • أمر المساعدة للحصول على معلومات الخادم
    • تمرير المعطيات ومعالجة النتائج بشكل صحيح
  4. معالجة الأخطاء

    • أخطاء الاتصال
    • أخطاء تنفيذ الأدوات
    • الفشل بشكل سلس وتقديم ملاحظات للمستخدم
  5. معالجة النتائج

    • استخراج محتوى النصوص من الردود
    • تنسيق الإخراج لسهولة القراءة
    • معالجة تنسيقات الردود المختلفة

المتطلبات الأساسية

قبل تشغيل هؤلاء العملاء، تأكد من:

  1. تشغيل خادم MCP المقابل (من ../01-first-server/)
  2. تثبيت التبعيات المطلوبة للغة البرمجة التي اخترتها
  3. وجود اتصال شبكة مناسب (لعمليات النقل عبر HTTP)

الفروقات الرئيسية بين التنفيذات

اللغة النقل تشغيل الخادم النموذج غير المتزامن المكتبات الرئيسية
Java SSE/HTTP خارجي متزامن WebFlux، MCP SDK
C# Stdio تلقائي Async/Await .NET MCP SDK
TypeScript Stdio تلقائي Async/Await Node MCP SDK
Python Stdio تلقائي AsyncIO Python MCP SDK
Rust Stdio تلقائي Async/Await Rust MCP SDK، Tokio

الخطوات التالية

بعد استكشاف أمثلة العملاء هذه:

  1. قم بتعديل العملاء لإضافة ميزات أو عمليات جديدة
  2. قم بإنشاء خادم خاص بك واختبره باستخدام هؤلاء العملاء
  3. جرب وسائل نقل مختلفة (SSE مقابل Stdio)
  4. قم ببناء تطبيق أكثر تعقيدًا يدمج وظائف MCP

استكشاف الأخطاء وإصلاحها

المشاكل الشائعة

  1. رفض الاتصال: تأكد من تشغيل خادم MCP على المنفذ/المسار المتوقع
  2. عدم العثور على الوحدة: قم بتثبيت MCP SDK المطلوب للغتك
  3. رفض الإذن: تحقق من أذونات الملفات للنقل عبر Stdio
  4. عدم العثور على الأداة: تحقق من أن الخادم ينفذ الأدوات المتوقعة

نصائح التصحيح

  1. قم بتمكين تسجيل الدخول التفصيلي في MCP SDK الخاص بك
  2. تحقق من سجلات الخادم للحصول على رسائل الخطأ
  3. تأكد من تطابق أسماء الأدوات وتوقيعاتها بين العميل والخادم
  4. اختبر باستخدام MCP Inspector أولاً للتحقق من وظائف الخادم

الوثائق ذات الصلة

إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.