Model Context Protocol (MCP)

بناء أول خادم لبروتوكول سياق النموذج: دليل شامل للمطورين

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

يعمل خادم MCP كوسيط ترجمة. فهو يسمح لعرض موارد التطبيق وأدواته ومطالباته (prompts) بطريقة موحدة يمكن لأي عميل متوافق مع MCP (مثل بيئة التطوير المتكاملة IDE، أو واجهة الدردشة، أو وكيل الأتمتة) استهلاكها. من خلال بناء خادمك الخاص، تمنح مساعدي الذكاء الاصطناعي القدرة على قراءة الملفات، وتنفيذ الأوامر، والاستعلام عن قواعد البيانات، أو التفاعل مع واجهات برمجة التطبيقات (APIs) بدقة وأمان.

لماذا تبني خوادم؟

قبل الغوص في الكود، من الضروري فهم الفوائد المعمارية. غالباً ما تتطلب التكاملات التقليدية محولات (adapters) ثابتة لكل مزود ذكاء اصطناعي، مما يؤدي إلى حبس العميل لدى مورد معين (vendor lock-in) وكوابيس في الصيانة. يفصل خادم MCP بين البيانات والمنطق الخاص بك عن العميل. سواء كنت تتصل بـ Claude، أو نموذج لغوي كبير محلي، أو نظام RAG مخصص، يظل الخادم هو المصدر الوحيد للحقيقة. يعزز هذا النمط المعياري الأمان من خلال السماح لك بالتحكم الدقيق في الأدوات المعروضة والصلاحيات الممنوحة لها، بدلاً من منح النموذج وصولاً غير مقيد إلى بنية التحتية الخاصة بك.

إعداد البيئة

سنستخدم لغة بايثون، وهي واحدة من أكثر اللغات شعبية في تطوير الذكاء الاصطناعي، جنباً إلى جنب مع حزمة تطوير البرمجيات (SDK) الرسمية python-mcp. تأكد من تثبيت بايثون الإصدار 3.10 أو أحدث. أولاً، أنشئ بيئة افتراضية لعزل التبعيات الخاصة بك:

python -m venv mcp_env
source mcp_env/bin/activate  # On Windows: mcp_env\Scripts\activate

بعد ذلك، قم بتثبيت الحزم اللازمة. ستحتاج إلى الحزمة الأساسية ومكتبة للتعامل مع دورة حياة الخادم:

pip install mcp

إنشاء خادمك الأول

لنقم ببناء خادم بسيط يعرض أداة واحدة: مولد الأرقام العشوائية. يوضح هذا المثال المفاهيم الأساسية لتحديد الأدوات، ومعالجة المدخلات، وإرجاع مخرجات منظمة.

import asyncio
from mcp.server import Server
from mcp.types import Tool, TextContent
from mcp.server.stdio import stdio_server

# Initialize the server
app = Server("random-number-server")

@app.tool()
async def generate_random_number(min_val: int, max_val: int) -> list[TextContent]:
    """Generate a random number within a specified range.
    
    Args:
        min_val: The minimum value for the random number.
        max_val: The maximum value for the random number.
        
    Returns:
        A text content object containing the generated number.
    """
    import random
    result = random.randint(min_val, max_val)
    return [TextContent(type="text", text=f"The random number is: {result}")]

async def main():
    async with stdio_server() as (read, write):
        await app.run(read, write, app.create_initialization_options())

if __name__ == "__main__":
    asyncio.run(main())

في هذا الجزء من الكود، نقوم بتزيين دالة باستخدام @app.tool(). يسجل هذا الزخرفة الدالة كأداة قابلة للوصول ضمن بروتوكول MCP. يستخدم الخادم stdio_server() للتواصل عبر تيارات الإدخال والإخراج القياسية، وهي طريقة النقل القياسية للتطوير المحلي والتكامل مع بيئات التطوير المتكاملة مثل Cursor أو Windsurf.

الاختبار والتكامل

بمجرد أن يكون نص الخادم جاهزاً، يمكنك اختباره محلياً عن طريق تشغيل ملف بايثون. للتكامل مع عميل MCP، ستقوم عادةً بتكوين العميل لتشغيل هذا النص البرمجي كعملية فرعية (subprocess). على سبيل المثال، في ملف mcp-config.json، قد تحدد ما يلي:

{
  "mcpServers": {
    "random-numbers": {
      "command": "python",
      "args": ["server.py"]
    }
  }
}

يخبر هذا التكوين العميل بتنفيذ نصك البرمجي بلغة بايثون، مما يestablish قناة اتصال ثنائية الاتجاه. يمكن للعميل بعد ذلك اكتشاف الأدوات المتاحة عبر طلب tools/list واستدعاء tools/call لاستقبال الرقم المولد.

الخاتمة

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

Share: