مشاركة عبر


الدرس: استضافة خادم MCP على Azure Functions

توضح لك هذه المقالة كيفية استضافة خوادم بروتوكول السياق النموذجي البعيد (MCP) على Azure Functions. كما تتعلم كيفية استخدام المصادقة المدمجة لتكوين تفويض نقاط نهاية الخادم وتأمين أدوات الذكاء الاصطناعي بشكل أفضل.

هناك طريقتان لاستضافة خادم MCP بعيد في Azure Functions:

خيار خادم MCP الوصف الأفضل بالنسبة إلى...
خادم الامتداد MCP يستخدم امتداد Azure Functions MCP لإنشاء خوادم MCP مخصصة، حيث يتيح لك مشغل الإضافة تحديد نقاط نهاية أداتك الخاصة. تدعم هذه الخوادم بجميع لغات الدوال ويتم تطويرها ونشرها وإدارتها كأي تطبيق دوال آخر. عندما تكون على دراية بالفعل ب Functions ونموذج البرمجة القائم على الربطات.
خادم مستضاف ذاتيا يمكن للوظائف استضافة مشروع خادم MCP تم إنشاؤه باستخدام مجموعات تطوير البرمجيات القياسية لMCP. عندما تكون قد بنيت خادمك بالفعل باستخدام مجموعات تطوير MCP الرسمية وتبحث عن استضافة مدفوعة بالأحداث، بدون خوادم، وقابلة للتوسع في Azure.

إشعار

إمكانية استضافة Azure Functions لخوادم MCP التي تنشئها باستخدام مجموعات تطوير البرمجيات الرسمية ل MCP حاليا قيد المعاينة.

يغطي هذا الدرس خيارين من خوادم MCP المدعومين من قبل Functions. اختر التبويب الذي يناسب سيناريوك بشكل أفضل.

في هذا الدرس، تستخدم كود Visual Studio ل:

  • أنشئ مشروع خادم MCP باستخدام امتداد MCP.
  • شغل وتحقق من خادم MCP الخاص بك محليا.
  • أنشئ تطبيق وظائف في Azure.
  • قم بنشر مشروع خادم MCP الخاص بك.
  • تمكين المصادقة المدمجة.

هام

تدعم هذه المقالة حاليا فقط C# وبايثون وTypeScript. لإكمال التشغيل السريع، حدد إحدى هذه اللغات المدعومة في أعلى المقالة.

تدعم هذه المقالة الإصدار 4 من نموذج البرمجة Node.js ل Azure Functions.

تدعم هذه المقالة الإصدار 2 من نموذج برمجة Python ل Azure Functions.

Prerequisites

أنشئ مشروع خادم MCP الخاص بك

استخدم كود Visual Studio لإنشاء مشروع خادم MCP محليا بلغتك المفضلة.

  1. لفتح لوحة الأوامر في تعليمة Visual Studio البرمجية، اضغط على F1. ابحث عن الأمر Azure Functions: Create New Project...وقم بتشغيله.

  2. اختر موقع الدليل الخاص لمساحة عمل المشروع لديك واختر "تحديد". يجب عليك إما إنشاء مجلد جديد أو اختيار مجلد فارغ لمساحة عمل المشروع. لا تختر مجلد مشروع يشكل بالفعل جزءًا من مساحة عمل.

  1. قدِّم المعلومات التالية في المطالبات:

    Prompt Selection
    اختر نوع المشروع اختر C#‎.
    حدد وقت تشغيل .NET اختر .NET 8.0 LTS.
    تحديد قالب للدالة الأولى لمشروعك اختر MCP Tool trigger.
    توفير اسم دالة اكتبMcpTrigger.
    توفير مساحة اسم اكتبMy.Functions.
    مستوى التخويل اختر FUNCTION، والذي يتطلب مفتاح الوصول عند الاتصال بخادم MCP البعيد.
    تحديد الطريقة التي تريد فتح مشروعك بها اختر Open in current window.
  1. قدِّم المعلومات التالية في المطالبات:

    Prompt Selection
    اختر نوع المشروع اختر TypeScript.
    تحديد قالب للدالة الأولى لمشروعك اختر MCP Tool trigger.
    توفير اسم دالة اكتبmcpToolTrigger.
    مستوى التخويل اختر FUNCTION، والذي يتطلب مفتاح الوصول عند الاتصال بخادم MCP البعيد.
    تحديد الطريقة التي تريد فتح مشروعك بها اختر Open in current window.
  1. قدِّم المعلومات التالية في المطالبات:

    Prompt Selection
    اختر نوع المشروع اختر Python.
    حدد مترجم Python لإنشاء بيئة افتراضية اختر مترجم Python المفضل لديك. إذا لم يتم عرض الموقع، فاكتب المسار الكامل إلى نظام Python الثنائي الخاص بك.
    تحديد قالب للدالة الأولى لمشروعك اختر MCP Tool trigger.
    اسم الدالة التي تريد إنشاءها أدخل mcp_trigger.
    مستوى التخويل اختر FUNCTION، والذي يتطلب مفتاح الوصول عند الاتصال بخادم MCP البعيد.
    تحديد الطريقة التي تريد فتح مشروعك بها اختر Open in current window.

