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

بناء أداة MCP للطقس

30 دقيقة
متوسط
3 المحاولات المجانية

التعليمات

الهدف

بناء فئة Python تمثل أداة MCP للطقس، مكتملة مع التحقق من المدخلات ومعالجة الأخطاء وتنسيق الاستجابة المناسب.

المتطلبات

أنشئ فئة WeatherTool تقوم بـ:

  1. تعريف مخطط الأداة بطريقة get_tool_definition() تُرجع:

    {
        "name": "get_weather",
        "description": "الحصول على الطقس الحالي لمدينة",
        "inputSchema": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "اسم المدينة"},
                "units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
            },
            "required": ["city"]
        }
    }
    
  2. التحقق من المدخلات بطريقة validate(arguments: dict) -> bool:

    • تُرجع True إذا كانت صالحة
    • ترفع ValueError برسالة إذا كانت غير صالحة
    • يجب التحقق: المدينة سلسلة غير فارغة، الوحدات (إن وُجدت) صالحة
  3. تنفيذ الأداة بطريقة execute(arguments: dict) -> dict:

    • محاكاة بيانات الطقس (استخدم بيانات وهمية، لا حاجة لـ API حقيقي)
    • تُرجع: {"city": str, "temperature": int, "units": str, "condition": str}
    • الوحدات الافتراضية هي "celsius"
  4. تنسيق الاستجابة بطريقة format_response(result: dict) -> str:

    • تُرجع سلسلة قابلة للقراءة مثل: "الطقس في لندن: 15°C، غائم جزئياً"

مثال على الاستخدام

tool = WeatherTool()

# الحصول على التعريف
definition = tool.get_tool_definition()
print(definition["name"])  # "get_weather"

# التحقق
tool.validate({"city": "London"})  # True
tool.validate({"city": ""})  # ترفع ValueError

# التنفيذ
result = tool.execute({"city": "London", "units": "celsius"})
# {"city": "London", "temperature": 15, "units": "celsius", "condition": "Partly cloudy"}

# التنسيق
text = tool.format_response(result)
# "Weather in London: 15°C, Partly cloudy"

تلميحات

  • للطقس الوهمي، يمكنك استخدام قاموس بسيط يربط المدن بدرجات الحرارة
  • استخدم °C لـ celsius و °F لـ fahrenheit في المخرجات المنسقة
  • يجب أن يكون التحقق صارماً ولكن يتعامل مع الحقول الاختيارية بأمان

معايير التقييم

ينفذ get_tool_definition بشكل صحيح مع المخطط المناسب25 نقاط
طريقة التحقق تتحقق بشكل صحيح من الحقول المطلوبة وترفع ValueError25 نقاط
طريقة التنفيذ تُرجع قاموس نتائج كامل بجميع الحقول المطلوبة25 نقاط
format_response تنتج مخرجات صحيحة قابلة للقراءة مع الوحدات المناسبة25 نقاط

حلك

يمكنك استخدام أي لغة برمجة
3 محاولات مجانية متبقية