فهم بروتوكول سياق النموذج

نظرة عميقة على هندسة MCP

5 دقيقة للقراءة

فهم هندسة MCP أمر حاسم لبناء تكاملات فعالة. دعنا نستكشف كل مكون وكيف يتواصلون.

الطبقات الثلاث

1. طبقة النقل

يدعم MCP آليتين للنقل:

النقل حالة الاستخدام
stdio العمليات المحلية، أدوات CLI
SSE (أحداث مرسلة من الخادم) الخوادم البعيدة، المستندة إلى الويب
# نقل stdio (محلي)
server = Server(name="my-server")
async with stdio_server() as (read_stream, write_stream):
    await server.run(read_stream, write_stream)

# نقل SSE (بعيد)
server = Server(name="my-server")
async with sse_server(port=8000) as (read_stream, write_stream):
    await server.run(read_stream, write_stream)

2. طبقة البروتوكول

تتعامل طبقة البروتوكول مع تنسيق الرسائل باستخدام JSON-RPC 2.0:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_database",
    "arguments": {
      "query": "بريد المستخدمين"
    }
  }
}

3. طبقة القدرات

هنا يعيش منطقك - الأدوات والموارد والتعليمات التي تكشفها.

تدفق الرسائل

إليك كيف يعمل تفاعل MCP النموذجي:

  1. التهيئة: يتصل المضيف، يتبادل القدرات
  2. الاكتشاف: المضيف يستعلم عن الأدوات/الموارد المتاحة
  3. الاستدعاء: الذكاء الاصطناعي يستدعي الأدوات أو يقرأ الموارد
  4. الاستجابة: الخادم يُرجع النتائج
المضيف                الخادم
  │                     │
  │──تهيئة────────────▶│
  │◀───القدرات──────────│
  │                     │
  │──قائمة الأدوات────▶│
  │◀───الأدوات المتاحة──│
  │                     │
  │──استدعاء أداة─────▶│
  │◀───النتيجة──────────│

نموذج الأمان

يطبق MCP الأمان من خلال:

  • الوصول المستند إلى القدرات: الخوادم تكشف فقط ما تختاره
  • موافقة المستخدم: يجب على المضيفين التأكيد قبل استدعاء الأدوات
  • العزل: الخوادم تعمل في عمليات معزولة
  • لا وصول مباشر للشبكة: الخوادم لا يمكنها إجراء طلبات عشوائية

مهم: لا تكشف أبداً عمليات حساسة بدون المصادقة والتفويض المناسبين في خادم MCP الخاص بك.

في القسم التالي، سنُعد بيئة التطوير الخاصة بك لـ MCP. :::

اختبار

اختبار الوحدة 1: أساسيات MCP

خذ الاختبار