باستخدام هذه المعلومات، يقوم Visual Studio Code بإنشاء مشروع كود لمشغل خادم MCP. يمكنك عرض ملفات المشروع المحلي في المستكشف.

تشغيل خادم MCP محليا

تطبيقات الوظائف تحتاج إلى مكون تخزين لتشغيلها. قبل بدء الخادم، شغل محاكي التخزين المحلي:

  1. في local.setting.json، تأكد من أن لديك "AzureWebJobsStorage": "UseDevelopmentStorage=true".

  2. لفتح لوحة الأوامر في تعليمة Visual Studio البرمجية، اضغط على F1. في لوحة الأوامر، ابحث عن Azurite: Start واختره.

  3. تحقق من الشريط السفلي وتحقق من تشغيل خدمات محاكي Azurite. إذا كان الأمر كذلك، يمكنك الآن تشغيل الخادم محليا.

  4. لبدء التشغيل محليا، اضغط F5.

تطبيقات الوظائف تحتاج إلى مكون تخزين لتشغيلها. قبل بدء الخادم، شغل محاكي التخزين المحلي:

  1. في local.setting.json، تأكد من أن لديك "AzureWebJobsStorage": "UseDevelopmentStorage=true".

  2. لفتح لوحة الأوامر في تعليمة Visual Studio البرمجية، اضغط على F1. في لوحة الأوامر، ابحث عن Azurite: Start واختره.

  3. تحقق من الشريط السفلي وتحقق من تشغيل خدمات محاكي Azurite. إذا كان الأمر كذلك، يمكنك الآن تشغيل الخادم محليا.

  4. لبدء التشغيل محليا، اضغط F5.

تطبيقات الوظائف تحتاج إلى مكون تخزين لتشغيلها. قبل بدء الخادم، شغل محاكي التخزين المحلي:

  1. في local.setting.json، تأكد من أن لديك "AzureWebJobsStorage": "UseDevelopmentStorage=true".

  2. لفتح لوحة الأوامر في تعليمة Visual Studio البرمجية، اضغط على F1. في لوحة الأوامر، ابحث عن Azurite: Start واختره.

  3. تحقق من الشريط السفلي وتحقق من تشغيل خدمات محاكي Azurite. إذا كان الأمر كذلك، يمكنك الآن تشغيل الخادم محليا.

  4. لبدء التشغيل محليا، اضغط F5.

اختبر الخادم

  1. ابحث عن الدليل .vscode وافتح mcp.json. يجب أن يضيف المحرر معلومات اتصال الخادم.

  2. ابدأ الخادم باختيار زر ابدأ فوق اسم الخادم.

  3. عند الاتصال بالخادم، ترى عدد الأدوات المتاحة فوق اسم الخادم.

  4. افتح دردشة Visual Studio Code Copilot في وضع الوكيل، ثم اطرح سؤالا. على سبيل المثال، "Greet with #your-local-server-name". هذا السؤال يضمن أن Copilot يستخدم الخادم للمساعدة في الإجابة على السؤال.

  5. عندما يطلب Copilot تشغيل أداة من خادم MCP المحلي، اختر Permit.

  6. افصل الاتصال بالخادم عند الانتهاء من الاختبار باختيار إيقاف، وتوقف Cntrl+C تشغيله محليا.

Tip

في نافذة دردشة Copilot، اختر أيقونة الأداة في الأسفل لرؤية قائمة الخوادم والأدوات المتاحة للدردشة. تأكد من فحص خادم MCP المحلي أثناء الاختبار.

تفويض خادم MCP البعيد

هناك طريقتان لتقليل أو منع الاستخدام غير المصرح به لنقاط نهاية خادم MCP البعيد:

الطريقة الوصف
المصادقة المدمجة على الخادم (معاينة) تشمل الوظائف مصادقة وتفويض خدمة التطبيقات المدمجة التي تنفذ متطلبات OAuth لبروتوكول مواصفة تفويض MCP . يتم إعادة توجيه العملاء الذين يحاولون الوصول إلى الخادم إلى مزود هوية مكون، مثل Microsoft Entra ID، للمصادقة قبل السماح لهم بالاتصال. توفر هذه الطريقة أعلى مستوى من الأمان لنقاط نهاية أدواتك.
المصادقة المستندة إلى المفتاح بشكل افتراضي، تقوم الدوال بتنفيذ متطلب مفتاح الوصول بحيث يجب على العملاء الذين يحاولون استخدام أدوات خادم MCP تقديم قيمة مفتاح سري مشترك في رأس الطلب. على الرغم من أنها لا توفر نفس مستوى الأمان الذي توفره المصادقة المعتمدة على OAuth، إلا أن مفاتيح الوصول تجعل من الصعب الوصول إلى الأدوات العامة. استخدم Anonymous مستوى وصول لتعطيل مفاتيح الوصول في خادمك عند استخدام المصادقة المعتمدة على OAuth.

إشعار

يحتوي هذا الدرس على تعليمات إعداد مفصلة لميزة تفويض ومصادقة الخادم المدمجة، والتي قد يشار إليها أيضا باسم مصادقة خدمة التطبيقات في مقالات أخرى. يمكنك العثور على نظرة عامة على الميزة وبعض إرشادات الاستخدام في مقالة "تكوين تفويض الخادم المدمج (المعاينة).

تعطيل المصادقة المستندة إلى المفتاح

ميزة تفويض الخادم المدمجة هي مكون منفصل عن Azure Functions. عند استخدام مصادقة الخادم، من الأفضل أولا تعطيل المصادقة القائمة على المفاتيح بالسماح بالوصول المجهول.

لتعطيل المصادقة القائمة على المضيف في خادم MCP الخاص بك، قم بتعيين system.webhookAuthorizationLevel إلى Anonymous في host.json الملف:

{
  "version": "2.0",
  "extensions": {
    "mcp": {
      ...
      "system": {
        "webhookAuthorizationLevel": "Anonymous"
      }
    }    
  }
}

إنشاء تطبيق الوظائف في Azure

أنشئ تطبيق وظائف في خطة استهلاك مرنة في Azure يستضيف خادم MCP الخاص بك.

  1. في مدخل Microsoft Azure، من القائمة أو الصفحة الرئيسية ، حدد إنشاء مورد.

  2. حدد البدء ثم إنشاء ضمن تطبيق الوظائف.

  3. ضمن تحديد خيار استضافة، اختر تحديد استهلاك> Flex.

  4. في صفحة الأساسيات ، استخدم إعدادات تطبيق الوظائف كما هو محدد في الجدول التالي:

    الإعدادات القيمة المقترحة الوصف
    الاشتراك اشتراكك الاشتراك الذي تنشئ فيه تطبيق الوظائف الجديد.
    مجموعة الموارد myResourceGroup اسم مجموعة الموارد الجديدة التي تقوم فيها بإنشاء تطبيق الوظائف.
    اسم تطبيق الوظائف اسم فريد عالميًا الاسم الذي يحدد تطبيق الوظائف الجديد. الأحرف الصالحة هي a-z (غير حساسة لحالة الأحرف)، و0-9، و-.
    المنطقة المنطقة المفضلة حدد منطقة قريبة منك أو بالقرب من الخدمات الأخرى التي يمكن لوظائفك الوصول إليها. لا يتم عرض المناطق غير المدعومة. لمزيد من المعلومات، راجع عرض المناطق المدعومة حاليا.
    مكدس وقت التشغيل اللغة المفضلة اختر أحد مكدسات وقت تشغيل اللغة المدعومة. التحرير في المدخل باستخدام Visual Studio Code للويب متاح حاليا فقط لتطبيقات Node.js وPowerShell وPython. يجب تطوير مكتبة فئة C # ووظائف Java محليا.
    الإصدار إصدار اللغة اختر إصدارا معتمدا من مكدس وقت تشغيل اللغة.
    حجم المثيل الإعداد الافتراضي تحديد مقدار ذاكرة المثيل المخصصة لكل مثيل من تطبيقك. لمزيد من المعلومات، راجع أحجام المثيلات.
  5. في صفحة التخزين ، اقبل السلوك الافتراضي لإنشاء حساب تخزين مضيف افتراضي جديد أو اختر استخدام حساب تخزين موجود.

  1. في صفحة المراقبة ، تأكد من تحديد تمكين Application Insights . اقبل الإعداد الافتراضي لإنشاء مثيل Application Insights جديد، أو اختر استخدام مثيل موجود. عند إنشاء مثيل Application Insights، يطلب منك أيضا تحديد مساحة عمل Log Analytics.

  2. في صفحة المصادقة ، قم بتغيير نوع المصادقة إلى الهوية المدارة لجميع الموارد. باستخدام هذا الخيار، يتم أيضا إنشاء هوية مدارة معينة من قبل المستخدم يستخدمها تطبيقك للوصول إلى موارد Azure هذه باستخدام مصادقة معرف Microsoft Entra. توفر الهويات المدارة باستخدام معرف Microsoft Entra أعلى مستوى من الأمان للاتصال بموارد Azure.

  3. اقبل الخيارات الافتراضية في علامات التبويب المتبقية ثم حدد مراجعة + إنشاء لمراجعة تكوين التطبيق الذي اخترته.

  4. عندما تكون راضيا، حدد إنشاء لتوفير تطبيق الوظائف والموارد ذات الصلة ونشره.

  5. حدد أيقونة الإعلامات في الزاوية العلوية اليمنى من المدخل وراقب رسالة نجاح النشر .

  6. حدد الانتقال إلى المورد لعرض تطبيق الوظيفة الجديد. يمكنك أيضًا تحديدتثبيت في لوحة المعلومات. يُسهل التثبيت العودة إلى مورد تطبيق الوظيفة هذا من لوحة المعلومات الخاصة بك.

    لقطة شاشة لإخطار التوزيع.

نشر مشروع خادم MCP

هام

يستبدل التوزيع إلى تطبيق وظائف موجود دائمًا محتويات هذا التطبيق في Azure.

  1. في لوحة الأوامر، أدخل ثم حدد Azure Functions: Deploy to Function App.

  2. حدد تطبيق الوظائف الذي أنشأته للتو. عند مطالبتك بالكتابة فوق عمليات التوزيع السابقة، حدد Deploy لنشر التعليمات البرمجية للدالة إلى مورد تطبيق الوظائف الجديد.

  3. عند اكتمال النشر، حدد عرض الإخراج لعرض نتائج الإنشاء والتوزيع، بما في ذلك موارد Azure التي قمت بإنشائها. إذا فاتك الإعلام، فحدد أيقونة الجرس في الزاوية السفلية اليسرى لرؤيتها مرة أخرى.

    لقطة شاشة تظهر نافذة View Output

  1. تطبيقات بايثون تتطلب أيضا إضافة هذا الإعداد للتطبيق:

    PYTHONPATH=/home/site/wwwroot/.python_packages/lib/site-packages.

الآن يمكنك نشر مشروع الخادم:

هام

يستبدل التوزيع إلى تطبيق وظائف موجود دائمًا محتويات هذا التطبيق في Azure.

  1. في لوحة الأوامر، أدخل ثم حدد Azure Functions: Deploy to Function App.

  2. حدد تطبيق الوظائف الذي أنشأته للتو. عند مطالبتك بالكتابة فوق عمليات التوزيع السابقة، حدد Deploy لنشر التعليمات البرمجية للدالة إلى مورد تطبيق الوظائف الجديد.

  3. عند اكتمال النشر، حدد عرض الإخراج لعرض نتائج الإنشاء والتوزيع، بما في ذلك موارد Azure التي قمت بإنشائها. إذا فاتك الإعلام، فحدد أيقونة الجرس في الزاوية السفلية اليسرى لرؤيتها مرة أخرى.

    لقطة شاشة تظهر نافذة View Output


عند انتهاء النشر، يجب أن ترى إشعارا في كود Visual Studio حول الاتصال بالخادم. اختر زر Connect ليقوم المحرر بإعداد معلومات اتصال الخادم في mcp.json.

تمكين تفويض ومصادقة الخادم المدمجين

توضح التعليمات التالية كيفية تفعيل ميزة التفويض والمصادقة المدمجة في تطبيق الخادم وتهيئة Microsoft Entra ID كمزود للهوية. عند الانتهاء، تختبر عن طريق الاتصال بالخادم في كود Visual Studio وترى أنك تلقى مطالبة بالمصادقة قبل الاتصال.

تكوين المصادقة على تطبيق الخادم

  1. افتح تطبيق الخادم في بوابة Azure، واختر إعدادات>المصادقة من القائمة اليسرى.

  2. اختر إضافة مزود> الهويةMicrosoft كمزود هوية.

  3. لاختيار مستأجر لتطبيقك ومستخدميه، اختر تكوين القوى العاملة (المستأجر الحالي).

  4. تحت تسجيل التطبيق: استخدم هذه الإعدادات:

    الإعدادات Selection
    نوع تسجيل التطبيق إنشاء تسجيل تطبيق جديد
    الاسم أدخل اسما وصفيا لتطبيقك
    انتهاء سر العميل الموصى به: 180 يوما
    أنواع الحسابات المدعومة المستأجر الحالي - مستأجر واحد
  5. تحت فحوصات إضافية:، لمتطلبات تطبيق العميل اختر السماح بطلبات من تطبيقات عملاء محددة، اختر أيقونة القلم، أضف معرف aebc6443-996d-45c2-90f0-388ff96faa56العميل في كود Visual Studio، واختر OK. اترك الأقسام الأخرى كما هي.

  6. في إعدادات مصادقة خدمة التطبيقات ، استخدم هذه الإعدادات:

    الإعدادات Selection
    تقييد الوصول طلب المصادقة
    الطلبات غير المصادق عليها HTTP 401 غير مصرح به: موصى به لواجهات برمجة التطبيقات
    مخزن الرموز اختر المربع الذي يسمح بتحديث الرموز
  7. حدد إضَافَة. بعد انتشار الإعدادات، يجب أن ترى النتيجة التالية:

    لقطة شاشة لإعدادات مصادقة خدمة التطبيقات تظهر خيار 'مطلوب المصادقة' و'HTTP 401 غير مصرح به' تم تعيين الطلبات غير المصادقة.

قم بتفويض كود Visual Studio كعميل

  1. اختر اسم تطبيق إنترا بجانب مايكروسوفت. هذا الإجراء يأخذك إلى نظرة عامة على مورد تطبيق إنترا.

  2. في القائمة اليسرى، ابحث عن إدارة -> كشف واجهة برمجة تطبيقات (API).

  3. تحت تطبيقات العميل المصرح بها، اختر +إضافة تطبيق عميل.

  4. أدخل معرف العميل الخاص ب Visual Studio Code: aebc6443-996d-45c2-90f0-388ff96faa56.

  5. اختر المربع أمام المنظار الذي يبدو ك api://abcd123-efg456-hijk-7890123/user_impersonation.

  6. حدد إضافة تطبيق.

