14 KiB
🔧 الوحدة 3: تطوير متقدم لـ MCP باستخدام مجموعة أدوات Microsoft Foundry
🎯 أهداف التعلم
بنهاية هذا المختبر، ستكون قادرًا على:
- ✅ إنشاء خوادم MCP مخصصة باستخدام مجموعة أدوات Microsoft Foundry
- ✅ تكوين واستخدام أحدث إصدار من MCP Python SDK (النسخة 1.9.3)
- ✅ إعداد واستخدام MCP Inspector لأغراض التصحيح
- ✅ تصحيح خوادم MCP في بيئتي Agent Builder وInspector
- ✅ فهم سير عمل تطوير خوادم MCP المتقدم
📋 المتطلبات الأساسية
- إكمال المختبر 2 (أساسيات MCP)
- وجود VS Code مع إضافة Microsoft Foundry Toolkit مثبتة
- بيئة Python 3.10 أو أحدث
- Node.js و npm لإعداد Inspector
🏗️ ما ستقوم ببنائه
في هذا المختبر، ستقوم بإنشاء خادم MCP للطقس يُظهر ما يلي:
- تنفيذ خادم MCP مخصص
- التكامل مع Agent Builder في مجموعة أدوات Microsoft Foundry
- سير عمل احترافي للتصحيح
- أنماط استخدام حديثة لمكتبة MCP SDK
🔧 نظرة عامة على المكونات الأساسية
🐍 MCP Python SDK
توفر مكتبة Model Context Protocol الخاصة بـ Python الأساس لبناء خوادم MCP مخصصة. ستستخدم النسخة 1.9.3 مع ميزات تصحيح محسنة.
🔍 MCP Inspector
أداة تصحيح قوية توفر:
- مراقبة الخادم في الوقت الحقيقي
- تصور تنفيذ الأدوات
- فحص طلبات واستجابات الشبكة
- بيئة اختبار تفاعلية
📖 التنفيذ خطوة بخطوة
الخطوة 1: إنشاء WeatherAgent في Agent Builder
- افتح Agent Builder في VS Code عبر إضافة Microsoft Foundry Toolkit
- أنشئ وكيلًا جديدًا بالتكوين التالي:
- اسم الوكيل:
WeatherAgent
- اسم الوكيل:
الخطوة 2: تهيئة مشروع MCP Server
- انتقل إلى Tools → Add Tool في Agent Builder
- اختر "MCP Server" من الخيارات المتاحة
- اختر "Create A new MCP Server"
- حدد القالب
python-weather - قم بتسمية الخادم الخاص بك:
weather_mcp
الخطوة 3: افتح وتفحص المشروع
- افتح المشروع الذي تم إنشاؤه في VS Code
- راجع هيكل المشروع:
weather_mcp/ ├── src/ │ ├── __init__.py │ └── server.py ├── inspector/ │ ├── package.json │ └── package-lock.json ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── pyproject.toml └── README.md
الخطوة 4: الترقية إلى أحدث إصدار من MCP SDK
🔍 لماذا الترقية؟ نريد استخدام أحدث إصدار من MCP SDK (النسخة 1.9.3) وخدمة Inspector (الإصدار 0.14.0) لميزات محسنة وقدرات تصحيح أفضل.
4a. تحديث تبعيات Python
عدل pyproject.toml: تحديث الملف ./code/weather_mcp/pyproject.toml
4b. تحديث تكوين Inspector
عدل inspector/package.json: تحديث الملف ./code/weather_mcp/inspector/package.json
4c. تحديث تبعيات Inspector
عدل inspector/package-lock.json: تحديث الملف ./code/weather_mcp/inspector/package-lock.json
📝 ملاحظة: يحتوي هذا الملف على تعريفات تبعيات كبيرة. فيما يلي الهيكل الأساسي - المحتوى الكامل يضمن حل الاعتمادية بشكل صحيح.
⚡ قفل الحزمة الكامل: يحتوي package-lock.json الكامل على حوالي 3000 سطر من تعريفات التبعيات. ما سبق يوضح الهيكل الرئيسي - استخدم الملف المرفق لحل كامل للتبعيات.
الخطوة 5: تكوين تصحيح الأخطاء في VS Code
ملاحظة: يرجى نسخ الملف في المسار المحدد لاستبدال الملف المحلي المقابل
5a. تحديث تكوين الإطلاق
عدل .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Local MCP",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen",
"postDebugTask": "Terminate All Tasks"
},
{
"name": "Launch Inspector (Edge)",
"type": "msedge",
"request": "launch",
"url": "http://localhost:6274?timeout=60000&serverUrl=http://localhost:3001/sse#tools",
"cascadeTerminateToConfigurations": [
"Attach to Local MCP"
],
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen"
},
{
"name": "Launch Inspector (Chrome)",
"type": "chrome",
"request": "launch",
"url": "http://localhost:6274?timeout=60000&serverUrl=http://localhost:3001/sse#tools",
"cascadeTerminateToConfigurations": [
"Attach to Local MCP"
],
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen"
}
],
"compounds": [
{
"name": "Debug in Agent Builder",
"configurations": [
"Attach to Local MCP"
],
"preLaunchTask": "Open Agent Builder",
},
{
"name": "Debug in Inspector (Edge)",
"configurations": [
"Launch Inspector (Edge)",
"Attach to Local MCP"
],
"preLaunchTask": "Start MCP Inspector",
"stopAll": true
},
{
"name": "Debug in Inspector (Chrome)",
"configurations": [
"Launch Inspector (Chrome)",
"Attach to Local MCP"
],
"preLaunchTask": "Start MCP Inspector",
"stopAll": true
}
]
}
عدل .vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "Start MCP Server",
"type": "shell",
"command": "python -m debugpy --listen 127.0.0.1:5678 src/__init__.py sse",
"isBackground": true,
"options": {
"cwd": "${workspaceFolder}",
"env": {
"PORT": "3001"
}
},
"problemMatcher": {
"pattern": [
{
"regexp": "^.*$",
"file": 0,
"location": 1,
"message": 2
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".*",
"endsPattern": "Application startup complete|running"
}
}
},
{
"label": "Start MCP Inspector",
"type": "shell",
"command": "npm run dev:inspector",
"isBackground": true,
"options": {
"cwd": "${workspaceFolder}/inspector",
"env": {
"CLIENT_PORT": "6274",
"SERVER_PORT": "6277",
}
},
"problemMatcher": {
"pattern": [
{
"regexp": "^.*$",
"file": 0,
"location": 1,
"message": 2
}
],
"background": {
"activeOnStart": true,
"beginsPattern": "Starting MCP inspector",
"endsPattern": "Proxy server listening on port"
}
},
"dependsOn": [
"Start MCP Server"
]
},
{
"label": "Open Agent Builder",
"type": "shell",
"command": "echo ${input:openAgentBuilder}",
"presentation": {
"reveal": "never"
},
"dependsOn": [
"Start MCP Server"
],
},
{
"label": "Terminate All Tasks",
"command": "echo ${input:terminate}",
"type": "shell",
"problemMatcher": []
}
],
"inputs": [
{
"id": "openAgentBuilder",
"type": "command",
"command": "ai-mlstudio.agentBuilder",
"args": {
"initialMCPs": [ "local-server-weather_mcp" ],
"triggeredFrom": "vsc-tasks"
}
},
{
"id": "terminate",
"type": "command",
"command": "workbench.action.tasks.terminate",
"args": "terminateAll"
}
]
}
🚀 تشغيل واختبار خادم MCP الخاص بك
الخطوة 6: تثبيت التبعيات
بعد إجراء تغييرات التكوين، شغّل الأوامر التالية:
تثبيت تبعيات Python:
uv sync
تثبيت تبعيات Inspector:
cd inspector
npm install
الخطوة 7: التصحيح باستخدام Agent Builder
- اضغط على F5 أو استخدم إعداد "Debug in Agent Builder"
- اختر التكوين المركب من لوحة التصحيح
- انتظر حتى يبدأ الخادم وفتح Agent Builder
- اختبر خادم MCP الخاص بالطقس باستخدام استفسارات اللغة الطبيعية
أدخل مدخلات مثل هذه
SYSTEM_PROMPT
You are my weather assistant
USER_PROMPT
How's the weather like in Seattle
الخطوة 8: التصحيح باستخدام MCP Inspector
- استخدم إعداد "Debug in Inspector" (على متصفح Edge أو Chrome)
- افتح واجهة Inspector على العنوان
http://localhost:6274 - استكشف بيئة الاختبار التفاعلية:
- عرض الأدوات المتاحة
- اختبار تنفيذ الأدوات
- مراقبة طلبات الشبكة
- تصحيح استجابات الخادم
🎯 النتائج الرئيسية للتعلم
عند إتمام هذا المختبر، تكون قد:
- أنشأت خادم MCP مخصص باستخدام قوالب Microsoft Foundry Toolkit
- قمت بالترقية إلى أحدث MCP SDK (النسخة 1.9.3) لوظائف محسنة
- كونت سير عمل احترافي للتصحيح لكل من Agent Builder وInspector
- أعددت MCP Inspector لاختبار الخادم التفاعلي
- أتقنت تكوينات تصحيح الأخطاء في VS Code لتطوير MCP
🔧 الميزات المتقدمة التي تم استكشافها
| الميزة | الوصف | حالة الاستخدام |
|---|---|---|
| MCP Python SDK v1.9.3 | أحدث تنفيذ للبروتوكول | تطوير الخوادم الحديثة |
| MCP Inspector 0.14.0 | أداة تصحيح تفاعلية | اختبار الخوادم في الوقت الحقيقي |
| تصحيح VS Code | بيئة تطوير متكاملة | سير عمل تصحيح احترافي |
| تكامل Agent Builder | اتصال مباشر مع Microsoft Foundry Toolkit | اختبار الوكلاء من البداية إلى النهاية |
📚 موارد إضافية
- توثيق MCP Python SDK
- دليل إضافة Microsoft Foundry Toolkit
- توثيق تصحيح VS Code
- مواصفات Model Context Protocol
🎉 تهانينا! لقد أكملت بنجاح المختبر 3 وأصبحت الآن قادرًا على إنشاء وتصحيح ونشر خوادم MCP مخصصة باستخدام سير عمل تطوير احترافي.
🔜 تابع إلى الوحدة التالية
هل أنت مستعد لتطبيق مهارات MCP على سير عمل تطوير واقعي؟ تابع إلى الوحدة 4: تطوير MCP عملي - خادم استنساخ GitHub مخصص حيث ستقوم بـ:
- بناء خادم MCP جاهز للإنتاج لأتمتة عمليات مستودعات GitHub
- تنفيذ وظيفة استنساخ مستودعات GitHub عبر MCP
- دمج خوادم MCP مخصصة مع VS Code ووضع GitHub Copilot Agent
- اختبار ونشر خوادم MCP مخصصة في بيئات الإنتاج
- تعلم أتمتة سير العمل العملي للمطورين
تنويه: تمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.



