يحتوي هذا الدليل على أمثلة كاملة وعاملة لعملاء MCP مكتوبة بلغات برمجة مختلفة. كل عميل يوضح الوظائف الكاملة التي تم وصفها في دليل README.md الرئيسي.
- النقل: SSE (أحداث مرسلة من الخادم) عبر HTTP
- الخادم المستهدف:
http://localhost:8080 - الميزات:
- إنشاء الاتصال وإرسال إشارات ping
- عرض الأدوات
- عمليات الآلة الحاسبة (الجمع، الطرح، الضرب، القسمة، المساعدة)
- معالجة الأخطاء واستخراج النتائج
لتشغيل:
# Ensure your MCP server is running on localhost:8080
javac client_example_java.java
java client_example_java- النقل: Stdio (الإدخال/الإخراج القياسي)
- الخادم المستهدف: خادم MCP محلي .NET عبر dotnet run
- الميزات:
- تشغيل الخادم تلقائيًا عبر النقل Stdio
- عرض الأدوات والموارد
- عمليات الآلة الحاسبة
- تحليل نتائج JSON
- معالجة شاملة للأخطاء
لتشغيل:
dotnet run- النقل: 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- النقل: Stdio (الإدخال/الإخراج القياسي)
- الخادم المستهدف: خادم MCP محلي Python
- الميزات:
- نمط Async/await للعمليات
- اكتشاف الأدوات والموارد
- اختبار عمليات الآلة الحاسبة
- قراءة محتوى الموارد
- تنظيم يعتمد على الفئات
لتشغيل:
python client_example_python.pyكل تنفيذ للعميل يوضح:
-
إدارة الاتصال
- إنشاء اتصال مع خادم MCP
- معالجة أخطاء الاتصال
- تنظيف الموارد وإدارتها بشكل صحيح
-
اكتشاف الخادم
- عرض الأدوات المتاحة
- عرض الموارد المتاحة (عند الدعم)
- عرض المطالبات المتاحة (عند الدعم)
-
استدعاء الأدوات
- عمليات الآلة الحاسبة الأساسية (الجمع، الطرح، الضرب، القسمة)
- أمر المساعدة للحصول على معلومات الخادم
- تمرير المعطيات ومعالجة النتائج بشكل صحيح
-
معالجة الأخطاء
- أخطاء الاتصال
- أخطاء تنفيذ الأدوات
- الفشل بشكل سلس وتقديم ملاحظات للمستخدم
-
معالجة النتائج
- استخراج محتوى النصوص من الردود
- تنسيق الإخراج لسهولة القراءة
- معالجة تنسيقات الردود المختلفة
قبل تشغيل هؤلاء العملاء، تأكد من:
- تشغيل خادم MCP المقابل (من
../01-first-server/) - تثبيت التبعيات المطلوبة للغة البرمجة التي اخترتها
- وجود اتصال شبكة مناسب (لعمليات النقل عبر 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 |
بعد استكشاف أمثلة العملاء هذه:
- قم بتعديل العملاء لإضافة ميزات أو عمليات جديدة
- قم بإنشاء خادم خاص بك واختبره باستخدام هؤلاء العملاء
- جرب وسائل نقل مختلفة (SSE مقابل Stdio)
- قم ببناء تطبيق أكثر تعقيدًا يدمج وظائف MCP
- رفض الاتصال: تأكد من تشغيل خادم MCP على المنفذ/المسار المتوقع
- عدم العثور على الوحدة: قم بتثبيت MCP SDK المطلوب للغتك
- رفض الإذن: تحقق من أذونات الملفات للنقل عبر Stdio
- عدم العثور على الأداة: تحقق من أن الخادم ينفذ الأدوات المتوقعة
- قم بتمكين تسجيل الدخول التفصيلي في MCP SDK الخاص بك
- تحقق من سجلات الخادم للحصول على رسائل الخطأ
- تأكد من تطابق أسماء الأدوات وتوقيعاتها بين العميل والخادم
- اختبر باستخدام MCP Inspector أولاً للتحقق من وظائف الخادم
إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.