فهم بروتوكول سياق النموذج
نظرة عميقة على هندسة 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 النموذجي:
- التهيئة: يتصل المضيف، يتبادل القدرات
- الاكتشاف: المضيف يستعلم عن الأدوات/الموارد المتاحة
- الاستدعاء: الذكاء الاصطناعي يستدعي الأدوات أو يقرأ الموارد
- الاستجابة: الخادم يُرجع النتائج
المضيف الخادم
│ │
│──تهيئة────────────▶│
│◀───القدرات──────────│
│ │
│──قائمة الأدوات────▶│
│◀───الأدوات المتاحة──│
│ │
│──استدعاء أداة─────▶│
│◀───النتيجة──────────│
نموذج الأمان
يطبق MCP الأمان من خلال:
- الوصول المستند إلى القدرات: الخوادم تكشف فقط ما تختاره
- موافقة المستخدم: يجب على المضيفين التأكيد قبل استدعاء الأدوات
- العزل: الخوادم تعمل في عمليات معزولة
- لا وصول مباشر للشبكة: الخوادم لا يمكنها إجراء طلبات عشوائية
مهم: لا تكشف أبداً عمليات حساسة بدون المصادقة والتفويض المناسبين في خادم MCP الخاص بك.
في القسم التالي، سنُعد بيئة التطوير الخاصة بك لـ MCP. :::