معمل
تحليل رسالة MCP JSON-RPC
20 دقيقة
مبتدئ3 المحاولات المجانية
التعليمات
الهدف
اكتب دالة Python تحلل رسائل MCP JSON-RPC وتستخرج المعلومات الرئيسية.
الخلفية
يستخدم MCP تنسيق JSON-RPC 2.0 للاتصال. كل رسالة لها بنية محددة تتضمن الإصدار والطريقة والمعلمات ومعرف اختياري لربط الطلب والاستجابة.
المتطلبات
أنشئ دالة parse_mcp_message(message: dict) -> dict تقوم بـ:
-
التحقق من تنسيق الرسالة: التحقق من الحقول المطلوبة (jsonrpc، method)
-
استخراج نوع الرسالة: تحديد ما إذا كانت طلباً أو استجابة أو إشعاراً
- الطلب: له
idوmethod - الاستجابة: له
idوإماresultأوerror - الإشعار: له
methodولكن بدونid
- الطلب: له
-
تحليل تفاصيل الطريقة: استخراج مساحة الاسم والإجراء من الطريقة (مثل "tools/call" ← namespace: "tools"، action: "call")
-
إرجاع مخرجات منظمة:
{ "valid": bool, "type": "request" | "response" | "notification" | "invalid", "method": str | None, "namespace": str | None, "action": str | None, "id": int | str | None, "has_params": bool, "has_error": bool }
مثال على المدخلات
message = {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search",
"arguments": {"query": "test"}
}
}
مثال على المخرجات
{
"valid": True,
"type": "request",
"method": "tools/call",
"namespace": "tools",
"action": "call",
"id": 1,
"has_params": True,
"has_error": False
}
تلميحات
- استخدم
message.get("key")للوصول الآمن للحقول الاختيارية - حقل
methodيستخدم "/" لفصل مساحة الاسم والإجراء - رسالة الاستجابة ليس لها حقل
method
معايير التقييم
يتحقق من تنسيق JSON-RPC 2.0 بشكل صحيح25 نقاط
يحدد نوع الرسالة بدقة (طلب/استجابة/إشعار)25 نقاط
يحلل مساحة اسم الطريقة والإجراء بشكل صحيح25 نقاط
يُرجع مخرجات منظمة كاملة بجميع الحقول25 نقاط
حلك
يمكنك استخدام أي لغة برمجة
3 محاولات مجانية متبقية