بروتوكول سياق النموذج (MCP) هو معيار ناشئ يمكّن التطبيقات من توفير السياق والقدرات لنماذج اللغة الكبيرة (LLMs). تتمثل إحدى الميزات الرئيسية لـ MCP في قدرتها على تعريف الأدوات التي يمكن لوكلاء الذكاء الاصطناعي الاستفادة منها لإنجاز المهام. يربط Azure Functions MCP بين الحوسبة السحابية بدون خوادم وقدرات المساعدين الذكيين، مما يتيح للمطورين بناء أدوات قابلة للتوسع يمكن الوصول إليها من قبل وكلاء الذكاء الاصطناعي.
في هذا الدليل، سنستكشف ما هو Azure Functions MCP، وكيفية تثبيته، وكيفية بدء خادم MCP، وكيفية استخدامه مع GitHub Copilot. بنهاية هذا الدليل، سيكون لديك خادم MCP وظيفي يعمل يمكن لوكلاء الذكاء الاصطناعي الوصول إليه لأداء مهام مفيدة.
نصيحة احترافية: عند بناء خوادم MCP الخاصة بك، ستحتاج إلى اختبار نقاط النهاية لواجهة برمجة التطبيقات (API) بدقة. أوصي بشدة بتجربة Apidog - إنه أفضل بديل لبرنامج Postman الذي وجدته لاختبار وتطوير واجهات برمجة التطبيقات.

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

ستكون القدرة على تصور تدفقات SSE في الوقت الفعلي ذات قيمة كبيرة أثناء تصحيح تطبيقات خادم MCP الخاصة بك. يمكنك الحصول عليها من apidog.com لتبسيط سير عمل تطويرك.
ما هو خادم Azure Functions MCP؟
خادم Azure Functions MCP هو ميزة معاينة تجريبية تضيف دعم بروتوكول سياق النموذج (MCP) إلى Azure Functions، حل الحوسبة بدون خوادم من Microsoft. يقدم المشغلات وربطًا متخصصين مصممين خصيصًا لإنشاء أدوات يمكن لوكلاء الذكاء الاصطناعي استخدامها عبر MCP.

