مقارنة توضح دور واجهات API كجسر تواصل برمجي للمطورين، وميزة بروتوكول MCP في منح نماذج الذكاء الاصطناعي قدرات للوصول الآمن للبيانات.
كل من واجهات برمجة التطبيقات (APIs) وبروتوكول سياق النموذج (MCP) يساعدان الأنظمة على التواصل مع بعضها البعض. وللوهلة الأولى، قد يبدوان متشابهَيْن تمامًا، فكلاهما يسمح لبرنامج ما بطلب بيانات من برنامج آخر أو تنفيذ إجراء معين. لكن الطريقة التي يعمل بها كل منهما، والسبب الذي وُجد من أجله، مختلفان اختلافًا جذريًا.
واجهة برمجة التطبيقات (API) صُمِّمت أساسًا للمطورين البشريين، فهي الطريقة التي يتواصل بها برنامج مع برنامج آخر عبر أكواد يكتبها المبرمج. أما MCP فهو بروتوكول مصمم خصيصًا لنماذج الذكاء الاصطناعي الكبيرة (LLMs)، ليمنحها القدرة على التفاعل مع الأنظمة الخارجية والأدوات والبيانات بطريقة آمنة ومنظمة.
أنا مصطفى أمان، وفي هذا الدليل الشامل على وادي التكنولوجيا، سأشرح لك بالتفصيل ما يميز كلًّا من MCP وAPI، ولماذا ظهر MCP رغم أن واجهات API تؤدي المهمة بالفعل، وكيف يعمل كل منهما في أمثلة حقيقية بأكواد عملية.
ما الفرق بين MCP و API باختصار؟
قبل الغوص في التفاصيل، إليك الفرق الجوهري بين MCP و API في نقاط مختصرة وواضحة:
- API (واجهة برمجة التطبيقات): مجموعة من القواعد تسمح لبرنامج بالتواصل مع برنامج آخر. صُمِّمت ليستخدمها المطورون البشريون عبر كتابة الأكواد.
- MCP (بروتوكول سياق النموذج): معيار جديد يسمح لنماذج الذكاء الاصطناعي بالتفاعل مع الأدوات والأنظمة الخارجية بطريقة آمنة ومنظمة، دون الحاجة لكتابة أكواد بنفسها.
- الفرق الأساسي: واجهات API تكشف عن نقاط نهاية
(endpoints) مثل
/usersأو/weather، بينما MCP يكشف عن قدرات (capabilities) مثل "get_user_info" أو "get_weather". - باختصار: واجهات API تربط الأجهزة ببعضها. بروتوكول MCP يربط الذكاء بالأجهزة.
إنفوجرافيك يوضح الفرق الأساسي: واجهات API موجهة للمطورين، بينما بروتوكول MCP موجه لنماذج الذكاء الاصطناعي.
والآن دعنا نتعمق في فهم كل تقنية على حدة لنرى الصورة كاملة.
ما هي واجهة برمجة التطبيقات API؟
واجهة برمجة التطبيقات (Application Programming Interface) هي مجموعة من القواعد والبروتوكولات التي تسمح لبرنامج ما بالتواصل مع برنامج آخر. يمكنك تشبيهها بالنادل في مطعم: أنت تخبر النادل بما تريد، المطبخ يحضره، والنادل يعيده إليك. أنت لا تدخل المطبخ أبدًا بنفسك.
يستخدم المطورون واجهات API يوميًا لربط أنظمة مختلفة ببعضها، مثل بوابات الدفع الإلكتروني، وخدمات بيانات الطقس، وأنظمة حسابات المستخدمين، وغيرها الكثير. الفكرة الأساسية بسيطة: المطور يكتب الكود البرمجي، ويرسل الطلبات، ويتعامل مع الأخطاء، ويضيف المصادقة (Authentication)، ويقرر ماذا يفعل بالاستجابة التي يحصل عليها.
مثال عملي على استدعاء API
لنفترض أنك تريد الحصول على بيانات مستخدم معين على منصة GitHub. يمكنك إرسال طلب بسيط عبر API كالتالي:
GET https://api.github.com/users/mostafa.amaan
وسيستجيب الخادم (Server) برد يشبه هذا:
{
"login": "Mostafa.amaan",
"id": 12345,
"followers": 120,
"repos": 42
}
هذا النمط واضح ومباشر: العميل (Client) يرسل طلبًا، والخادم (Server) يردّ باستجابة، وكلاهما يفهم البروتوكول المستخدم. لكن لاحظ أن هذه العملية تتطلب من المطور أن يعرف عنوان URL الصحيح، وصيغة الطلب، وكيفية التعامل مع الاستجابة.
رسم توضيحي يُظهر تدفق طلب API التقليدي: من العميل إلى الخادم ثم استلام الاستجابة.
الآن بعد أن فهمنا ماهية API، لننتقل إلى التقنية الأحدث التي ظهرت خصيصًا لعالم الذكاء الاصطناعي.
ما هو بروتوكول سياق النموذج MCP؟
بروتوكول سياق النموذج (Model Context Protocol) هو معيار جديد طوّرته شركة Anthropic ليسمح لنماذج الذكاء الاصطناعي الكبيرة (مثل ChatGPT وClaude وGemini) بالتفاعل مع الأدوات الخارجية والبيانات والأنظمة بطريقة آمنة ومنظمة.
لكن لماذا يحتاج الذكاء الاصطناعي إلى بروتوكول خاص به؟ الإجابة بسيطة: نموذج الذكاء الاصطناعي بطبيعته لا يستطيع إجراء طلبات شبكة بنفسه. فهو لا يعرف كيف يستخدم رؤوس HTTP (Headers)، أو مفاتيح الوصول (Tokens)، أو صيغ API المختلفة. كل ما يفعله هو التنبؤ بالنص بناءً على ما تكتبه.
هنا يأتي دور MCP. فهو يعمل كجسر بين نموذج الذكاء الاصطناعي والعالم الحقيقي. يُعرِّف مجموعة من "الأدوات" (Tools) التي يمكن للنموذج استخدامها بأمان. وكل أداة تُوصَف باستخدام مخطط (Schema) حتى يعرف النموذج ما تفعله الأداة، وما المدخلات التي تحتاجها، وما المخرجات التي تعيدها.
كيف يعمل MCP كجسر آمن يربط بين نماذج الذكاء الاصطناعي والأدوات الخارجية مثل قواعد البيانات وأنظمة الملفات.
دعنا الآن نرى كيف يعمل هذا البروتوكول من الناحية التقنية.
كيف يعمل بروتوكول MCP؟
يمكنك تخيل MCP كخادم يعمل في الخلفية، يكشف عن مجموعة من الأدوات التي يمكن لنموذج الذكاء الاصطناعي استدعاؤها. كل أداة هي عبارة عن جزء صغير من الكود البرمجي ينفذ إجراءً محددًا.
آلية العمل تسير على النحو التالي:
- التطبيق المضيف (Host Application) يحتوي على منطق الذكاء الاصطناعي (AI/LLM Logic) وعميل MCP (MCP Client). (من أشهر الأمثلة الحالية: تطبيق Claude Desktop، وبيئات التطوير الذكية مثل Cursor و Windsurf).
- عميل MCP يتواصل مع خوادم MCP المختلفة عبر بروتوكول JSON-RPC. يتم هذا الاتصال عادةً عبر طريقتين أساسيتين (Transport Layers): الأولى هي stdio (للتواصل مع أدوات محلية على نفس الجهاز كعملية فرعية)، والثانية هي SSE أو Server-Sent Events (للاتصال بخوادم الويب البعيدة).
- كل خادم MCP متخصص في خدمة معينة (مثل: خادم Slack، خادم نظام الملفات، خادم GitHub).
- كل خادم MCP يتصل بدوره بالخدمة الخارجية المناسبة ويعيد النتائج.
النقطة المهمة هنا أن نموذج الذكاء الاصطناعي لا يرى عنوان URL الفعلي أو مفتاح API أو تفاصيل الاتصال. خادم MCP هو من يتولى كل هذه الأمور بالنيابة عنه.
مثال على إنشاء خادم MCP بلغة بايثون
لنرَ كيف يمكن كتابة خادم MCP بسيط بلغة بايثون يوفر أداة لجلب مستودعات GitHub الخاصة بمستخدم معين:
from mcp.server.fastmcp import FastMCP
import requests
mcp = FastMCP(name="github-tools")
@mcp.tool()
def get_repos(username: str):
"""Fetch public repositories for a user"""
url = f"https://api.github.com/users/{username}/repos"
return requests.get(url).json()
mcp.run()
هذا الخادم يُعرِّف أداة واحدة تُسمى get_repos. تأخذ اسم مستخدم (username) كمُدخل، وتجلب مستودعاته
العامة من GitHub باستخدام واجهة GitHub API. لاحظ أن النموذج لا يحتاج لمعرفة عنوان URL أو تفاصيل الطلب — فخادم
MCP يتولى كل ذلك.
بعد أن رأينا كيف يعمل MCP عمليًا، قد يتبادر إلى ذهنك سؤال منطقي: لماذا لا نترك نموذج AI يستدعي الـ API مباشرةً؟
لماذا لا نترك نموذج الذكاء الاصطناعي يستدعي API مباشرةً؟
ربما تتساءل الآن: لماذا لا ندع نموذج الذكاء الاصطناعي يستدعي واجهة API بشكل مباشر؟ إذا كان بإمكان النموذج التحدث إلى واجهات API، فلماذا نضيف طبقة أخرى؟
الإجابة المختصرة هي أن نماذج الذكاء الاصطناعي لا تستطيع استدعاء واجهات API بأمان بمفردها. فهي لا تملك بيئة تنفيذ مدمجة، ولا طريقة لتخزين المفاتيح السرية (Secrets)، ولا حدود لما قد تفعله.
تخيل لو سمحت لنموذج ذكاء اصطناعي بإجراء طلبات شبكة عشوائية — سيكون ذلك خطيرًا للغاية. فقد يكشف مفاتيح الوصول السرية، أو يصل إلى بيانات خاصة، أو حتى يتسبب في أضرار عن طريق الخطأ.
بروتوكول MCP يحل هذه المشكلة بإنشاء طبقة تحكم بين النموذج وأنظمتك. أنت الذي تقرر أي الأدوات يمكن للنموذج استخدامها، ويمكنك تقييد المدخلات، وتصفية المخرجات، ومراقبة كل شيء يفعله النموذج.
لنرَ الآن كيف يختلف الاستخدام العملي لكل منهما من خلال مثال واقعي.
MCP مقابل API: مقارنة عملية بالأكواد
لنأخذ مثالًا بسيطًا وواقعيًا: تريد أن يجلب لك نموذج ذكاء اصطناعي بيانات الطقس لمدينة معينة. كيف يختلف الأمر بين استخدام API واستخدام MCP؟
الطريقة الأولى: باستخدام API (يكتبها المطور)
إذا كنت تستخدم واجهة API تقليدية، فستكتب كودًا مثل هذا:
import requests
response = requests.get("https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=Cairo")
print(response.json())
هذا الكود يعمل بشكل ممتاز عندما يشغّله مطور بشري. لكن إذا حاول نموذج ذكاء اصطناعي تنفيذ نفس العملية، فسيحتاج إلى مفتاح API الخاص بك، والوصول إلى الشبكة، والقدرة على تنفيذ الكود. وهذا غير آمن على الإطلاق.
الطريقة الثانية: باستخدام MCP (يستدعيها نموذج AI)
مع بروتوكول MCP، تُعرِّف أداة على الخادم بهذا الشكل:
@mcp.tool()
def get_weather(city: str):
"""Get weather for a city"""
import requests
url = f"https://api.weatherapi.com/v1/current.json?key=API_KEY&q={city}"
return requests.get(url).json()
الآن، عندما يريد نموذج AI معرفة حالة الطقس في القاهرة، فإنه ببساطة يستدعي الأداة get_weather ويمرر
لها المعامل "Cairo". النموذج لا يرى مفتاح API أو عنوان URL الفعلي. هو فقط يستخدم
الأداة بأمان، والخادم يتولى الباقي.
هذا الفرق العملي يقودنا إلى فهم الفرق الفلسفي الأعمق بين المفهومين.
الفرق المفاهيمي الجوهري بين MCP و API
الفرق بين MCP و API ليس تقنيًا فحسب، بل هو فلسفي أيضًا. ويمكن تلخيصه في سؤال واحد: لمن صُمِّمت هذه التقنية؟
واجهات API صُمِّمت للبشر ليستخدموها مباشرةً. تفترض أن المُستدعِي (Caller) يفهم النظام، ويستطيع التعامل مع مفاتيح الوصول، ويعرف كيف يصوغ الطلبات بالشكل الصحيح. المطور هو من يقرأ التوثيق، ويختبر النقاط، ويكتب الكود.
بروتوكول MCP صُمِّم لنماذج الذكاء الاصطناعي. يفترض أن المُستدعِي هو نظام ذكي لكنه غير موثوق، لا يستطيع حفظ الأسرار أو تنفيذ الأكواد. البروتوكول يمنح النموذج فقط ما يحتاجه لإجراء الاستدلال (Reasoning) واستخدام الأدوات.
ولهذا السبب، بينما تكشف واجهات API عن نقاط نهاية (Endpoints) مثل /users أو
/weather، يكشف MCP عن قدرات (Capabilities) مثل "get_user_info" أو "get_weather".
نموذج الذكاء الاصطناعي لا يستدعي عناوين URL، بل يستدعي وظائف بمعاملات محددة الأنواع (Typed
Parameters).
هذا الفرق الجوهري يؤثر أيضًا على كيفية اكتشاف الأدوات المتاحة، وهو ما سنناقشه في القسم التالي.
الاكتشاف التلقائي والمخطط (Discovery and Schema)
من أكبر مزايا بروتوكول MCP أنه يستطيع إخبار النموذج تلقائيًا بالأدوات المتاحة له. هذه الميزة تُعرف بـ الاكتشاف التلقائي (Auto-Discovery)، وهي تغيّر قواعد اللعبة بالكامل.
عندما يتصل نموذج ذكاء اصطناعي بخادم MCP، يمكنه أن يطلب قائمة بالأدوات المتاحة. يردّ الخادم بأسماء الأدوات، وأوصافها، والمعاملات التي تقبلها، كل ذلك في صيغة منظمة. على سبيل المثال، قد يتلقى النموذج ردًا كهذا:
{
"tools": [
{
"name": "get_weather",
"description": "Get weather for a city",
"parameters": {
"city": {"type": "string"}
}
}
]
}
هذا يعني أن النموذج لا يحتاج إلى توثيق منفصل أو ضبط للأوامر (Prompt Tuning). فهو يعرف تمامًا كيف يستدعي كل أداة، وما المعاملات المطلوبة، وما نوع البيانات المتوقع.
في المقابل، مع واجهة API تقليدية، سيحتاج النموذج إلى قراءة توثيق مكتوب بواسطة البشر، ونسخ أمثلة الطلبات، وتخمين الصيغ المناسبة — وهو أمر غير موثوق ومعرّض للأخطاء.
لكن ماذا عن الجانب الأمني؟ هل MCP أكثر أمانًا من API؟ لنستكشف ذلك.
الأمان والخصوصية في MCP مقابل API
لمواجهة التحديات الأمنية في الذكاء الاصطناعي، يوفر بروتوكول MCP تحكمًا أفضل بكثير فيما يمكن لنموذج الذكاء الاصطناعي فعله. وهذا أحد أهم الأسباب التي دفعت إلى تطويره.
بما أن الأدوات مُعرَّفة في خادمك أنت، يمكنك تطبيق مبدأ انعدام الثقة (Zero Trust) وإضافة قواعد وحدود وعمليات تحقق صارمة. يمكنك منع النموذج من إرسال مدخلات خطيرة أو الوصول إلى بيانات حساسة. على سبيل المثال:
- يمكنك تطبيق تحكم مقيّد بالصلاحيات (Role-Based Authorization) لمعرفة هوية المستدعي وتحديد ما يمكنه فعله بالضبط.
- يمكن لأداتك رفض الطلبات التي تطلب بيانات كثيرة جدًا.
- يمكنك تصفية المدخلات التي تحتوي على أنماط مشبوهة.
- يمكنك تسجيل كل استدعاء لأغراض المراجعة والتدقيق (Audit) لمعرفة الإجراءات التي نفذها وكيل الذكاء الاصطناعي بالتفصيل.
في المقابل، واجهات API مكشوفة عبر الإنترنت. إذا تسرّب مفتاح API أو استدعى النموذج نقطة نهاية خاطئة، فقد تواجه اختراقًا للبيانات. وحتى مع وجود آليات مصادقة قوية في API، فإن الخطر يظل قائمًا عند منح نموذج AI وصولًا مباشرًا.
والآن، لنضع كل ما تعلمناه في جدول مقارنة شامل يسهل الرجوع إليه.
جدول المقارنة الشاملة بين MCP و API
يلخص الجدول التالي أهم الفروقات بين واجهات برمجة التطبيقات (API) وبروتوكول سياق النموذج (MCP) من جوانب متعددة:
| وجه المقارنة | API (واجهة برمجة التطبيقات) | MCP (بروتوكول سياق النموذج) |
|---|---|---|
| مُصمَّم لـ | المطورون البشريون | نماذج الذكاء الاصطناعي (LLMs) |
| طريقة الاستدعاء | طلبات HTTP إلى نقاط نهاية (Endpoints) | استدعاء وظائف محددة عبر JSON-RPC |
| يكشف عن | نقاط نهاية (مثل /users, /weather) | قدرات/أدوات (مثل get_user_info) |
| المصادقة | مفاتيح API، توكنات OAuth | يتولاها الخادم داخليًا |
| الاكتشاف التلقائي | يتطلب قراءة التوثيق يدويًا | تلقائي عبر Schema |
| الأمان | يعتمد على المطور في التأمين | طبقة تحكم مدمجة في التصميم |
| المرونة | كل API لها صيغة مختلفة | معيار موحد لجميع الأدوات |
| التنفيذ | المطور يكتب الكود وينفذه | خادم MCP ينفذ بالنيابة عن النموذج |
| التوافق | تختلف من خدمة لأخرى | أي نموذج يدعم MCP يمكنه استخدام أي خادم |
| العلاقة بينهما | MCP لا يحل محل API، بل يجلس فوقها كطبقة إضافية. الأدوات في MCP تستخدم APIs داخليًا. | |
كما يتضح من الجدول، فإن MCP لا يُلغي الحاجة إلى واجهات API، بل يبني عليها. لننظر الآن إلى ما يخبئه المستقبل لهذا البروتوكول.
مستقبل بروتوكول MCP
شركات الذكاء الاصطناعي الكبرى مثل OpenAI وAnthropic بدأت بالفعل في تبني MCP كمعيار مشترك. وهذا يعني أن أي نموذج يدعم MCP سيتمكن من استخدام أدواتك دون أي تعديل.
على سبيل المثال، إذا قمت اليوم ببناء خادم MCP لخدمة الطقس، فيمكن أن يعمل مع GPT، أو Claude، أو Gemini، أو أي نموذج آخر متوافق مع MCP في المستقبل. هذا يجعل من MCP طبقة توحيد بين أنظمة الذكاء الاصطناعي والأدوات الخارجية، تمامًا كما فعلت واجهات API لتطبيقات الويب.
ومع تسارع تطور مجال وكلاء الذكاء الاصطناعي (AI Agents) — وهي أنظمة ذكاء اصطناعي يمكنها تنفيذ سلاسل مهام معقدة تلقائيًا — سيزداد الاعتماد على MCP بشكل كبير. فهذه الوكلاء تحتاج إلى طريقة آمنة وموحدة للتفاعل مع العشرات أو حتى المئات من الأدوات والخدمات.
والآن، لنلخص كل ما تعلمناه في هذا المقال.
الخلاصة
للوهلة الأولى، قد يبدو MCP و API متشابهين لأن كليهما ينقل البيانات بين الأنظمة. لكن الفرق الجوهري يكمن في لمن صُمِّما:
- واجهات API صُمِّمت للمطورين والأنظمة التي تستطيع إجراء طلبات شبكة بأمان.
- بروتوكول MCP صُمِّم لنماذج الذكاء الاصطناعي التي تستدل بالنصوص لكنها لا تستطيع تنفيذ الأكواد بأمان.
واجهة API تمنحك نقاط نهاية للوصول إلى البيانات. بروتوكول MCP يمنح الذكاء الاصطناعي أدوات لاستخدام تلك البيانات بأمان. فكّر في الأمر بهذه الطريقة: واجهات API تربط الأجهزة ببعضها. بروتوكول MCP يربط الذكاء بالأجهزة.
ولهذا السبب، فإن MCP لا يحلّ محل API بل يجلس فوقها كطبقة جديدة. واجهات API ستظل توفر البيانات، و MCP سيجعل من الممكن لأنظمة الذكاء الاصطناعي الوصول إلى تلك البيانات بطريقة آمنة ومنظمة.
إذا كنت مطورًا تعمل في مجال الذكاء الاصطناعي أو تبني تطبيقات تعتمد على نماذج اللغة الكبيرة، فإن فهم MCP والبدء في بناء خوادم MCP لأدواتك هو استثمار يستحق أن تبدأ به اليوم. يمكنك الاطلاع على المزيد من المقالات التقنية المتخصصة على وادي التكنولوجيا لمواكبة أحدث التطورات في هذا المجال.
هل استفدت من هذا المقال؟
انضم إلى مئات المشتركين واحصل على أحدث المقالات والدروس مباشرة في بريدك الإلكتروني.
نعم، أريد الاشتراك! ✉️🔒 خصوصيتك مهمة لنا. لن نرسل رسائل مزعجة أبداً.
الأسئلة الشائعة (FAQ)
فيما يلي إجابات لأكثر الأسئلة شيوعًا التي يطرحها المطورون والمهتمون بمجال الذكاء الاصطناعي حول الفرق بين MCP و API:
يسعدنا أن نسمع آراءكم! اتركوا تعليقاً أدناه وشاركوا تجاربكم أو أسئلتكم.