يُظهر المثال السابق كيفية استخدام مشروع .NET محلي مع نوع stdio. وكيفية تشغيل الخادم محليًا داخل حاوية. هذا حل جيد في العديد من الحالات. ومع ذلك، قد يكون من المفيد تشغيل الخادم عن بُعد، مثل بيئة السحابة. وهنا يأتي دور نوع http.
عند النظر إلى الحل في مجلد 04-PracticalImplementation، قد يبدو أكثر تعقيدًا من المثال السابق. لكن في الواقع، ليس كذلك. إذا نظرت عن كثب إلى مشروع src/Calculator، سترى أنه في الغالب نفس الكود كما في المثال السابق. الاختلاف الوحيد هو أننا نستخدم مكتبة مختلفة ModelContextProtocol.AspNetCore للتعامل مع طلبات HTTP. ونغير الطريقة IsPrime لتصبح خاصة، فقط لإظهار أنه يمكنك وجود طرق خاصة في كودك. بقية الكود هو نفسه كما كان من قبل.
المشاريع الأخرى هي من .NET Aspire. وجود .NET Aspire في الحل سيحسن تجربة المطور أثناء التطوير والاختبار ويساعد في الرصد. ليس من الضروري لتشغيل الخادم، لكنه ممارسة جيدة أن يكون موجودًا في الحل الخاص بك.
-
من VS Code (مع امتداد C# DevKit)، انتقل إلى مجلد
04-PracticalImplementation/samples/csharp. -
نفذ الأمر التالي لتشغيل الخادم:
dotnet watch run --project ./src/AppHost
-
عندما يفتح متصفح الويب لوحة تحكم .NET Aspire، لاحظ عنوان URL الخاص بـ
http. يجب أن يكون شيئًا مثلhttp://localhost:5058/.
إذا كان لديك Node.js إصدار 22.7.5 أو أعلى، يمكنك استخدام MCP Inspector لاختبار الخادم الخاص بك.
شغّل الخادم ونفذ الأمر التالي في الطرفية:
npx @modelcontextprotocol/inspector http://localhost:5058- اختر
Streamable HTTPكنوع النقل. - في حقل Url، أدخل عنوان URL الخاص بالخادم الذي لاحظته سابقًا، وأضف
/mcpفي النهاية. يجب أن يكونhttp(وليسhttps) مثلhttp://localhost:5058/mcp. - اضغط على زر Connect.
ميزة جيدة في Inspector هي أنه يوفر رؤية واضحة لما يحدث.
- جرب عرض الأدوات المتاحة
- جرب بعضها، يجب أن تعمل كما في السابق.
لاستخدام نقل Streamable HTTP مع GitHub Copilot Chat، غيّر إعدادات خادم calc-mcp الذي أنشأته سابقًا ليبدو كالتالي:
قم ببعض الاختبارات:
- اطلب "3 أعداد أولية بعد 6780". لاحظ كيف سيستخدم Copilot الأدوات الجديدة
NextFivePrimeNumbersويعيد فقط أول 3 أعداد أولية. - اطلب "7 أعداد أولية بعد 111"، لترى ماذا يحدث.
- اطلب "جون لديه 24 مصاصة ويريد توزيعها كلها على أطفاله الثلاثة. كم عدد المصاصات التي يحصل عليها كل طفل؟"، لترى ماذا يحدث.
لنشر الخادم على Azure ليتمكن المزيد من الأشخاص من استخدامه.
من الطرفية، انتقل إلى مجلد 04-PracticalImplementation/samples/csharp ونفذ الأمر التالي:
azd upعند انتهاء النشر، يجب أن ترى رسالة مثل هذه:
انسخ عنوان URL واستخدمه في MCP Inspector وفي GitHub Copilot Chat.
// .vscode/mcp.json
{
"servers": {
"calc-mcp": {
"type": "http",
"url": "https://calc-mcp.gentleriver-3977fbcf.australiaeast.azurecontainerapps.io/mcp"
}
}
}جربنا أنواع نقل مختلفة وأدوات اختبار. كما نشرنا خادم MCP الخاص بك على Azure. لكن ماذا لو كان خادمنا يحتاج إلى الوصول إلى موارد خاصة؟ مثل قاعدة بيانات أو API خاصة؟ في الفصل القادم، سنرى كيف يمكننا تحسين أمان الخادم الخاص بنا.
إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.