تسمح هذه التكاملات للمطورين ببناء خوادم MCP عن بعد بمقياس سحابي يمكن لوكلاء الذكاء الاصطناعي الاستفادة منها مثل تلك الموجودة في GitHub Copilot. يوفر Azure Functions MCP طريقة سلسة لتطوير أدوات مساعدة ذكية تعتمد على الأحداث وتقوم بالتوسع التلقائي عبر بيئات Python و Node.js (TypeScript) و .NET (C#).
المكون الرئيسي هو مشغل أداة MCP، الذي يمكّن الوظائف من العمل كأدوات بخصائص محددة يمكن لوكلاء الذكاء الاصطناعي اكتشافها واستدعاؤها بناءً على السياق.
كيفية تثبيت خادم Azure Functions MCP
دعونا نستعرض الخطوات لتثبيت وتكوين Azure Functions MCP:
المتطلبات الأساسية
- Visual Studio Code
- Tools Core لـ Azure Functions
- .NET SDK 6.0 أو أحدث (لتطوير C#)
- Node.js (لتطوير TypeScript)
- Python 3.8 أو أحدث (لتطوير Python)
- Azure CLI (للنشر إلى Azure)
خطوات التثبيت
إنشاء مشروع Azure Functions: ابدأ بإنشاء مشروع Azure Functions جديد بلغة تفضلها. يمكنك اتباع وثائق Azure Functions الخاصة بـ Visual Studio Code لإنشاء مشروع.
إضافة ملحق MCP:
لـ C#:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Mcp --version 1.0.0-preview.1
بالنسبة لـ Python و Node.js، ستحتاج إلى إضافة حزمة ملحق تجريبية إلى ملف host.json الخاص بك:
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Experimental",
"version": "[4.*, 5.0.0)"
}
تثبيت Azurite (للتطوير المحلي): حيث إن ملحق MCP يستخدم تخزين blob، ستحتاج إلى تشغيل Azurite، المحاكي لتخزين Azure، محليًا:
افتح لوحة الأوامر (Shift + Ctrl + P)
اختر "Azurite: Start"
قم بتحديث ملف local.settings.json لاستخدامه:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
}
}
كيفية بدء خادم Azure Functions MCP
الآن بعد أن قمت بتثبيت ملحق MCP، دعنا ننشئ ونشغل خادم MCP:
إنشاء أداة MCP
إليك مثال عن كيفية إنشاء أداة بسيطة للوقت في C#:
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Mcp;
using System.Globalization;
using System.Text.Json;
namespace AzfuncMcp;
public class TimeUtil
{
[Function(nameof(GetCurrentTime))]
public string GetCurrentTime(
[McpToolTrigger("getcurrenttime", "يحصل على الوقت الحالي. إذا لم يتم تحديد منطقة زمنية، ستعيد الأداة الوقت بتنسيق UTC.")] ToolInvocationContext context,
[McpToolProperty("timezone", "string", "اسم المنطقة الزمنية.")] string timezone = "UTC")
{
try
{
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timezone);
DateTime currentTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timeZoneInfo);
var response = new {
timezone = timeZoneInfo.StandardName,
time = currentTime.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture),
displayName = timeZoneInfo.DisplayName
};
return JsonSerializer.Serialize(response);
}
catch (TimeZoneNotFoundException)
{
return $"لم يتم العثور على المنطقة الزمنية '{timezone}'.";
}
catch (InvalidTimeZoneException)
{
return $"المنطقة الزمنية '{timezone}' غير صالحة.";
}
catch
{
return "لم أتمكن من الحصول على الوقت الحالي.";
}
}
}
تكوين Program.cs لـ MCP
قم بتحديث ملف Program.cs الخاص بك لتسجيل أداة MCP:
using Microsoft.Azure.Functions.Worker.Builder;
using Microsoft.Extensions.Hosting;
using AzfuncMcp;
var builder = FunctionsApplicationBuilder.CreateBuilder(args);
builder.ConfigureFunctionsWebApplication();
builder.EnableMcpToolMetadata();
builder.ConfigureMcpTool(nameof(TimeUtil.GetCurrentTime))
.WithProperty("timezone", "string", "المنطقة الزمنية.");
builder.Build().Run();
بدء الخادم
لبدء خادم MCP محليًا:
تأكد من تشغيل Azurite.
افتح نافذة الأوامر في دليل مشروعك.
نفذ هذا الأمر:
func start
أو استخدم ميزات تصحيح Visual Studio Code:
- افتح عرض "التشغيل والتصحيح"
- اختر "Attach to .NET Functions"
- اضغط على F5 أو انقر فوق زر التشغيل الأخضر
بمجرد البدء، سيكون خادم MCP الخاص بك قابلًا للوصول على: http://localhost:7071/runtime/webhooks/mcp/sse
كيفية استخدام خادم Azure Functions MCP مع GitHub Copilot
الآن بعد أن يعمل خادم MCP الخاص بك، دعنا نوصله بـ GitHub Copilot:
تكوين GitHub Copilot لاستخدام خادم MCP الخاص بك
أضف خادم MCP الخاص بك إلى VS Code:
- افتح لوحة الأوامر (Shift + Ctrl + P)
- اكتب واختر "MCP: Add Server"

- اختر خيار "HTTP (server sent events)"

