ما هو MCP؟#
بروتوكول Model Context Protocol (MCP) معيار مفتوح يمنح مساعدي الذكاء الاصطناعي القدرة على التفاعل مع العالم الخارجي. طوّرته شركة Anthropic، وبفضله تستطيع نماذج الذكاء الاصطناعي الوصول إلى بيانات لحظية واستخدام أدوات خارجية.
أكبر قيد على نماذج الذكاء الاصطناعي التقليدية هو تاريخ انقطاع بيانات التدريب. ويحلّ MCP هذه المشكلة بمنح النماذج وصولاً إلى بيانات حيّة.
NOTE
MCP هو التقنية التي تحوّل مساعدي الذكاء الاصطناعي من مجرد روبوتات دردشة إلى مساعدين رقميين حقيقيين. وتطوّره Anthropic كمشروع مفتوح المصدر.
كيف يعمل؟#
تتكوّن بنية MCP من ثلاثة مكوّنات أساسية:
| المكوّن | الوصف |
|---|---|
| Host | نموذج الذكاء الاصطناعي (مثل Claude Desktop) |
| Client | عميل MCP (يعمل داخل الـ Host) |
| Server | الخادم الذي يقدّم الأدوات (وهو ما تطوّره أنت) |
مخطط بنية MCP#
تسلسل الاتصال#
طبقة النقل#
يدعم MCP طريقتَي نقل:
- stdio: الإدخال والإخراج القياسي، للأدوات المحلية
- SSE (Server-Sent Events): اتصال قائم على HTTP، للخوادم البعيدة
TIP
ننصح باستخدام النقل عبر stdio أثناء التطوير، فهو أبسط وأسهل في تتبّع الأخطاء. ويمكنك الانتقال إلى SSE عند الانتقال للإنتاج.
تطوير أداة MCP بلغة Python#
لنطوّر أداة بسيطة لأسعار الصرف. أولاً نثبّت الاعتماديات:
pip install mcp httpxثم ننشئ خادم MCP:
from mcp.server.fastmcp import FastMCP
import httpx
mcp = FastMCP("exchange-rate")
@mcp.tool()
async def get_exchange_rate(base: str, target: str) -> str:
"""استعلام سعر الصرف اللحظي."""
async with httpx.AsyncClient() as client:
response = await client.get(
f"https://api.exchangerate.host/latest",
params={"base": base, "symbols": target}
)
data = response.json()
rate = data["rates"][target]
return f"1 {base} = {rate} {target}"
if __name__ == "__main__":
mcp.run(transport="stdio")يستخدم المُزخرِف @mcp.tool() نصّ التوثيق (docstring) الخاص بالدالة تلقائياً كوصف للأداة. وهذا الوصف يلعب دوراً حاسماً في قرار النموذج متى يستدعي الأداة.
التكامل مع Claude Desktop#
لإضافة أداتك إلى Claude Desktop، أضف هذا الإعداد إلى ملف claude_desktop_config.json:
{
"mcpServers": {
"exchange-rate": {
"command": "python",
"args": ["path/to/server.py"]
}
}
}WARNING
لا تنسَ كتابة المسار المطلق لملف الخادم داخل args. فإذا استخدمت مساراً نسبياً قد لا يعثر Claude Desktop على الأداة.
مقارنة الأداء#
يمكن التعبير عن الفارق بين MCP والاستدعاء المباشر لواجهة برمجية بصيغة بسيطة:
زمن الاستجابة الكلي:
وفيها القيم المتوسطة كالتالي:
يبلغ العبء الإضافي لـ MCP نحو في المتوسط، وهو منخفض بما يكفي لئلا يؤثر في تجربة المستخدم.
مجالات الاستخدام#
أمثلة على أدوات يمكنك بناؤها باستخدام MCP:
- المالية: بيانات الأسواق اللحظية وأسعار الصرف وأسعار العملات الرقمية
- الطقس: توقعات مبنية على الموقع
- قواعد البيانات: تنفيذ استعلامات SQL مباشرةً
- إنترنت الأشياء: قراءة بيانات المستشعرات والتحكم في الأجهزة
- عمليات الأعمال: أنظمة CRM و ERP وأدوات إدارة المشاريع — ويمكن دمجها في منصات الويب والهاتف على حد سواء
IMPORTANT
يجب تصميم خوادم MCP بعناية من ناحية الأمان. احفظ مفاتيح الواجهات البرمجية الخارجية كمتغيرات بيئة، ولا تكتبها أبداً داخل الشيفرة المصدرية.
الخلاصة#
MCP بروتوكول تحويلي ينقل مساعدي الذكاء الاصطناعي من روبوتات دردشة سلبية إلى أدوات رقمية فاعلة. وبلغة Python يمكنك بناء أداة بسرعة ودمجها في نماذج مثل Claude.
وبينما تبني أدوات MCP، قد ترغب أيضاً في استكشاف نظام امتداد آخر قوي في Claude: خاصية Skills التي شرحناها في دليل Claude Skills، وهي ميزة مكمّلة تمنح Claude تعليمات وسير عمل دائمة.
الشيفرة المصدرية لأداة أسعار الصرف المستخدمة في هذا المقال متاحة على صفحتنا على GitHub.


