Model Context Protocol (MCP)

إتقان أدوات بروتوكول سياق النموذج: بناء تكاملات ذكاء اصطناعي آمنة وقابلة للتوسع

يتغير مشهد تطوير تطبيقات نماذج اللغات الكبيرة (LLM) بسرعة. وبينما تصبح النماذج نفسها أكثر قدرة، يظل الجسر بين هذه النماذج والعالم الحقيقي—تحديداً البيانات والإجراءات الخارجية—أصعب جانب في بناء وكلاء موثوقين. هنا يأتي بروتوكول سياق النموذج (MCP) كعامل تغيير جذري، وتحديداً حيث تصبح أدوات MCP المكون الحاسم للتنفيذ.

ما هي أدوات MCP؟

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

تكمن القيمة الأساسية في التوحيد القياسي. ومن خلال تعريف الأدوات عبر مخطط JSON، يضمن البروتوكول أن يعرف عميل LLM بالضبط ما هي حجج الإدخال المطلوبة، وما هو تنسيق الإخراج المتوقع، وكيفية التعامل مع الأخطاء. هذا يقلل من الهلوسة (Hallucination) ويحسن موثوقية سير العمل الوكيل.

تعريف أداة MCP

لفهم كيفية عمل أدوات MCP، يجب أن ننظر إلى تعريفها. أداة MCP هي في الأساس وصف لدالة. تتضمن بيانات تعريفية مثل الاسم والوصف، ومخطط JSON للحجج.

// مثال على تعريف أداة MCP بتنسيق JSON
{
  "name": "get_weather",
  "description": "الحصول على حالة الطقس الحالية لموقع محدد",
  "inputSchema": {
    "type": "object",
    "properties": {
      "location": {
        "type": "string",
        "description": "المدينة والولاية، على سبيل المثال: سان فرانسيسكو، كاليفورنيا"
      },
      "unit": {
        "type": "string",
        "enum": ["celsius", "fahrenheit"],
        "description": "وحدة درجة الحرارة"
      }
    },
    "required": ["location"]
  }
}

يتيح هذا الهيكل لعميل LLM التحقق من نية المستخدم قبل إرسال الطلب إلى الخادم. يعمل كعقد بين الذكاء الاصطناعي وخدمة الخلفية (Backend).

التنفيذ: حزمة تطوير البرمجيات (SDK) الخاصة بـ Python

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

from mcp.server.fastmcp import FastMCP
import mcp.types as types

# تهيئة خادم MCP
mcp = FastMCP("CalculatorServer")

@mcp.tool()
def multiply(a: float, b: float) -> float:
    """
    يضرب رقمين معاً.
    Args:
        a: الرقم الأول.
        b: الرقم الثاني.
    """
    return a * b

# تشغيل الخادم
if __name__ == "__main__":
    mcp.run()

في هذا الجزء من الكود، يتعامل الزخرف @mcp.tool() تلقائياً مع إنشاء المخطط بناءً على توقيع الدالة وتعليق التوثيق (docstring). سيرى عميل LLM هذه الأداة ويمكنه استدعاؤها ببساطة عن طريق استدعاء اسم الدالة مع الحجج المناسبة.

لماذا نستخدم أدوات MCP بدلاً من مكالمات واجهة برمجة التطبيقات المباشرة؟

قد تتساءل لماذا لا نقوم باستدعاء واجهة برمجة التطبيقات REST مباشرة من موجه LLM أو نص وكيل مخصص؟ هناك ثلاثة أسباب رئيسية:

  1. العزل الأمني والأمان: يعمل MCP كوكيل آمن. يتحكم الخادم في الأدوات التي يتم كشفها ويمكنه فرض المصادقة وتحديد معدل الطلبات، مما يمنع عميل LLM من تجاوز ضوابط الأمان.
  2. الوحدة النمطية: يمكنك بناء مكتبة من الأدوات (مثل "FileOps"، "DatabaseAccess"، "EmailIntegration") وتكوينها في خوادم مختلفة. يمكن لعميل واحد الاتصال بخوادم متعددة، مما يمنحه الوصول إلى نظام بيئي واسع من القدرات دون الحاجة إلى إعادة اختراع العجلة.
  3. الملاحظة والرصد: نظراً لأن جميع مكالمات الأدوات تتبع معيار MCP، يصبح من الأسهل تسجيل ومراقبة وتصحيح أخطاء تفاعلات الوكلاء عبر تطبيقات ومقدمي خدمات مختلفين.

الخاتمة

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

Share: