Skip to content

Latest commit

 

History

History
121 lines (81 loc) · 4.38 KB

File metadata and controls

121 lines (81 loc) · 4.38 KB

بروتوكول سياق النموذج (MCP) - تنفيذ بايثون

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

نظرة عامة

يتكون تنفيذ MCP من مكونين رئيسيين:

  1. خادم MCP (server.py) - خادم يعرض:

    • الأدوات: دوال يمكن استدعاؤها عن بُعد
    • الموارد: بيانات يمكن استرجاعها
    • النماذج: قوالب لإنشاء مطالبات لنماذج اللغة
  2. عميل MCP (client.py) - تطبيق عميل يتصل بالخادم ويستخدم ميزاته

الميزات

يعرض هذا التنفيذ عدة ميزات رئيسية في MCP:

الأدوات

  • completion - يولد تكملات نصية من نماذج الذكاء الاصطناعي (محاكاة)
  • add - آلة حاسبة بسيطة تجمع رقمين

الموارد

  • models:// - يعيد معلومات عن نماذج الذكاء الاصطناعي المتاحة
  • greeting://{name} - يعيد تحية مخصصة لاسم معين

النماذج

  • review_code - يولد مطالبة لمراجعة الكود

التثبيت

لاستخدام هذا التنفيذ لـ MCP، قم بتثبيت الحزم المطلوبة:

pip install mcp-server mcp-client

تشغيل الخادم والعميل

بدء تشغيل الخادم

شغّل الخادم في نافذة طرفية واحدة:

python server.py

يمكن أيضًا تشغيل الخادم في وضع التطوير باستخدام MCP CLI:

mcp dev server.py

أو تثبيته في Claude Desktop (إذا كان متاحًا):

mcp install server.py

تشغيل العميل

شغّل العميل في نافذة طرفية أخرى:

python client.py

سيتم الاتصال بالخادم وعرض جميع الميزات المتاحة.

استخدام العميل

يعرض العميل (client.py) جميع قدرات MCP:

python client.py

سيتم الاتصال بالخادم واستخدام جميع الميزات بما في ذلك الأدوات والموارد والنماذج. ستظهر النتائج:

  1. نتيجة أداة الآلة الحاسبة (5 + 7 = 12)
  2. استجابة أداة التكملة للسؤال "ما معنى الحياة؟"
  3. قائمة نماذج الذكاء الاصطناعي المتاحة
  4. تحية مخصصة لـ "MCP Explorer"
  5. قالب مطالبة مراجعة الكود

تفاصيل التنفيذ

تم تنفيذ الخادم باستخدام واجهة برمجة التطبيقات FastMCP، التي توفر تجريدات عالية المستوى لتعريف خدمات MCP. إليك مثال مبسط لكيفية تعريف الأدوات:

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers together
    
    Args:
        a: First number
        b: Second number
    
    Returns:
        The sum of the two numbers
    """
    logger.info(f"Adding {a} and {b}")
    return a + b

يستخدم العميل مكتبة عميل MCP للاتصال بالخادم واستدعائه:

async with stdio_client(server_params) as (reader, writer):
    async with ClientSession(reader, writer) as session:
        await session.initialize()
        result = await session.call_tool("add", arguments={"a": 5, "b": 7})

معرفة المزيد

لمزيد من المعلومات عن MCP، قم بزيارة: https://modelcontextprotocol.io/

إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.