- أدخل عنوان URL:
http://localhost:7071/runtime/webhooks/mcp/sse - امنح خادمك اسمًا (على سبيل المثال، "my-azfunc-mcp-server")
تحقق من التكوين: يجب أن يتم تحديث ملف settings.json في مساحة عمل VS Code الخاصة بك بشيء مثل:
"mcp": {
"inputs": [],
"servers": {
"my-azfunc-mcp-server": {
"type": "sse",
"url": "<http://localhost:7071/runtime/webhooks/mcp/sse>"
}
}
}
قم بإزالة خوادم نموذجية إذا لزم الأمر: إذا كانت هناك أي خوادم نموذجية تم تكوينها مسبقًا (مثل "mcp-server-time")، قد ترغب في إزالتها لتفادي التعارض مع تطبيقك.
استخدام خادم MCP الخاص بك مع GitHub Copilot
- افتح دردشة GitHub Copilot:
- تأكد من تعيين الوضع على "وضع وكيل" (هذا ضروري لوظائف MCP)
- قم بتمكين خادم MCP الخاص بك:
- انقر فوق رمز إعدادات MCP (رمز المفك والمفتاح)
- تأكد من تمكين خادم MCP المضاف الخاص بك
- تفاعل مع أداتك:
- في نافذة الدردشة، اطرح سؤالاً يتطلب استخدام أداة MCP الخاصة بك
- على سبيل المثال، مع أداتنا الخاصة بالوقت، يمكنك أن تسأل "ما هو الوقت الآن؟" أو "ما هو الوقت الحالي في طوكيو؟"
- سيطلب منك GitHub Copilot الإذن لاستخدام أداة MCP الخارجية
- بعد النقر على "متابعة"، سيستدعي Copilot أداة MCP الخاصة بك ويعرض النتائج
- راقب وظيفتك في العمل: إذا كنت تعمل في وضع التصحيح، يمكنك تعيين نقاط توقف في وظيفتك ورؤيتها تُنفذ عندما يستدعي GitHub Copilot أداتك.
نشر إلى Azure
للاستخدام في الإنتاج، سترغب في نشر خادم MCP الخاص بك إلى Azure:
نشر تطبيق الوظيفة الخاصة بك باستخدام أدوات Azure Functions Core أو Azure Developer CLI:
func azure functionapp publish <اسم تطبيق الوظيفة الخاص بك>
أو
azd up
تكوين عميل MCP مع المصادقة: عند الوصول إلى وظيفة Azure التي تم نشرها، ستحتاج إلى تقديم المصادقة. قم بتحديث ملف settings.json الخاص بك:
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "functions-mcp-extension-system-key",
"description": "مفتاح نظام ملحق Azure Functions MCP",
"password": true
}
],
"servers": {
"my-azfunc-mcp-server": {
"type": "sse",
"url": "<اسم التطبيق الخاص بك>.azurewebsites.net/runtime/webhooks/mcp/sse",
"headers": {
"x-functions-key": "${input:functions-mcp-extension-system-key}"
}
}
}
}
احصل على مفتاح الوظيفة الخاصة بك:
- انتقل إلى تطبيق الوظيفة الخاص بك في Azure Portal
- اذهب إلى مفاتيح التطبيقات
- انسخ مفتاح النظام
mcp_extension
حالات استخدام المثال
يمكن استخدام Azure Functions MCP لمجموعة متنوعة من السيناريوهات:
- إدارة مقتطفات الشيفرة: إنشاء أدوات لحفظ واسترجاع مقتطفات الشيفرة
- استرجاع البيانات: الوصول إلى قواعد البيانات أو واجهات برمجة التطبيقات لجلب معلومات محددة
- عمليات حسابية: إجراء حسابات معقدة يصعب القيام بها من قبل LLM
- دمج النظام الخارجي: الاتصال بأنظمة أو واجهات برمجة تطبيقات أو خدمات المؤسسات
القيود والاعتبارات
- هذه معاينة تجريبية مبكرة، لذا توقع تغييرات كبيرة أثناء تطور الميزة.
- في وقت كتابة هذا النص، قد يواجه استضافة Azure Functions على نظام Windows مشكلات مع MCP؛ يوصى باستضافة Linux.
- بينما يدعم MCP حاليًا الأدوات، ستضاف ميزات أخرى مثل المطالبات مع مرور الوقت.
- نظرًا لأن هذه ميزة معاينة، فإنها لا تتأهل بعد لخطط الدعم القياسية من Azure.
الخاتمة
يوفر Azure Functions MCP طريقة قوية لتوسيع وكلاء الذكاء الاصطناعي بأدوات مخصصة يمكن أن تستفيد من القوة الكاملة لنظام Azure البيئي. من خلال اتباع هذا الدليل، تعلمت كيف تثبت وتكوّن وتستخدم Azure Functions MCP مع GitHub Copilot.
مع زيادة اعتماد MCP، ستمنحك هذه المهارات القدرة على بناء تطبيقات متقدمة تعتمد على الذكاء الاصطناعي تجمع بين قدرات الاستدلال لنماذج اللغة الكبيرة وقدرات التنفيذ لشيفرتك المخصصة.
تذكر أن MCP معيار يتطور، وأن Azure Functions MCP في مرحلة المعاينة، لذا ترقب الوثائق الرسمية ومنتديات المجتمع للحصول على تحديثات وأفضل الممارسات.
الموارد
- إعلان رسمي عن Azure Functions MCP
- أمثلة Azure Functions MCP على GitHub
- أمثلة تنفيذ خوادم MCP
- وثائق Azure Functions
- وثائق GitHub Copilot
من خلال اتباع هذا الدليل، لديك الآن المعرفة للاستفادة من Azure Functions MCP لإنشاء أدوات قوية يمكن استخدامها من قبل وكلاء الذكاء الاصطناعي عبر GitHub Copilot وواجهات تدعم MCP الأخرى.
