𝗠𝗼𝗱𝗲𝗹 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹 𝗘𝘅𝗽𝗹𝗮𝗶𝗻𝗲𝗱 شرح بروتوكول سياق النموذج (Model Context Protocol)
إذا قمت بربط نموذج لغوي كبير (LLM) بقاعدة بيانات أو واجهة برمجة تطبيقات (API)، فستضطر لكتابة كود ربط (glue code). ستكتبه لنموذج واحد، ثم ستكتبه مرة أخرى للنموذج التالي. يؤدي هذا إلى فوضى في عمليات التكامل.
يقوم بروتوكول سياق النموذج (MCP) بحل هذه المشكلة. فهو يعمل مثل منفذ USB-C للذكاء الاصطناعي؛ فبدلاً من استخدام كابلات مخصصة لكل جهاز، يستخدم الجميع موصلاً قياسياً واحداً.
يغير MCP المعادلة من M × N من عمليات التكامل إلى M + N.
- يكتب مطورو الأدوات خادم MCP واحداً.
- يضيف مطورو التطبيقات عميلاً (client) واحداً لـ MCP.
- أي مضيف (host) يدعم بروتوكول MCP يمكنه استخدام أي خادم.
تتكون البنية التحتية من ثلاثة أدوار:
• المضيف (Host): هو تطبيق الذكاء الاصطناعي الذي تستخدمه، مثل Claude Code أو بيئة تطوير متكاملة (IDE). وهو الذي يقرر الخوادم التي سيتم الاتصال بها. • العميل (Client): هو الموصل الموجود داخل المضيف، ويقوم بالحفاظ على الاتصال بالخادم. • الخادم (Server): هو البرنامج الذي تقوم ببنائه، حيث يقوم بتوفير الأدوات أو البيانات أو المطالبات (prompts).
تستخدم ثلاثة عناصر أساسية:
- الأدوات (Tools): هي وظائف يستدعيها النموذج لاتخاذ إجراء ما، مثل إرسال بريد إلكتروني أو الاستعلام عن قاعدة بيانات.
- الموارد (Resources): هي بيانات للقراءة فقط يسحبها التطبيق إلى السياق، مثل ملف أو سجل (log).
- المطالبات (Prompts): هي قوالب قابلة لإعادة الاستخدام تساعد المستخدمين على تفعيل مهام محددة.
يمكنك بناء خادم باستخدام Python عبر FastMCP SDK. إليك مثال بسيط:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a text."""
return len(text.split())
@mcp.resource("notes://team")
def team_notes() -> str:
"""Expose team notes."""
return "Release freeze starts Friday."
@mcp.prompt()
def code_review(language: str, code: str) -> str:
"""Template for reviewing code."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
عند بناء الخوادم، ضع هذه القواعد في اعتبارك:
- الأمان: استخدم موافقة المستخدم للأدوات التي قد تسبب ضرراً (destructive tools). وتحقق من صحة جميع الوسائط (arguments).
- السياق: اجعل أوصاف الأدوات قصيرة؛ فالأوصاف الطويلة تستهلك ميزانية الرموز (token budget) الخاصة بك.
- الأخطاء: أرجع رسائل واضحة حتى يتمكن النموذج من تصحيح أخطائه بنفسه.
يجعل MCP الأدوات أصلاً قابلاً لإعادة الاستخدام. اكتبه مرة واحدة، واجعل كل نموذج يستخدمه.
المصدر: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi