Why Everyone Is Switching to MCP (And Why You Might Not Need To)
490 segments
لديك بالفعل واجهات
برمجة تطبيقات REST،
ويمكن لـ Claude Code
استدعاؤها بالفعل.
إذًا، لماذا يقوم
الجميع فجأة ببناء
خوادم MCP؟ هل يحل MCP
مشكلة جديدة حقًا، أم
أننا نضيف طبقة أخرى
أمام واجهات برمجة
تطبيقات تعمل بالفعل؟
لذا، في هذا الفيديو،
سنقوم أولاً ببناء
خدمة طلبات صغيرة
باستخدام REST API عادي،
ثم سنحضر وكيل برمجة
يعمل بالذكاء
الاصطناعي ونطلب منه
التعامل مع تلك الخدمة
. قد يكون هذا Claude Code أو
Cursor أو Codex أو أي وكيل
برمجة آخر. بالنسبة
لهذا المثال، سنستخدم
Claude Code وسنعطيه مهمة
بسيطة. اعثر على كل طلب
ظل غير مشحون لأكثر من
7 أيام. دعونا نرى إلى
أي مدى يمكننا الوصول
بدون MCP. دعونا نبدأ.
حسنًا، خدمة الطلبات
الخاصة بنا بسيطة
للغاية. لدينا get orders
لسرد الطلبات، و get orders
ID لجلب طلب واحد، و patch
orders ID لتحديث طلب واحد.
الآن، هناك بالطريقة
الواضحة طرق عديدة
لبناء REST API كهذا.
شخصياً، استخدمت في
الغالب Spring Boot لبناء
واجهات برمجة تطبيقات
REST. ولكن، إذا كنت تعمل
بلغة Python، فقد تلجأ
إلى Fast API. في TypeScript أو
JavaScript، لديك خيارات
مثل Express أو Fastify أو NestJS
. وفي .NET، قد تستخدم
ASP.NET Core. لهذا العرض
التوضيحي، سأستخدم
TypeScript مع Express. ليس لأن
Express هو الخيار الأفضل
بأي حال، ولكن لأننا
نستطيع إبقاء الكود
صغيرًا جدًا والتركيز
على ما يحدث معماريًا.
إذًا، قد يستدعي
وكيلنا في النهاية
شيئًا كهذا. Get orders،
الحالة غير مشحون،
وقبل 18 أغسطس 2026. وتقوم
الخدمة ببساطة بإرجاع
الطلبات المطابقة
بصيغة JSON. لا شيء خاص
بالذكاء الاصطناعي
هنا. إنها مجرد REST API
عادية. الآن، لنحضر
Claude Code. هل يستطيع Claude
استدعاء واجهة برمجة
التطبيقات هذه مباشرة
؟ بالتأكيد. يتمتع Claude
Code بإمكانية الوصول
إلى Terminal. لذا، يمكننا
تزويده بوثائق واجهة
برمجة التطبيقات
الخاصة بنا وتركه
يستخدم الكود. إذا كان
لواجهة برمجة
التطبيقات الخاصة بنا
مواصفات Open API،
فيمكننا تزويده بها
أيضًا. أو إذا كنت تبني
وكيلك الخاص، فيمكننا
كتابة دالة عادية
تستدعي نقطة النهاية
هذه وعرض تلك الدالة
على النموذج. إذًا،
نطلب من Claude العثور
على كل طلب لم يتم شحنه
لأكثر من 7 أيام. إنه
يفهم واجهة برمجة
التطبيقات، ويستدعي get
orders، ويمرر المرشحات
الصحيحة، ويستعيد
الطلبات المعلقة. وهو
يعمل حتى الآن. لم يحل
MCP أي شيء على الإطلاق
هنا. لكن مهمتنا
الفعلية أكثر إثارة
للاهتمام قليلاً. نحن
لا نريد فقط العثور
على تلك الطلبات. لكل
طلب معلق، نريد أيضاً
إنشاء إصدار على GitHub
ليتمكن شخص ما من
التحقيق فيه. حسناً.
يمتلك GitHub بالفعل
واجهة برمجة تطبيقات
REST. لذا، من الناحية
الفنية، يمكن لـ Claude
تعلم تلك الواجهة
أيضاً. فهو يحدد نقطة
النهاية التي تنشئ
الإصدار، ويرسل
المستودع، والعنوان،
والمحتوى. وهذا يعمل
أيضاً. إذاً، الآن
يتحدث Claude مباشرة مع
واجهتي برمجة تطبيقات.
واجهة طلباتنا وواجهة
GitHub. لا يزال بدون MCP.
وبصراحة، بالنسبة
لواجهتي برمجة
تطبيقات، قد يكون هذا
جيداً تماماً. لكن
تخيل الآن أن هذا
الوكيل ينمو. غداً، قد
يحتاج لإرسال شيء إلى
Slack، أو إنشاء تذكرة في
Jira، أو الاستعلام عن
PostgreSQL، أو التحقق من
شيء في Datadog. الآن، كل
نظام لديه نقاط نهاية
خاصة به، ومخططات،
ومصادقة، وترقيم
صفحات، وأخطاء،
وتوثيق. وهناك مشكلة
أخرى. ماذا يحدث عندما
تحتاج هذه الإمكانات
نفسها للعمل ليس فقط
من كود Claude، بل أيضاً
من Cursor، و Codex، ووكيل
داخلي، وأي شيء يبنيه
فريقك لاحقاً؟ الآن،
تبدأ مشكلة التكامل في
الظهور بشكل مختلف.
وهذه هي المشكلة التي
تحاول MCP توحيدها. MCP
تعني بروتوكول سياق
النموذج (Model Context Protocol)
. بدلاً من أن يتعلم كل
عميل ذكاء اصطناعي
طريقة مخصصة للتفاعل
مع كل نظام، تمنح MCP
تطبيقات الذكاء
الاصطناعي بروتوكولاً
مشتركاً لاكتشاف
الإمكانات واستخدامها
. يمكن لخادم MCP عرض
أدوات، وموارد،
ومطالبات. بالنسبة
لمثالنا، نحن نهتم
بشكل أساسي بالأدوات.
لذا، بدلاً من جعل Claude
يفكر في جلب الطلبات،
ومعايير الاستعلام،
وترقيم الصفحات،
وتنسيق الاستجابة،
يمكننا عرض شيء أكثر
أهمية بكثير. العثور
على طلبات البيع.
ويمكن أن يكون مدخله
ببساطة: "أقدم من سبعة
أيام". الأداة لها اسم،
ووصف، ومخطط إدخال
منظم. وكود Claude يفهم
بالفعل كيفية التعامل
مع أدوات MCP. الآن،
لدينا عقد مشترك بين
عميل الذكاء
الاصطناعي والإمكانية
التي يريد استخدامها.
إذاً، لنقم ببناء خادم
MCP واحد لخدمة الطلبات
الخاصة بنا. ومثلما لا
تقوم عادةً بتنفيذ HTTP
من الصفر عند بناء
واجهة REST، فأنت لا
تنفذ بروتوكول MCP
بأكمله بنفسك أيضاً.
هناك حزم تطوير برمجية
(SDKs) رسمية لـ MCP بلغات
مثل TypeScript و Python و Go و C#
و Java وغيرها. وبما أن
مثالنا مكتوب بالفعل
بلغة TypeScript، فسأستخدم
حزمة تطوير MCP الرسمية
لـ TypeScript. إذاً، الآن
لدينا Express لواجهة REST
الخاصة بنا وحزمة MCP SDK
لـ TypeScript لخادم MCP
الخاص بنا. داخل خادم
MCP ذلك، نعرض أداة
العثور على الطلبات
المعلقة. لكن، إليك
الجزء المهم. عندما
يستدعي Claude تلك الأداة
، ماذا يحدث في
الخلفية؟ خادم MCP
الخاص بنا يستدعي
ببساطة نفس نقطة نهاية
جلب الطلبات التي
بنيناها سابقاً. لم
نتخلص من واجهة REST. لم
نقم بإعادة بناء خدمة
الطلبات. وخدمة
الطلبات نفسها لا تعلم
حتى بوجود Cloud Code. لا
تزال خدمة خلفية عادية
. إذًا، انظر الآن إلى
البنية. قد تستدعي
واجهتك الأمامية
وظيفة الحصول على
الطلبات. قد تستدعيها
خدمة مصغرة أخرى. وقد
يستدعيها تطبيق
الهاتف، لكن Cloud Code
يمكنه رؤية شيء أكثر
أهمية. العثور على
الطلبات القديمة. تظل
واجهة برمجة تطبيقات
REST هي الواجهة
لتطبيقنا. يقوم خادم MCP
بعرض قدرات مختارة من
ذلك التطبيق بشكل
تفهمه عملاء الذكاء
الاصطناعي المتوافقون
. إذًا، يمكنك التفكير
في هذا كخدمة واحدة،
بواجهتين لنوعين
مختلفين من
المستهلكين. ويصبح هذا
التمييز أكثر وضوحًا
عندما نعود إلى GitHub.
لأننا هذه المرة، لا
نبني تكامل GitHub
بأنفسنا. لدى GitHub
بالفعل خادم MCP. لذا،
يمكن لـ Cloud Code الآن
رؤية أدوات قادمة من
نظامين مختلفين
تمامًا. قد يكشف خادم
MCP الخاص بطلباتنا عن
أداة العثور على
الطلبات القديمة.
ويكشف خادم MCP الخاص بـ
GitHub عن أدوات لأشياء
مثل إنشاء المشكلات.
الآن، أعطِ Cloud المهمة
الأصلية. اعثر على كل
طلب لم تتم مشاركته
لأكثر من 7 أيام وأنشئ
مشكلة على GitHub لكل
منها. يكتشف Cloud أدوات
الطلبات المناسبة،
ويستدعيها، ويحصل على
الطلبات القديمة، ثم
يجد أداة GitHub المناسبة
، وينشئ المشكلات. في
العمق، هذه الأنظمة
مختلفة تمامًا. أداتنا
تستدعي في النهاية
واجهة برمجة تطبيقات
Express REST الخاصة بنا.
تعمل أداة GitHub في
النهاية مع واجهة
برمجة تطبيقات GitHub.
لكن Claude يتفاعل مع
كليهما من خلال نفس
البروتوكول، وهنا
يبدأ MCP في أن يصبح
مفيدًا. إليك مهمة
مكتوبة بالطريقة
العادية. اقرأ طلب سحب
من GitHub، ثم انشره على
قناة Slack. خدمتان
تعنيان مجموعتي أدوات
تطوير (SDK). لكل واحدة
عميل خاص بها، ونوع
رمز خاص بها، وشكل
طريقة خاص بها. نداء
GitHub ونداء Slack لا
يشتركان في أي شيء سوى
وجودهما في نفس الملف.
وانظر إلى ما يحدد
هوية المستدعي. إنه
الرمز المميز. يرى GitHub
رمز وصول شخصي. ويرى
Slack رمز بوت، ولا يعرف
أي منهما من الذي طلب
هذا. الآن نفس المهمة
من خلال MCP. يمر كلا
النداءين عبر جلسة
واحدة. أنت تسمي
الأداة، وتمرر
قاموسًا من الوسائط،
وهذا هو النداء
بالكامل. أصبح نداء
GitHub ونداء Slack الآن
لهما نفس الشكل. وهذا
ما يوحّده معيار MCP.
أنت لا تتعلم مجموعة
أدوات تطوير جديدة لكل
خدمة تضيفها. هناك
واجهة واحدة. والجزء
الخاص بالخدمة يعيش في
تعريف الأداة على
الخادم. لكن انظر إلى
ما لا يزال مفقودًا. لا
شيء في أي من هذين
النداءين يقول من الذي
يسأل. يحتفظ خادم MCP
ببيانات الاعتماد. أي
شخص يتصل به يعمل
باستخدام تلك
البيانات. على حاسوبك
المحمول، هذا جيد لأنه
يوجد مستخدم واحد وهو
أنت. ضع الأمر أمام
فريق عمل وستعود إلى
مشكلة REST. مجموعة رموز
واحدة ولا توجد طريقة
لمعرفة صاحب هذا
الإجراء. وحد بروتوكول
MCP شكل الاستدعاء. لكنه
لم يوحد من المسموح له
بإجرائه. هذه الفجوة
هي ما تعمل Arcade على سده
، وهم رعاة هذا
الفيديو. Arcade هو بيئة
التشغيل الخاصة بـ MCP.
وهذه هي المهمة نفسها
للمرة الثالثة، تعمل
من خلال Arcade. وهذا هو
النصف الخاص بـ GitHub.
وهذا النصف الخاص بـ
Slack. نفس شكل استدعاء MCP
العادي مع إضافة وسيط
واحد، وهو معرف
المستخدم. يقوم كل شخص
بربط حساباته الخاصة
مرة واحدة. عندما يطلب
الوكيل تنفيذ إجراء ما
، يتحقق Arcade مما إذا
كان ذلك الشخص قد سمح
باستخدام تلك الأداة.
ينفذ الإجراء بصلاحية
الوصول الخاصة به
ويعيد النتيجة. لا
توجد رموز مشتركة
موجودة في أي مكان في
الكود الخاص بك.
بالتراجع للوراء، هذا
هو الشكل. يقوم كل شخص
بتفويض حساباته
الخاصة مرة واحدة. لا
يحتفظ خادم MCP بأي
أسرار. يقوم Arcade، وهو
بيئة تشغيل الإجراءات
حيث يعمل خادم MCP،
بالتحقق من الأذونات
ويتولى المصادقة
والتفويض. إذا منح
المستخدم موافقته،
سيقوم Arcade بحقن الرمز
في كود خادم MCP وقت
التشغيل. تعمل الأداة
وتعود النتيجة إلى
المستدعي. يمر كل
استدعاء عبر طبقة
واحدة، لذا فإن لكل
إجراء مالك وسجل يمكنك
قراءته لاحقاً.
النموذج الذي يمكنه
التفكير فقط ليس
وكيلاً. Arcade هو الجزء
الذي يسمح له بالتصرف.
الرابط موجود في الوصف
. الآن، هذا يثير
سؤالاً آخر. إذا كان
بإمكان الوكيل
استخدام MCP، هل يجب
علينا استبدال جميع
واجهات برمجة
التطبيقات بخوادم MCP؟
لا. MCP لا يستبدل REST.
ولا يستبدل gRPC. ولا
يستبدل نظامك الخلفي.
ولا يزيل سحرياً
المصادقة، أو التفويض
، أو التحقق، أو تحديد
المعدل، أو المحاولات
المتكررة، أو تصميم
الخدمة الجيد. يمكن
لواجهتك الأمامية
الاستمرار في استخدام
REST ويجب عليها ذلك.
يمكن لتطبيق الهاتف
المحمول الخاص بك
الاستمرار في استخدام
REST. يمكن للخدمات
المصغرة الخاصة بك
الاستمرار في استخدام
REST أو gRPC. ويمكن لخادم
MCP الخاص بك كشف قدرات
مختارة لتطبيقات
الذكاء الاصطناعي. في
الواقع، قد تقوم أداة
MCP شائعة ببساطة
باستدعاء واجهة برمجة
تطبيقات إنتاجية
موجودة في الخلفية.
لذا، MCP وواجهات برمجة
التطبيقات ليسا
منافسين حقاً. إنهما
يعملان في حدود مختلفة
. وهنا يصبح القرار
بسيطاً للغاية. لنفترض
أن لديك وكيلاً واحداً
يستدعي وظيفتين
داخليتين تتحكم فيهما
بالكامل، فربما لا
تحتاج إلى خادم MCP. قد
يكون استدعاء الوظيفة
المباشر أبسط. أو قد
يكون منح الوكيل
صلاحية الوصول إلى
واجهة برمجة تطبيقات
موجودة كافياً. لكن
تخيل الآن أن لديك
عشرات الأدوات،
وفرقًا مختلفة تمتلك
تلك الأدوات،
والتكاملات تتطور
بشكل مستقل، وتحتاج
تلك القدرات نفسها إلى
العمل من Cloud Code و Cursor و
Codex وجميع الوكلاء
الداخليين. هنا تصبح
الحاجة إلى واجهة
قياسية أكثر قيمة
بكثير. يصف كل خادم MCP
ما يمكنه فعله، وتفهم
العملاء المتوافقة
كيفية اكتشاف تلك
القدرات، ولم تعد
مضطراً لتصميم تكامل
مختلف تماماً لكل عميل
ولكل أداة. وهذا هو
المقابل. لذا، لا تزال
واجهة برمجة
التطبيقات (API) الخاصة
بك تقوم بعمل التطبيق
الفعلي. خادم MCP ليس
موجوداً لاستبدالها.
واجهة برمجة
التطبيقات (API) الخاصة
بك هي الباب. يعمل MCP
على توحيد المقبض الذي
تستخدمه عملاء الذكاء
الاصطناعي المتوافقة
لفتحه. يا رفاق، لا
أريد أن يظل هذا مجرد
مخطط معماري آخر. لذا،
قمت بتجهيز نفس المثال
الذي استخدمناه في هذا
الفيديو. ستحصل على
خدمة طلبات Express REST
العادية. وستحصل أيضاً
على خادم MCP الذي يعمل
فوقها. متصلاً بـ Cloud
Code أو Cursor. جرب واجهة
برمجة التطبيقات (API)
مباشرة أولاً. ثم قم
بتفعيل خادم MCP وشغل
نفس سير العمل مرة
أخرى. بمجرد رؤية كلا
النهجين يعملان على
نفس الخدمة تماماً،
يصبح الفرق بين API و MCP
أسهل بكثير في الفهم.
Ask follow-up questions or revisit key timestamps.
يشرح هذا الفيديو مفهوم بروتوكول سياق النموذج (Model Context Protocol - MCP) وكيفية تكامله مع واجهات برمجة التطبيقات (REST API) التقليدية. يوضح الفيديو من خلال مثال عملي بناء خدمة طلبات بسيطة، وكيف يمكن للوكلاء الأذكياء مثل Claude Code التعامل مع هذه الخدمات مباشرة أو عبر خوادم MCP. يركز الفيديو على أن MCP لا يستبدل واجهات REST، بل يعمل كطبقة توحيد تتيح للوكلاء اكتشاف واستخدام الإمكانات عبر أنظمة مختلفة بشكل موحد. كما يتطرق إلى دور بيئات التشغيل مثل Arcade في إدارة الأذونات والمصادقة، مما يسهل العمل التعاوني للفرق.
Videos recently processed by our community