# القسم 03 - دمج بروتوكول سياق النموذج (MCP) ## مقدمة إلى MCP (بروتوكول سياق النموذج) بروتوكول سياق النموذج (MCP) هو معيار مفتوح المصدر يتيح ربط تطبيقات الذكاء الاصطناعي بأنظمة خارجية. باستخدام MCP، يمكن لتطبيقات الذكاء الاصطناعي مثل Claude أو ChatGPT الاتصال بمصادر البيانات (مثل الملفات المحلية، قواعد البيانات)، الأدوات (مثل محركات البحث، الآلات الحاسبة)، وعمليات العمل (مثل المطالبات المتخصصة)—مما يتيح لها الوصول إلى معلومات رئيسية وأداء المهام. فكر في MCP كأنه **منفذ USB-C لتطبيقات الذكاء الاصطناعي**. تمامًا كما يوفر USB-C طريقة موحدة لربط الأجهزة الإلكترونية، يوفر MCP طريقة موحدة لربط تطبيقات الذكاء الاصطناعي بأنظمة خارجية. ### ماذا يمكن أن يتيح MCP؟ MCP يفتح إمكانيات قوية لتطبيقات الذكاء الاصطناعي: - **مساعدين شخصيين مخصصين**: يمكن للوكلاء الوصول إلى Google Calendar وNotion الخاص بك، ليعملوا كمساعدين شخصيين أكثر تخصيصًا. - **توليد أكواد متقدمة**: يمكن لـ Claude Code إنشاء تطبيق ويب كامل باستخدام تصميم Figma. - **دمج بيانات المؤسسات**: يمكن لروبوتات الدردشة المؤسسية الاتصال بقواعد بيانات متعددة داخل المؤسسة، مما يمكن المستخدمين من تحليل البيانات باستخدام الدردشة. - **عمليات إبداعية**: يمكن لنماذج الذكاء الاصطناعي إنشاء تصميمات ثلاثية الأبعاد على Blender وطباعتها باستخدام طابعة ثلاثية الأبعاد. - **الوصول إلى المعلومات في الوقت الفعلي**: الاتصال بمصادر البيانات الخارجية للحصول على معلومات محدثة. - **عمليات متعددة الخطوات المعقدة**: تنفيذ عمليات عمل متطورة تجمع بين أدوات وأنظمة متعددة. ### لماذا يعتبر MCP مهمًا؟ MCP يقدم فوائد عبر النظام البيئي: **للمطورين**: يقلل MCP من وقت التطوير وتعقيده عند بناء أو دمج تطبيق أو وكيل ذكاء اصطناعي. **لتطبيقات الذكاء الاصطناعي**: يوفر MCP الوصول إلى نظام بيئي من مصادر البيانات، الأدوات والتطبيقات التي تعزز القدرات وتحسن تجربة المستخدم النهائي. **للمستخدمين النهائيين**: يؤدي MCP إلى تطبيقات أو وكلاء ذكاء اصطناعي أكثر قدرة يمكنها الوصول إلى بياناتك واتخاذ الإجراءات نيابة عنك عند الحاجة. ## نماذج اللغة الصغيرة (SLMs) في MCP تمثل نماذج اللغة الصغيرة نهجًا فعالًا لنشر الذكاء الاصطناعي، حيث تقدم العديد من المزايا: ### فوائد SLMs - **كفاءة الموارد**: متطلبات حسابية أقل. - **أوقات استجابة أسرع**: تقليل التأخير للتطبيقات في الوقت الفعلي. - **فعالية التكلفة**: احتياجات بنية تحتية بسيطة. - **الخصوصية**: يمكن تشغيلها محليًا دون نقل البيانات. - **التخصيص**: أسهل في التعديل لتناسب مجالات محددة. ### لماذا تعمل SLMs بشكل جيد مع MCP عند اقتران SLMs مع MCP، يتم إنشاء مزيج قوي حيث يتم تعزيز قدرات التفكير للنموذج بواسطة الأدوات الخارجية، مما يعوض عن العدد الأصغر من المعلمات من خلال الوظائف المحسنة. ## نظرة عامة على Python MCP SDK يوفر Python MCP SDK الأساس لبناء تطبيقات مدعومة بـ MCP. يتضمن SDK: - **مكتبات العملاء**: للاتصال بخوادم MCP. - **إطار عمل الخادم**: لإنشاء خوادم MCP مخصصة. - **معالجات البروتوكول**: لإدارة الاتصالات. - **دمج الأدوات**: لتنفيذ الوظائف الخارجية. ## التنفيذ العملي: عميل Phi-4 MCP لنستكشف تنفيذًا واقعيًا باستخدام نموذج Phi-4 المصغر من Microsoft المدمج مع قدرات MCP. ### نظرة عامة على بنية MCP يتبع MCP **بنية العميل-الخادم** حيث يقوم مضيف MCP (تطبيق ذكاء اصطناعي مثل Claude Code أو Claude Desktop) بإنشاء اتصالات مع خادم أو أكثر من خوادم MCP. يحقق مضيف MCP ذلك من خلال إنشاء عميل MCP لكل خادم MCP. #### المشاركون الرئيسيون - **مضيف MCP**: تطبيق الذكاء الاصطناعي الذي ينسق ويدير واحدًا أو أكثر من عملاء MCP. - **عميل MCP**: مكون يحافظ على اتصال بخادم MCP ويحصل على السياق من خادم MCP ليستخدمه مضيف MCP. - **خادم MCP**: برنامج يوفر السياق لعملاء MCP. #### بنية ذات طبقتين يتكون MCP من طبقتين مميزتين: **طبقة البيانات**: تحدد البروتوكول القائم على JSON-RPC للاتصال بين العميل والخادم، بما في ذلك: - إدارة دورة الحياة (تهيئة الاتصال، التفاوض على القدرات). - العناصر الأساسية (الأدوات، الموارد، المطالبات). - ميزات العميل (أخذ العينات، الاستنباط، التسجيل). - ميزات المرافق (الإشعارات، تتبع التقدم). **طبقة النقل**: تحدد آليات وقنوات الاتصال: - **نقل STDIO**: يستخدم تدفقات الإدخال/الإخراج القياسية للعمليات المحلية (أداء مثالي، بدون عبء شبكة). - **نقل HTTP القابل للبث**: يستخدم HTTP POST مع أحداث الخادم المرسلة الاختيارية للخوادم البعيدة (يدعم المصادقة القياسية لـ HTTP). ``` ┌─────────────────────────────────────┐ │ MCP Host │ │ (AI Application) │ └─────────────────┬───────────────────┘ │ ┌─────────────────┴───────────────────┐ │ MCP Client 1 │ │ ┌─────────────────────────────────┐ │ │ │ Data Layer │ │ │ │ ├── Lifecycle Management │ │ │ │ ├── Primitives (Tools/Resources)│ │ │ │ └── Notifications │ │ │ └─────────────────────────────────┘ │ │ ┌─────────────────────────────────┐ │ │ │ Transport Layer │ │ │ │ ├── STDIO Transport │ │ │ │ └── HTTP Transport │ │ │ └─────────────────────────────────┘ │ └─────────────────┬───────────────────┘ │ ┌─────────────────┴───────────────────┐ │ MCP Server 1 │ │ (Local/Remote Context Provider) │ └─────────────────────────────────────┘ ``` ### العناصر الأساسية لـ MCP يحدد MCP العناصر التي تحدد أنواع المعلومات السياقية التي يمكن مشاركتها مع تطبيقات الذكاء الاصطناعي ونطاق الإجراءات التي يمكن تنفيذها. #### عناصر الخادم يحدد MCP ثلاثة عناصر أساسية يمكن للخوادم كشفها: **الأدوات**: وظائف قابلة للتنفيذ يمكن لتطبيقات الذكاء الاصطناعي استدعاؤها لتنفيذ الإجراءات. - أمثلة: عمليات الملفات، استدعاءات API، استعلامات قواعد البيانات. - الطرق: `tools/list`, `tools/call`. - دعم الاكتشاف والتنفيذ الديناميكي. **الموارد**: مصادر البيانات التي توفر معلومات سياقية لتطبيقات الذكاء الاصطناعي. - أمثلة: محتويات الملفات، سجلات قواعد البيانات، استجابات API. - الطرق: `resources/list`, `resources/read`. - تمكين الوصول إلى البيانات المنظمة. **المطالبات**: قوالب قابلة لإعادة الاستخدام تساعد في هيكلة التفاعلات مع نماذج اللغة. - أمثلة: مطالبات النظام، أمثلة قليلة. - الطرق: `prompts/list`, `prompts/get`. - توحيد أنماط التفاعل مع الذكاء الاصطناعي. #### عناصر العميل يحدد MCP أيضًا عناصر يمكن للعملاء كشفها لتمكين تفاعلات أكثر ثراءً: **أخذ العينات**: يسمح للخوادم بطلب إكمالات نموذج اللغة من تطبيق الذكاء الاصطناعي الخاص بالعميل. - الطريقة: `sampling/complete`. - يتيح تطوير الخوادم المستقلة عن النموذج. - يوفر الوصول إلى نموذج اللغة الخاص بالمضيف. **الاستنباط**: يسمح للخوادم بطلب معلومات إضافية من المستخدمين. - الطريقة: `elicitation/request`. - يتيح التفاعل مع المستخدم والتأكيد. - يدعم جمع المعلومات الديناميكي. **التسجيل**: يتيح للخوادم إرسال رسائل تسجيل إلى العملاء. - يستخدم لأغراض التصحيح والمراقبة. - يوفر رؤية لعمليات الخادم. ### دورة حياة بروتوكول MCP #### التهيئة والتفاوض على القدرات MCP هو بروتوكول قائم على الحالة يتطلب إدارة دورة الحياة. تخدم عملية التهيئة عدة أغراض حاسمة: 1. **التفاوض على إصدار البروتوكول**: يضمن استخدام العميل والخادم لإصدارات بروتوكول متوافقة (مثل "2025-06-18"). 2. **اكتشاف القدرات**: يعلن كل طرف عن الميزات والعناصر المدعومة. 3. **تبادل الهوية**: يوفر معلومات التعريف والإصدار. ```python # Example initialization request { "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "protocolVersion": "2025-06-18", "capabilities": { "elicitation": {}, # Client supports user interaction "sampling": {} # Client can provide LLM completions }, "clientInfo": { "name": "edge-ai-client", "version": "1.0.0" } } } ``` #### اكتشاف الأدوات وتنفيذها بعد التهيئة، يمكن للعملاء اكتشاف الأدوات وتنفيذها: ```python # Discover available tools tools_response = await session.list_tools() # Execute a tool result = await session.call_tool( "weather_current", { "location": "San Francisco", "units": "imperial" } ) ``` #### الإشعارات في الوقت الفعلي يدعم MCP الإشعارات في الوقت الفعلي للتحديثات الديناميكية: ```python # Server sends notification when tools change { "jsonrpc": "2.0", "method": "notifications/tools/list_changed" } # Client responds by refreshing tool list await session.list_tools() # Get updated tools ``` ## البدء: دليل خطوة بخطوة ### الخطوة 1: إعداد البيئة قم بتثبيت التبعيات المطلوبة: ```bash pip install fastmcp mcp-python-client openai requests pyautogui Pillow ``` ### الخطوة 2: التكوين الأساسي قم بإعداد متغيرات البيئة الخاصة بك: ```python # System Configuration SYSTEM_PROMPT = "You are an AI assistant with some tools." # Ollama Configuration (Local) OLLAMA_URL = "http://localhost:11434/api/chat" OLLAMA_MODEL_ID = "phi4-mini:3.8b-fp16" # vLLM Configuration (Server) VLLM_URL = "http://localhost:8000/v1" VLLM_MODEL_ID = "microsoft/Phi-4-mini-instruct" ``` ### الخطوة 3: تشغيل أول عميل MCP **إعداد Ollama الأساسي:** ```bash python ghmodel_mcp_demo.py ``` **استخدام vLLM كخلفية:** ```bash python ghmodel_mcp_demo.py --env vllm ``` **اتصال أحداث الخادم المرسلة:** ```bash python ghmodel_mcp_demo.py --run sse ``` **خادم MCP مخصص:** ```bash python ghmodel_mcp_demo.py --server /path/to/server.py ``` ### الخطوة 4: الاستخدام البرمجي ```python import asyncio from ghmodel_mcp_demo import OllamaClient, Phi4MiniMCPClient async def automated_interaction(): # Configure MCP server parameters server_params = StdioServerParameters( command="npx", args=["@playwright/mcp@latest"], env=None, ) # Create MCP client and process tools async with Phi4MiniMCPClient(server_params) as mcp_client: tools = await process_mcp_tools(mcp_client) llm_client = OllamaClient() # Generate response with tool capabilities response, messages = await llm_client.generate_response( "Help me automate a web task", tools ) return response # Execute the automation result = asyncio.run(automated_interaction()) print(result) ``` ## الميزات المتقدمة ### دعم الخلفيات المتعددة يدعم التنفيذ كل من خلفيات Ollama وvLLM، مما يتيح لك الاختيار بناءً على متطلباتك: - **Ollama**: أفضل للتطوير المحلي والاختبار. - **vLLM**: مُحسّن للإنتاج والسيناريوهات ذات الإنتاجية العالية. ### بروتوكولات اتصال مرنة يتم دعم وضعين للاتصال: **وضع STDIO**: اتصال مباشر بين العمليات. - تأخير أقل. - مناسب للأدوات المحلية. - إعداد بسيط. **وضع SSE**: بث قائم على HTTP. - قابلية الشبكة. - أفضل للأنظمة الموزعة. - تحديثات في الوقت الفعلي. ### قدرات دمج الأدوات يمكن للنظام دمج أدوات متنوعة: - أتمتة الويب (Playwright). - عمليات الملفات. - تفاعلات API. - أوامر النظام. - وظائف مخصصة. ## إدارة الأخطاء وأفضل الممارسات ### إدارة الأخطاء الشاملة يتضمن التنفيذ إدارة أخطاء قوية لـ: **أخطاء الاتصال:** - فشل خادم MCP. - انتهاء مهلة الشبكة. - مشاكل الاتصال. **أخطاء تنفيذ الأدوات:** - أدوات مفقودة. - التحقق من صحة المعلمات. - فشل التنفيذ. **أخطاء معالجة الاستجابة:** - مشاكل تحليل JSON. - تناقضات التنسيق. - شذوذ استجابة LLM. ### أفضل الممارسات 1. **إدارة الموارد**: استخدم مديري السياق غير المتزامنين. 2. **إدارة الأخطاء**: قم بتنفيذ كتل try-catch شاملة. 3. **التسجيل**: قم بتمكين مستويات التسجيل المناسبة. 4. **الأمان**: تحقق من المدخلات ونظف المخرجات. 5. **الأداء**: استخدم تجميع الاتصالات والتخزين المؤقت. ## التطبيقات الواقعية ### أتمتة الويب ```python # Example: Automated web testing async def web_automation_example(): tools = await setup_playwright_tools() response = await llm_client.generate_response( "Navigate to example.com and take a screenshot", tools ) ``` ### معالجة البيانات ```python # Example: File analysis async def data_processing_example(): tools = await setup_file_tools() response = await llm_client.generate_response( "Analyze the CSV file and generate a summary report", tools ) ``` ### دمج API ```python # Example: API interactions async def api_integration_example(): tools = await setup_api_tools() response = await llm_client.generate_response( "Fetch weather data and create a forecast summary", tools ) ``` ## تحسين الأداء ### إدارة الذاكرة - معالجة فعالة لتاريخ الرسائل. - تنظيف الموارد بشكل صحيح. - تجميع الاتصالات. ### تحسين الشبكة - عمليات HTTP غير المتزامنة. - إعداد مهلات قابلة للتكوين. - استرداد الأخطاء بسلاسة. ### المعالجة المتزامنة - إدخال/إخراج غير محجوب. - تنفيذ الأدوات بالتوازي. - أنماط غير متزامنة فعالة. ## اعتبارات الأمان ### حماية البيانات - إدارة مفاتيح API بشكل آمن. - التحقق من المدخلات. - تنظيف المخرجات. ### أمان الشبكة - دعم HTTPS. - إعدادات افتراضية لنقاط النهاية المحلية. - التعامل الآمن مع الرموز. ### سلامة التنفيذ - تصفية الأدوات. - بيئات معزولة. - تسجيل التدقيق. ## نظام MCP والبيئة التطويرية ### نطاق مشروع MCP يتضمن نظام بروتوكول سياق النموذج عدة مكونات رئيسية: - **[مواصفات MCP](https://modelcontextprotocol.io/specification/latest)**: المواصفات الرسمية التي تحدد متطلبات التنفيذ للعملاء والخوادم. - **[SDKs MCP](https://modelcontextprotocol.io/docs/sdk)**: SDKs للغات البرمجة المختلفة التي تنفذ MCP. - **أدوات تطوير MCP**: أدوات لتطوير خوادم وعملاء MCP، بما في ذلك [MCP Inspector](https://github.com/modelcontextprotocol/inspector). - **[تنفيذات خوادم MCP المرجعية](https://github.com/modelcontextprotocol/servers)**: تنفيذات مرجعية لخوادم MCP. ### البدء في تطوير MCP لبدء البناء باستخدام MCP: **بناء الخوادم**: [إنشاء خوادم MCP](https://modelcontextprotocol.io/docs/develop/build-server) لكشف بياناتك وأدواتك. **بناء العملاء**: [تطوير التطبيقات](https://modelcontextprotocol.io/docs/develop/build-client) التي تتصل بخوادم MCP. **تعلم المفاهيم**: [فهم المفاهيم الأساسية](https://modelcontextprotocol.io/docs/learn/architecture) وبنية MCP. ## الخاتمة تمثل نماذج اللغة الصغيرة المدمجة مع MCP تحولًا في تطوير تطبيقات الذكاء الاصطناعي. من خلال الجمع بين كفاءة النماذج الصغيرة وقوة الأدوات الخارجية، يمكن للمطورين إنشاء أنظمة ذكية تكون فعالة من حيث الموارد وقادرة للغاية. يوفر بروتوكول سياق النموذج طريقة موحدة لربط تطبيقات الذكاء الاصطناعي بأنظمة خارجية، تمامًا كما يوفر USB-C معيار اتصال عالمي للأجهزة الإلكترونية. يتيح هذا التوحيد: - **دمج سلس**: ربط نماذج الذكاء الاصطناعي بمصادر بيانات وأدوات متنوعة. - **نمو النظام البيئي**: بناء مرة واحدة، واستخدام عبر تطبيقات ذكاء اصطناعي متعددة. - **قدرات محسنة**: تعزيز نماذج اللغة الصغيرة بوظائف خارجية. - **تحديثات في الوقت الفعلي**: دعم تطبيقات ذكاء اصطناعي ديناميكية ومستجيبة. النقاط الرئيسية: - MCP هو معيار مفتوح يربط تطبيقات الذكاء الاصطناعي بأنظمة خارجية. - يدعم البروتوكول الأدوات، الموارد، والمطالبات كعناصر أساسية. - تتيح الإشعارات في الوقت الفعلي تطبيقات ديناميكية ومستجيبة. - إدارة دورة الحياة وإدارة الأخطاء ضرورية للاستخدام الإنتاجي. - يوفر النظام البيئي SDKs وأدوات تطوير شاملة. ## المراجع والقراءة الإضافية ### وثائق MCP الرسمية - **[الموقع الرسمي لبروتوكول سياق النموذج](https://modelcontextprotocol.io/)** - وثائق ومواصفات كاملة. - **[دليل البدء MCP](https://modelcontextprotocol.io/docs/getting-started/intro)** - مقدمة ومفاهيم أساسية. - **[نظرة عامة على بنية MCP](https://modelcontextprotocol.io/docs/learn/architecture)** - بنية تقنية مفصلة. - **[مواصفات MCP](https://modelcontextprotocol.io/specification/latest)** - مواصفات البروتوكول الرسمية. - **[وثائق SDKs MCP](https://modelcontextprotocol.io/docs/sdk)** - أدلة SDK الخاصة باللغات. ### موارد التطوير - **[MCP للمبتدئين](https://aka.ms/mcp-for-beginners)** - دليل شامل للمبتدئين حول بروتوكول سياق النموذج. - **[منظمة GitHub MCP](https://github.com/modelcontextprotocol)** - المستودعات الرسمية والأمثلة. - **[مستودع خادم MCP](https://github.com/modelcontextprotocol/servers)** - تنفيذات خوادم مرجعية. - **[MCP Inspector](https://github.com/modelcontextprotocol/inspector)** - أداة تطوير وتصحيح. - **[دليل بناء خوادم MCP](https://modelcontextprotocol.io/docs/develop/build-server)** - برنامج تعليمي لتطوير الخوادم. - **[دليل بناء عملاء MCP](https://modelcontextprotocol.io/docs/develop/build-client)** - برنامج تعليمي لتطوير العملاء. ### نماذج اللغة الصغيرة والذكاء الاصطناعي الطرفي - **[نماذج Microsoft Phi](https://aka.ms/phicookbook)** - عائلة نماذج Phi. - **[وثائق Foundry Local](https://github.com/microsoft/Foundry-Local)** - بيئة تشغيل الذكاء الاصطناعي الطرفي من Microsoft. - **[وثائق Ollama](https://ollama.ai/docs)** - منصة نشر LLM محليًا - **[وثائق vLLM](https://docs.vllm.ai/)** - خدمة LLM عالية الأداء ### المعايير التقنية والبروتوكولات - **[مواصفات JSON-RPC 2.0](https://www.jsonrpc.org/)** - بروتوكول RPC الأساسي المستخدم بواسطة MCP - **[JSON Schema](https://json-schema.org/)** - معيار تعريف المخططات لأدوات MCP - **[مواصفات OpenAPI](https://swagger.io/specification/)** - معيار توثيق API - **[Server-Sent Events (SSE)](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events)** - معيار ويب للتحديثات الفورية ### تطوير وكلاء الذكاء الاصطناعي - **[إطار عمل Microsoft Agent](https://github.com/microsoft/agent-framework)** - تطوير وكلاء جاهزين للإنتاج - **[وثائق LangChain](https://docs.langchain.com/)** - إطار عمل لتكامل الوكلاء والأدوات - **[Semantic Kernel](https://learn.microsoft.com/en-us/semantic-kernel/)** - SDK تنسيق الذكاء الاصطناعي من Microsoft ### تقارير الصناعة والأبحاث - **[إعلان بروتوكول سياق النموذج من Anthropic](https://www.anthropic.com/news/model-context-protocol)** - تقديم MCP الأصلي - **[استطلاع نماذج اللغة الصغيرة](https://arxiv.org/abs/2410.20011)** - استطلاع أكاديمي لأبحاث SLM - **[تحليل سوق الذكاء الاصطناعي الطرفي](https://www.marketsandmarkets.com/Market-Reports/edge-ai-software-market-74385617.html)** - اتجاهات الصناعة والتوقعات - **[أفضل الممارسات لتطوير وكلاء الذكاء الاصطناعي](https://arxiv.org/abs/2309.02427)** - أبحاث حول بنى الوكلاء يوفر هذا القسم الأساس لبناء تطبيقات MCP مدعومة بـ SLM، مما يفتح المجال للتشغيل الآلي ومعالجة البيانات وتكامل الأنظمة الذكية. ## ➡️ ما التالي - [الوحدة 7. أمثلة الذكاء الاصطناعي الطرفي](../Module07/README.md) --- **إخلاء المسؤولية**: تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.