دليل خادم بروتوكول سياق النموذج (MCP)
ربط بيئات التطوير الذكية مثل Cursor و Claude Desktop والوكلاء الأذكياء مباشرة بالـ 114 تسليمة ومخططاتها المعيارية عبر بروتوكول JSON-RPC 2.0 stdio الموحد.
1. معمارية البروتوكول ومسار المصافحة (Handshake)
يُعد بروتوكول سياق النماذج (Model Context Protocol - MCP) المعيار الدولي المفتوح لربط مساعدي الذكاء الاصطناعي بمستودعات البيانات وأدوات التشغيل الخارجية.
توفر منظومة تسليمات خادماً مستقلاً (tasleemat-mcp) يتواصل عبر مجاري الإدخال والإخراج القياسية (stdio)
باستخدام رسائل JSON-RPC 2.0 الصارمة، مما يمنع تعارض المنافذ الشبكية ويتيح التشغيل في بيئات معزولة وآمنة تماماً.
sequenceDiagram
autonumber
actor User as المهندس / مدير المشروع
participant Host as المساعد الذكي (Cursor / Claude)
participant Server as خادم Tasleemat MCP (stdio)
participant Engine as محرك تسليمات الأساسي
Host->>Server: رسالة المصافحة "initialize"
Server-->>Host: تأكيد الإمكانات وعرض الأدوات المتاحة
Host->>Server: إشعار الاكتمال "notifications/initialized"
User->>Host: "خصص لي تسليمات مشروع رشيق من المستوى 2"
Host->>Server: استدعاء الأداة (name: "tasleemat_tailor_project", args: {tier: 2, pack: "agile"})
Server->>Engine: get_tailoring_profile(tier=2, pack="agile")
Engine-->>Server: قائمة بـ 34 تسليمة معتمدة
Server-->>Host: نتيجة JSON-RPC (بيان التسليمات)
Host->>User: "إليك قائمة التسليمات المعتمدة لمشروعك..."
2. إعدادات التكامل مع بيئات التطوير الذكية
أ. تطبيق Anthropic Claude Desktop
أضف المقطع التالي إلى ملف التكوين claude_desktop_config.json:
- نظام macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - نظام Windows:
%APPDATA%\Claude\claude_desktop_config.json - نظام Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"tasleemat": {
"command": "tasleemat-mcp",
"args": []
}
}
}
ب. بيئة Cursor الذكية
أنشئ ملف .cursor/mcp.json في المجلد الرئيسي للمشروع:
{
"mcpServers": {
"tasleemat": {
"command": "python3",
"args": ["-m", "tasleemat.mcp"]
}
}
}
ج. محررات VS Code (Cline و Continue.dev)
في إعدادات إضافة MCP داخل المحرر، أضف التكوين التالي مع تفعيل الموافقة التلقائية على الأدوات:
{
"mcpServers": {
"tasleemat": {
"command": "tasleemat-mcp",
"args": [],
"disabled": false,
"autoApprove": [
"tasleemat_list_forms",
"tasleemat_get_form",
"tasleemat_get_schema",
"tasleemat_validate",
"tasleemat_tailor_project",
"tasleemat_calculate_eva"
]
}
}
}
3. المرجع التفصيلي لأدوات MCP الست وحمولات البيانات
1. tasleemat_list_forms
استعراض التسليمات المتاحة مع تصفية محددة بالمرحلة، مستوى الحجم، أو اللغة.
// طلب العميل (Client Request)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tasleemat_list_forms",
"arguments": {
"phase": "03",
"lang": "ar"
}
}
}
2. tasleemat_get_form
جلب أصول التسليمة: template (القالب)، guide (الدليل)، example (المثال)، schema (المخطط).
// طلب العميل
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "tasleemat_get_form",
"arguments": {
"artifact_id": "PMO-03.01",
"asset_type": "template",
"lang": "ar"
}
}
}
3. tasleemat_get_schema
استرجاع مخطط JSON الكامل لتمكين نموذج الذكاء الاصطناعي من فهم قيود الحقول قبل الصياغة.
// طلب العميل
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "tasleemat_get_schema",
"arguments": {
"artifact_id": "PMO-04.08.02"
}
}
}
4. tasleemat_validate
التحقق من بيانات JSON المصاغة مقابل المخطط وإرجاع مسار الخطأ بدقة إلى المساعد الذكي.
// طلب التحقق
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "tasleemat_validate",
"arguments": {
"artifact_id": "PMO-03.01",
"data": {
"project_id": "PRJ-01",
"project_name": "منصة التحول السحابي",
"sponsor": "سارة الأحمد"
},
"mode": "strict"
}
}
}
5. tasleemat_tailor_project و 6. tasleemat_calculate_eva
أداة tasleemat_tailor_project لتخصيص التسليمات المطلوبة، وأداة tasleemat_calculate_eva لحساب مقاييس القيمة المكتسبة حتمياً لتسليمة PMO-06.05.
// طلب حساب مقاييس القيمة المكتسبة
{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "tasleemat_calculate_eva",
"arguments": {
"pv": 500000,
"ev": 475000,
"ac": 520000,
"bac": 1200000
}
}
}
4. أدلة تطبيقية عملية (Tutorials)
الدليل 1: صياغة تسليمات المشاريع ذاتياً داخل نمط الوكيل في Cursor (Agent Mode)
بعد حفظ ملف التكوين .cursor/mcp.json، فعّل نمط Agent في Cursor وأرسل التوجيه التالي:
سيقوم Cursor تلقائياً باستدعاء tasleemat_get_form، وفحص الشروط عبر tasleemat_get_schema،
ثم استدعاء tasleemat_validate لتأكيد سلامة البيانات 100% وكتابة الملف النهائي.
الدليل 2: بناء عميل بايثون مخصص للتواصل مع خادم MCP
يمكن استدعاء أدوات خادم MCP من أي تطبيق بايثون خارجي عبر مجاري الإدخال والإخراج:
import subprocess
import json
def call_mcp_tool(tool_name: str, arguments: dict) -> dict:
# استدعاء أدوات خادم تسليمات MCP عبر بروتوكول stdio JSON-RPC
proc = subprocess.Popen(
["tasleemat-mcp"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True
)
# 1. إرسال مصافحة التهيئة
init_req = {"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"capabilities": {}}}
proc.stdin.write(json.dumps(init_req) + "\n")
proc.stdin.flush()
proc.stdout.readline() # قراءة رد التهيئة
# 2. استدعاء الأداة المطلوبة
call_req = {
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {"name": tool_name, "arguments": arguments}
}
proc.stdin.write(json.dumps(call_req) + "\n")
proc.stdin.flush()
response_line = proc.stdout.readline()
proc.terminate()
return json.loads(response_line)
# تجربة تخصيص تسليمات المشروع:
result = call_mcp_tool("tasleemat_tailor_project", {"tier": 2, "pack": "agile"})
print("نتيجة التخصيص:", result)