تكوين بيانات تعريف الموارد المحمية (معاينة)

  1. في نفس العرض، ابحث عن قسم Scopes ، وانسخ النطاق الذي يسمح للمسؤولين والمستخدمين بالموافقة على تطبيق Entra. تبدو هذه القيمة كأنها api://abcd123-efg456-hijk-7890123/user_impersonation.

  2. شغل نفس الأمر السابق لإضافة الإعداد WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES:

    az functionapp config appsettings set --name <function-app-name> --resource-group <resource-group-name> --settings "WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES=<scope>"
    
  3. أيضا في عرض كشف واجهة برمجة التطبيقات ، ابحث عن معرف التطبيق URI (يبدو ك api://abcd123-efg456-hijk-7890123) في الأعلى واحفظه لمرحلة لاحقة.

الاتصال بالخادم

افتح mcp.json داخل .vscode الدليل.

عند اختيار Connect في النافذة المنبثقة بعد النشر، يقوم كود Visual Studio بملء الملف بمعلومات اتصال الخادم.

إذا فاتك هذه الخطوة، يمكنك أيضا فتح خيار الإخراج (Ctrl/Cmd+Shift+U) للعثور على زر الاتصال الداخلي في نهاية سجلات النشر.

يمكنك أيضا إضافة معلومات الاتصال يدويا:

  1. احصل على نطاق الخادم عن طريق تشغيل الأمر التالي:

    az functionapp show --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME> --query "defaultHostName" --output tsv
    
  2. في Visual Studio Code، افتح لوحة الأوامر، وابحث عن أمر MCP: Add Server... وشغل أمره، ثم اتبع هذه التعليمات:

    Prompt اقتراح
    نوع الخادم الذي سيتم إضافته HTTP
    رابط خادم MCP الخاص بك https://<FUNCTION_APP_NAME>.azurewebsites.azurewebsites.net/runtime/webhooks/mcp
    اسم الخادم Remote-MCP-Server
    أين يمكن تثبيت الخادم مساحة عمل
  3. كود Visual Studio يفتح mcp.json ملف الإعدادات لك.

اتبع التعليمات في القسم التالي للاتصال بالخادم حسب كيفية إعداد المصادقة.

مع مصادقة وتفويض مدمجين

  1. ابدأ الخادم البعيد باختيار زر البدء فوق اسم الخادم.

  2. عند طلب المصادقة مع مايكروسوفت، اختر السماح، ثم سجل الدخول ببريدك الإلكتروني (الذي يستخدم لتسجيل الدخول إلى بوابة أزور).

  3. عندما تتصل بنجاح بالخادم، ترى عدد الأدوات المتاحة فوق اسم الخادم.

  4. افتح دردشة Visual Studio Code Copilot في وضع الوكيل، ثم اطرح سؤالا. على سبيل المثال، Greet with #your-remote-mcp-server-name

  5. أوقف الخادم عند الانتهاء من الاختبار.

لفهم دقيق لما يحدث عندما يحاول كود Visual Studio الاتصال بخادم MCP البعيد، راجع بروتوكول تفويض الخادم.

باستخدام مفتاح الوصول

إذا لم تقم بتمكين المصادقة والتفويض المدمجين وأردت بدلا من ذلك الاتصال بخادم MCP باستخدام مفتاح وصول، يجب أن تحتوي على mcp.json مفتاح الوصول للوظائف في رؤوس طلبات تسجيل الخادم.

يقوم Visual Studio تلقائيا بتعبئة مفتاح الوصول عند بدء الخادم.

يجب أن يبدو الملف mcp.json على النحو التالي:

{
	"servers": {
		"remote-mcp-server": {
			"type": "http",
			"url": "https://${input:functionapp-domain}/runtime/webhooks/mcp",
			"headers": {
				"x-functions-key": "${input:functions-key}"
			}
		}
	},
	"inputs": [
		{
			"type": "promptString",
			"id": "functions-key",
			"description": "Functions App Key",
			"password": true
		},
		{
			"type": "promptString",
			"id": "functionapp-domain",
			"description": "The domain of the function app.",
			"password": false
		}
	]
}

إذا أردت العثور على مفتاح الوصول بنفسك، اذهب إلى تطبيق Function في بوابة Azure. في القائمة اليسرى، ابحث عن الوظائف -> مفاتيح التطبيق. تحت قسم مفاتيح النظام، ابحث عن المفتاح المسمى mcp_extension.

Tip

لرؤية سجلات الاتصال، اذهب إلى اسم الخادم، ثم اختر المزيد>من عرض الإخراج. لمزيد من التفاصيل حول التفاعل بين العميل (كود Visual Studio) وخادم MCP البعيد، اختر أيقونة المعدات واختر Trace.

لقطة شاشة لإعدادات خادم MCP تظهر مستوى سجل _Trace_ وهو يختار.

قم بتكوين Azure الذكاء الاصطناعي Foundry agent لاستخدام أدواتك

يمكنك تكوين وكيل على Azure الذكاء الاصطناعي Foundry لاستخدام الأدوات التي تعرضها خوادم MCP المستضافة على Azure Functions.

  1. في بوابة Foundry، ابحث عن الوكيل الذي تريد تكوينه مع خوادم MCP المستضافة على Functions.

  2. تحت الأدوات، اختر زر الإضافة ، ثم اختر + إضافة أداة جديدة.

  3. اختر تبويب Custom ، ثم اختر بروتوكول سياق النموذج (MCP) وزر الإنشاء .

  4. املأ المعلومات التالية:

    • الاسم: اسم الخادم
    • نقطة نهاية خادم MCP البعيد:
      • خادم الامتداد MCP: https://<server domain>/runtime/webhooks/mcp
      • خادم مستضاف ذاتيا: https://<server domain>/mcp
    • المصادقة: اختر "Microsoft Entra"
    • النوع: اختر "الهوية المدارة من المشروع"
    • الجمهور: هذا هو معرف تطبيق إنترا URI من Configure protected protected resource metadata

    على سبيل المثال:

    مخطط يوضح تكوين وكيل Foundry للاتصال بخادم MCP.

  5. حدد اتصال.

  6. اختبر بطرح سؤال يمكن الإجابة عليه بمساعدة أداة خادم في نافذة الدردشة.

بروتوكول تفويض الخادم

في مخرجات التصحيح من كود Visual Studio، ترى سلسلة من الطلبات والردود أثناء تفاعل عميل MCP والخادم. عند استخدام تفويض خادم MCP المدمج، ترى تسلسل الأحداث التالي:

  1. يرسل المحرر طلب تهيئة إلى خادم MCP.
  2. يرد خادم MCP بخطأ يشير إلى أن التفويض مطلوب. يتضمن الرد مؤشرا إلى بيانات المورد المحمي (PRM) للتطبيق. ميزة التفويض المدمجة تولد PRM لتطبيق الخادم.
  3. يقوم المحرر بجلب PRM ويستخدمه لتحديد خادم التفويض.
  4. يحاول المحرر الحصول على بيانات وصفية لخادم التفويض (ASM) من نقطة نهاية معروفة على خادم التفويض.
  5. لا يدعم Microsoft Entra ID ASM على النقطة المعروفة، لذا يعود المحرر إلى استخدام نقطة نهاية OpenID Connect للحصول على ASM. يحاول اكتشاف ذلك بإدخال نقطة النهاية المعروفة جيدا قبل أي معلومات مسار أخرى.
  6. مواصفات OpenID Connect عرفت فعليا نقطة النهاية المعروفة بأنها معلومات بعد المسار، وهناك تستضيفها Microsoft Entra ID. لذا يحاول المحرر مرة أخرى بهذا التنسيق.
  7. يتمكن المحرر من استرجاع ASM بنجاح. ثم يستخدم هذه المعلومات مع معرف العميل الخاص به لإجراء تسجيل الدخول. في هذه المرحلة، يطلب منك المحرر تسجيل الدخول والموافقة على الطلب.
  8. بافتراض أنك سجلت الدخول بنجاح ووافقت، يكمل المحرر عملية التوثيق. يكرر طلب البدء إلى خادم MCP، وهذه المرة يتضمن رمز تفويض في الطلب. هذه المحاولة المتكررة غير مرئية عند مستوى إخراج التصحيح، لكن يمكنك رؤيتها في مستوى إخراج Trace.
  9. يقوم خادم MCP بالتحقق من صحة الرمز ويرد بنجاح على طلب التهيئة. يستمر تدفق MCP القياسي من هذه النقطة، مما يؤدي في النهاية إلى اكتشاف أداة MCP المعرفة في هذه العينة.

Troubleshooting

إذا واجهت مشكلة، اطلب المساعدة من GitHub Copilot. إليك بعض الأفكار المحددة لحل المشكلة:

لا توجد أفكار أخرى في الوقت الحالي. تذكر أن تسأل دردشة Copilot عن أي أخطاء قد تحدث.

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

تعلم كيفية تسجيل خوادم MCP المستضافة في Azure Functions على Azure API Center.