خادم MCP هو برنامج صغير يمنح تطبيق الذكاء الاصطناعي وصولًا مُتحكَّمًا به إلى الملفات وقواعد البيانات والأدوات عبر بروتوكول سياق النموذج (Model Context Protocol). يشرح هذا المقال المصطلح، ويتتبع طلبًا واحدًا خطوة بخطوة، ويعرض أمثلة حقيقية، وينتهي بخادم قصير بلغة TypeScript يمكنك تشغيله اليوم.
اطلب من مساعد ذكي تلخيص مبيعات الربع الماضي، وسيخبرك بأدب أنه لا يستطيع رؤية جدول البيانات الخاص بك. النموذج ذكي، لكنه محبوس في صندوق بلا أبواب. خادم MCP هو الباب. إنه برنامج صغير يعرض قدرة واحدة، مثل قراءة الملفات أو الاستعلام من قاعدة بيانات أو توليد صورة، لأي تطبيق ذكاء اصطناعي يتحدث بروتوكول سياق النموذج. اكتب الخادم مرة واحدة، وسيتمكن كل تطبيق متوافق من استخدامه دون الحاجة إلى شيفرة ربط مخصصة.
يشرح هذا المقال ما هو خادم MCP، وكيف ينتقل الطلب من نافذة المحادثة إلى الأداة ثم يعود، وما الخوادم التي يشغّلها الناس اليوم، وأين تقع مخاطر الأمان، وكيف تبني خادمًا يعمل في نحو عشرين سطرًا من TypeScript.
ماذا يعني خادم MCP فعليًا
تعني MCP Model Context Protocol، وهو معيار مفتوح أطلقته Anthropic في نوفمبر 2024. البروتوكول مجرد طريقة متفق عليها للتخاطب. خادم MCP هو أي برنامج يتبع هذه القواعد من جهة المزوّد: يعلن ما يستطيع فعله، وينتظر الطلبات، ويعيد النتائج بصيغة متوقعة. تدعم MCP الآن منتجات من Anthropic وOpenAI وGoogle وMicrosoft، وتوجد آلاف الخوادم المجتمعية لكل شيء من مستودعات Git إلى التقاويم.
كلمة خادم تربك الناس. لا يلزم أن يعيش خادم MCP في مركز بيانات. معظمها يعمل على حاسوبك المحمول كعملية خلفية تبدأ عند تشغيل تطبيق الذكاء الاصطناعي. وتعمل خوادم أخرى عن بُعد خلف عنوان ويب، تمامًا مثل أي موقع إلكتروني.
MCP بلغة بسيطة
تخيّل مقسم هاتف قديمًا. لا يحتاج المتصلون إلى معرفة كيفية توصيل كل منزل بالشبكة. يخبرون المشغّل بمن يريدون الوصول إليه، فيوصل المشغّل السلك الصحيح بالمقبس الصحيح. يلعب MCP دور المشغّل بين تطبيق الذكاء الاصطناعي والعالم الخارجي. يقول التطبيق أحتاج إلى قراءة هذا الملف أو أحتاج إلى تشغيل هذا الاستعلام، فيوجّه البروتوكول الطلب إلى الخادم الذي يعرف كيف ينفّذه.
💡 تعريف سريع: خادم MCP برنامج يسرد الأدوات والبيانات وقوالب الأوامر التي يقدّمها، ويتيح لتطبيق الذكاء الاصطناعي استدعاءها عبر صيغة رسائل واحدة وموحّدة.
مقارنة USB-C
أشهر تشبيه هو USB-C. قبله كان لكل جهاز قابس خاص به، وكان كل حاسوب محمول يحتاج إلى درج مليء بالمحولات. قبل MCP كان كل تطبيق ذكاء اصطناعي يحتاج إلى موصّل مخصص لكل خدمة: واحد لخدمة Slack في هذا المساعد، وآخر لخدمة Slack في ذاك. احسب التركيبات. خمسة تطبيقات وعشر خدمات تعني خمسين تكاملًا منفصلًا. مع MCP، يطبّق كل تطبيق الجانب العميل مرة واحدة، وتطبّق كل خدمة خادمًا مرة واحدة، فتحلّ خمس عشرة قطعة عمل محل خمسين.
كيف يعمل خادم MCP
تظهر ثلاثة أدوار في كل إعداد من إعدادات MCP، وإدراكها بوضوح يزيل معظم الالتباس.
المضيف والعميل والخادم
الدور
ما هو
مثال
المضيف
تطبيق الذكاء الاصطناعي الذي يتحدث معه المستخدم
Claude Desktop وCursor وVS Code
العميل
موصّل داخل المضيف يحتفظ باتصال واحد بخادم واحد
يُنشأ تلقائيًا بواسطة المضيف
الخادم
البرنامج الذي يعرض الأدوات أو البيانات أو قوالب الأوامر
خادم نظام الملفات، خادم قاعدة البيانات
ينشئ المضيف عميلًا واحدًا لكل خادم. إذا وصلت خمسة خوادم، يشغّل تطبيقك خمسة عملاء، لكل منها خط خاص بخادمه. تنتقل الرسائل بصيغة JSON-RPC 2.0، وهي صيغة خفيفة للطلب والاستجابة موجودة منذ سنوات. لا شيء غريب هنا.
ماذا يحدث في طلب واحد
إليك مسار سؤال واحد، ما الفواتير المتأخرة؟، عبر مضيف متصل بخادم محاسبة:
المصافحة. عند بدء المضيف، يرسل العميل initialize. يتفق العميل والخادم على إصدار البروتوكول ويتبادلان قدراتهما.
سرد الأدوات. يستدعي العميل tools/list. يرد الخادم بكل أسماء الأدوات، ووصف بسيط لكل منها، ومخطط JSON Schema للمدخلات.
القرار. يقرأ النموذج سؤالك مع أوصاف الأدوات، ويقرر أن list_overdue_invoices هي الخطوة الصحيحة.
الموافقة. تعرض معظم المضيفات الاستدعاء وتسألك قبل تشغيل أي شيء يغيّر البيانات.
التنفيذ. يرسل العميل tools/call مع اسم الأداة والوسائط. الخادم يقوم بالعمل الفعلي، مثل تشغيل استعلام SQL.
لا يلمس النموذج قاعدة بياناتك أبدًا. هو يُنتج طلبًا فقط. الخادم يحتفظ ببيانات الاعتماد ويقوم بالعمل، ولهذا السبب تحديدًا تُعدّ الخوادم المكان الصحيح لفرض القيود.
النقل المحلي مقابل النقل عن بُعد
النقل هو القناة التي تحمل رسائل JSON تلك. يعرّف MCP نوعين قياسيين.
النقل
مكان تشغيل الخادم
الأنسب لـ
المفاضلة
stdio
على جهازك، يشغّله المضيف كعملية فرعية
الأدوات الشخصية، الوصول إلى الملفات، التطوير
مستخدم واحد، ويجب تثبيته محليًا
Streamable HTTP
عند عنوان ويب، محلي أو بعيد
خوادم الفرق المشتركة، المنتجات المستضافة
يحتاج إلى مصادقة واستضافة
تتواصل الخوادم التي تستخدم stdio عبر الإدخال والإخراج القياسيين، لذلك لا يوجد منفذ شبكة يمكن مهاجمته. وتستطيع خوادم Streamable HTTP خدمة مستخدمين كثيرين في الوقت نفسه، ولهذا تنشرها شركات البرمجيات. تذكر الدروس القديمة نقل HTTP+SSE، لكن المواصفة الحالية استبدلته بنقل Streamable HTTP.
ما الذي يمكن أن يقدّمه الخادم
الأدوات والموارد والأوامر
يعرض خادم MCP حتى ثلاثة أنواع من اللبنات الأساسية.
العنصر الأساسي
من يتحكم فيه
ما الذي يفعله
مثال
الأدوات
النموذج يقرر متى يستدعيها
تنفيذ إجراءات أو حسابات
إرسال بريد، تشغيل استعلام، توليد صورة
الموارد
التطبيق يقرر ما يرفقه
توفير بيانات للقراءة فقط كسياق
ملف، صف من قاعدة بيانات، سجل
الأوامر
المستخدم يختارها
قوالب تعليمات قابلة لإعادة الاستخدام
"راجع طلب الدمج هذا"
تحظى الأدوات بمعظم الاهتمام لأنها تتيح للذكاء الاصطناعي أن يفعل أشياء. الموارد أهدأ لكنها مفيدة بالقدر نفسه: تغذي السياق في المحادثة دون استدعاء أداة. وتعمل الأوامر مثل أوامر الشرطة المائلة التي يوفرها الخادم بنفسه.
لماذا تهم الأوصاف كثيرًا
يختار النموذج الأدوات بقراءة أسمائها وأوصافها، ولا شيء غير ذلك. أداة اسمها run ووصفها "يفعل أشياء" ستُستخدم خطأً أو تُتجاهل. أما أداة اسمها search_invoices ووصفها "ابحث عن الفواتير حسب اسم العميل أو الحالة أو نطاق التاريخ. تعيد ما يصل إلى 20 نتيجة" فستُختار في اللحظة المناسبة.
يعتمد تصميم الأداة الجيد على أربع عادات:
سمِّ الأداة بفعل واسم، مثل create_ticket أو list_branches.
صرّح بما ستعيده، لا بما تفعله فقط.
اجعل المدخلات صغيرة ومحددة النوع، واستخدم خيارات ثابتة كلما أمكن.
أعد الأخطاء كنص مقروء، حتى يتمكن النموذج من تصحيح مدخلاته وإعادة المحاولة.
💡 نصيحة: إذا ظل المساعد يختار الأداة الخاطئة، أعد كتابة الوصف قبل المساس بأي شيفرة. عمليًا، هذا يحل معظم حالات الالتباس.
أمثلة حقيقية لخوادم MCP
أسرع طريقة لاستيعاب الفكرة هي النظر إلى ما يشغّله الناس فعلًا.
خوادم نظام الملفات
يتيح خادم نظام الملفات المرجعي للمساعد قراءة الملفات والبحث فيها وتعديلها داخل المجلدات التي تختارها. وجّهه إلى مجلد مشروع واطلب كل تعليقات TODO مجمّعة حسب الملف. الخادم يستطيع الوصول فقط إلى المجلدات التي حددتها، فيعمل المساعد داخل سياج رسمته أنت.
خوادم قواعد البيانات والبحث
تعرض خوادم قواعد البيانات أداة استعلام، وأحيانًا تخطيط الجداول كمورد. اسأل عن العملاء الثلاثة الذين كان إنفاقهم الأكبر في سبتمبر، فيكتب النموذج SQL، ويشغّله الخادم، وتعود الصفوف. كثير من الفرق يضبطونها للقراءة فقط عن قصد. تعمل خوادم البحث والويب بالطريقة نفسها، فتمنح النموذج صفحات حديثة بدلًا من بيانات تدريب قديمة. وتربط خوادم شائعة أخرى GitHub وSlack وGoogle Drive وNotion وPostgres وأتمتة المتصفح.
خوادم توليد الصور والفيديو
هنا يصبح MCP بصريًا. يعرض خادم الصور أداة generate_image. يكتب المساعد الأمر النصي، ويستدعي الخادم نموذجًا، ويعود رابط الملف إلى المحادثة. يعمل الفيديو بالطريقة نفسها مع فرق واحد: المقاطع تستغرق وقتًا أطول، لذلك يبدأ الخادم مهمة ويتحقق المساعد منها حتى تكتمل.
يعمل PicassoIA وفق هذا النمط. تقع واجهة API الخاصة بالمطورين على https://api.picassoia.com/v1، وتستخدم رمز Bearer يبدأ بالقيمة pia_sk_. تتبع الطلبات أسلوب Replicate: تنشئ تنبؤًا، ثم تستعلم عنه بشكل دوري حتى ينتهي، ثم تجلب النتيجة. يمكن لكل حساب تشغيل 5 تنبؤات في الوقت نفسه. النماذج الأربعة نفسها متاحة عبر API وعبر موصل PicassoIA MCP:
تُدار اتصالات MCP من صفحة MCP في حسابك على PicassoIA، وتسرد صفحة الأسعار ما تتضمنه كل خطة. إذا كنت تفضّل صنع المقاطع يدويًا بدلًا من الاستعانة بمساعد، فنماذج مثل Seedance 2.0 وVeo 3.1 على بعد نقرة واحدة.
خادم نشر في الممارسة
مثال آخر أقرب إلى واقعنا. يمكن لخادم نشر مدونة أن يعرض أربع أدوات: توليد صورة، والتحقق من أن عنوان URL المختصر متاح، وسرد نماذج الذكاء الاصطناعي المتاحة، وحفظ المقال النهائي في قاعدة بيانات. يستدعيها المساعد الذي أُعطي موضوعًا بالترتيب، ويعيد محاولة أي صورة تفشل، ويخزّن النتيجة. لم يكتب أحد "روبوت مقالات". النموذج ببساطة امتلك الأدوات الصحيحة ومهمة واضحة.
MCP مقابل واجهة API عادية
عادةً ما يغلّف خادم MCP واجهة API عادية، فلماذا نضيف طبقة إضافية؟ لأن القارئ مختلف. تُكتب واجهة REST API للمطورين الذين يقرؤون التوثيق. يُكتب خادم MCP لنموذج عليه أن يقرأ التوثيق أثناء التشغيل.
REST API
استدعاء الدوال
خادم MCP
مصمّمة من أجل
المطورين
نموذج تطبيق واحد
أي تطبيق ذكاء اصطناعي متوافق
العثور على الأدوات
توثيق مكتوب للبشر
أدوات مكتوبة ثابتةً داخل كل تطبيق
طلب tools/list مباشر
إعادة الاستخدام
يكتب كل تطبيق عميله الخاص
يعيد كل تطبيق تعريف الدوال
خادم واحد، ومضيفون كثيرون
الإعداد المعتاد
استدعاءات HTTP في الشيفرة
مخطط JSON في كل طلب
إدخال إعداد في المضيف
لا يحل MCP محل استدعاء الدوال. يترجم المضيف قائمة أدوات الخادم إلى صيغة استدعاء الدوال التي يعرفها النموذج أصلًا. يوحّد MCP فقط مصدر تلك القائمة.
💡 قاعدة عامة: تبني تطبيقًا واحدًا بعدد قليل من الدوال الخاصة؟ يكفي استدعاء الدوال العادي. تريد القدرة نفسها في عدة مساعدين، أو تريد أن يوصلها زملاؤك؟ اكتب خادم MCP.
أسئلة أمنية تستحق الطرح
خادم MCP شيفرة يمكن للذكاء الاصطناعي أن يشغّلها، وغالبًا خلفها بيانات اعتماد حقيقية. عامله كأي برنامج آخر يلمس حساباتك. خمسة أسئلة تكشف معظم المشكلات:
من كتبه؟ خادم من مؤلف مجهول يعمل بصلاحياتك. اقرأ الشيفرة المصدرية أو التزم بناشرين موثوقين.
ماذا يستطيع أن يصل إليه؟ امنح كل خادم أضيق وصول ممكن: مجلد واحد، أو دور قاعدة بيانات للقراءة فقط، أو رمز مقيّد بمستودع واحد.
من يوافق على الإجراءات؟ أبقِ رسائل التأكيد مفعّلة لكل ما يكتب أو يرسل أو يحذف.
أين تعيش الأسرار؟ ضع الرموز في متغيرات البيئة، لا في أوصاف الأدوات أو الأوامر أبدًا.
ماذا يقرأ؟ يمكن لصفحات الويب والرسائل والمستندات أن تخفي تعليمات موجّهة إلى النموذج، وهي مشكلة تُعرف بـ حقن الأوامر (prompt injection). الخادم الذي يجلب نصوصًا خارجية يستحق صلاحيات محكمة.
⚠️ انتبه: وصف الأداة نص يثق به النموذج. يمكن لخادم خبيث أن يخفي التعليمات داخله. اربط فقط الخوادم التي ترتاح لتثبيتها كبرنامج.
كيف تبني خادمك الخاص
يتطلب بناء الخادم جهدًا أقل مما يتوقعه معظم الناس. تتوفر حزم SDK رسمية للغات TypeScript وPython وJava وC# ولغات أخرى عديدة. تنطبق الخطوات الثلاث نفسها عليها جميعًا: أنشئ خادمًا، وسجّل أداة، واربط نقلًا.
خادم أدنى بلغة TypeScript
يسجّل هذا المثال أداة واحدة تعد الكلمات وتقدمها عبر stdio. احفظه كوحدة ES.
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "word-counter", version: "1.0.0" });
server.registerTool(
"count_words",
{
description: "Count the words in a piece of text. Returns a single number.",
inputSchema: { text: z.string() },
},
async ({ text }) => ({
content: [
{ type: "text", text: String(text.trim().split(/\s+/).filter(Boolean).length) },
],
})
);
await server.connect(new StdioServerTransport());
ابنِ الملف، ثم أضف مدخلًا واحدًا إلى ملف إعداد المضيف: اسمًا، والأمر node، ومسار الملف المبني. أعد تشغيل المضيف وسيظهر count_words في قائمة أدواته. اسأل "كم كلمة في هذه الفقرة؟" وسيستدعي المساعد شيفرتك بدلًا من التخمين.
الاختبار باستخدام Inspector
قبل إلقاء اللوم على النموذج، اختبر الخادم وحده. يفتح MCP Inspector الرسمي (npx @modelcontextprotocol/inspector node build/index.js) صفحة متصفح تستطيع فيها سرد الأدوات وملء الوسائط وقراءة الاستجابات الخام. إذا عمل هناك، فالمشكلة في إعداد المضيف أو في وصف الأداة.
جرّبه مع PicassoIA
تتحدث خوادم MCP في معظمها بالنص، ومع ذلك تنتهي كثير من سير العمل بصورة أو مقطع. ترتيب عمل جيد هو صياغة الفكرة بنموذج لغوي، ثم تحويلها إلى مرئيات. يتعامل PicassoIA Image مع الصور الفوتوغرافية، ويعدّلها PicassoIA Image Editor Pro ويعيد تشكيلها، ويحرّك PicassoIA Video النتيجة.
كيف تستخدم Claude Sonnet 5
نموذج يتعامل مع استخدام الأدوات والشيفرة شريك جيد لبناء الخادم أعلاه. إليك المسار السريع مع Claude Sonnet 5 على PicassoIA:
افتح صفحة النموذج. انتقل إلى صفحة Claude Sonnet 5 على PicassoIA.
اكتب الأمر النصي. هو الحقل الوحيد المطلوب. جرّب: "اكتب خادم MCP بلغة TypeScript فيه أداة واحدة تعيد تاريخ اليوم."
اختر مستوى الجهد. الإعداد الافتراضي، low، سريع ورخيص. انتقل إلى high أو max عندما تمتد المهمة إلى عدة ملفات أو تخفي خللًا معقدًا.
اضبط أمر النظام. مثلًا: "أنت مطور TypeScript أول. أعد شيفرة قابلة للتشغيل وجملة واحدة من الشرح." أعد استخدامه عبر المشروع كله.
عدّل الحد الأقصى للتوكنات. الإعداد الافتراضي 8192، وهو كافٍ لملف خادم كامل. أرفق صورة، مثل لقطة شاشة لخطأ، إن ساعد. دقة الصورة القصوى الافتراضية 0.5 ميغابكسل للحفاظ على سرعة الطلبات.
وَلِّد واختبر. شغّل الشيفرة عبر Inspector قبل الوثوق بها.
الآن تعرف ما يفعله خادم MCP، وكيف ينتقل الطلب عبره، وأين تختبئ المخاطر. أسرع طريقة لتلمس الفكرة هي استخدام أداة تعيد شيئًا يمكنك رؤيته. افتح Picasso IA، وصف مشهدًا واحدًا في جملة واحدة، ثم وَلِّده. بعدها شغّل الأمر النصي نفسه على نموذج ثانٍ وقارن النتائج. الأدوات الصغيرة القابلة للتبديل هي العادة التي يكافئها MCP، والصورة الأولى تستغرق أقل من دقيقة. جرّبها مع Picasso IA الآن وانظر إلى أين يقودك أمرك النصي.