التطوير

كيفية بناء خادم MCP في عام 2026: دليل عملي للمطورين

يتيح خادم MCP كشف أدواتك وبياناتك أمام نموذج الذكاء الاصطناعي عبر بروتوكول مفتوح واحد. إليك كيفية بناء خادم MCP باستخدام حزمة SDK الرسمية لـ Python أو TypeScript، واختباره باستخدام MCP Inspector، وربطه بـ Claude، ونشره بأمان.

وقاص احمد وسیر
وقاص احمد وسیر 9 يوليو 2026 9 دقائق قراءة
كيفية بناء خادم MCP في عام 2026: دليل عملي للمطورين

خادم MCP هو برنامج صغير يكشف أدواتك وبياناتك ومطالباتك أمام نموذج الذكاء الاصطناعي عبر Model Context Protocol، وهو المعيار المفتوح الذي قدّمته Anthropic في نوفمبر 2024 والذي أصبح الآن مدعومًا من Claude وChatGPT وCursor ومعظم أُطر عمل الوكلاء. إذا كنت تعرف كيفية بناء خادم MCP، فيمكنك توصيل أي واجهة API أو قاعدة بيانات أو نص برمجي داخلي بوكيل ذكاء اصطناعي في أقل من ساعة بكثير. يقودك هذا الدليل عبر المسار بأكمله: اختيار حزمة SDK، وتعريف أداة، واختيار وسيلة نقل، والاختبار محليًا، وربطه بعميل حقيقي، إضافةً إلى الأخطاء الأمنية التي تؤدي إلى اختراق الخوادم.

نحن نبني TechRiseUps باستخدام Claude Code، وعملية البحث هذه نفسها تصل إلى DataForSEO عبر خادم MCP، لذا فإن سير العمل أدناه هو ما نُشغّله فعليًا، وليس مجرد رسم تخطيطي على السبورة.

ما هو خادم MCP، وهل تحتاج إلى بناء واحد؟

خادم MCP هو عملية تتحدث ببروتوكول JSON-RPC واحد إلى أي عميل متوافق مع MCP ("المضيف"، مثل Claude Code أو Claude Desktop). وهو يُعلن عن ثلاثة أنواع من القدرات: الأدوات (دوال يمكن للنموذج استدعاؤها، بموافقة المستخدم)، والموارد (بيانات للقراءة فقط يمكن للنموذج جلبها للسياق)، والمطالبات (قوالب قابلة لإعادة الاستخدام). يكتشف العميل تلك القدرات عبر الاتصال، بحيث يعمل خادم واحد عبر كل مضيف دون أي تعديلات مخصّصة.

قبل أن تكتب أي شيفرة، تحقّق مما إذا كنت تحتاج فعلًا إلى خادم مخصّص. هناك آلاف الخوادم المنشورة لـ GitHub وPostgres وSlack وأنظمة الملفات وغيرها؛ إذا كان أحدها موجودًا لنظامك، فثبِّته بدلًا من ذلك. ابنِ خادمك الخاص عندما تُغلّف واجهة API خاصة، أو أداة داخلية، أو منطق أعمال مُصمَّم خصيصًا لا يغطّيه أي خادم عام. تلك هي الحالة الصادقة بنسبة 80%، وهي التي يستهدفها هذا الدليل.

ما الذي تحتاجه قبل أن تبدأ

المتطلبات خفيفة، وهذا هو سبب انتشار MCP بهذه السرعة. تحتاج إلى بيئة تشغيل لحزمة SDK التي اخترتها، وعميل متوافق مع MCP للاختبار مقابله، وحزمة SDK الرسمية. لا شيء يحتاج إلى أن يكون عامًا أو مُستضافًا للتطوير المحلي.

  • بيئة تشغيل: Python 3.10+ (مع التوصية بـ uv) أو Node.js 18+ لـ TypeScript.
  • عميل: Claude Desktop أو Claude Code أو Cursor أو MCP Inspector المستقل، كلها مناسبة.
  • حزمة SDK: mcp[cli] لـ Python أو @modelcontextprotocol/sdk لـ TypeScript، وكلاهما مُدار من قِبل فريق البروتوكول.
  • واجهة API أو مصدر بيانات لكشفه. لا يحتاج خادم stdio محلي إلى نطاق ولا TLS ولا منفذ مفتوح؛ ولا تصبح الاستضافة مهمة إلا عند الانتقال إلى وضع بعيد (مشمول أدناه).

اختر حزمة SDK الخاصة بك: Python (FastMCP) مقابل TypeScript

تصل كلتا حزمتَي SDK الرسميتين إلى تكافؤ في الميزات، لذا اختر بناءً على المكان الذي يوجد فيه تكاملك بالفعل. طبقة FastMCP في Python هي أسرع مسار من الفكرة إلى خادم يعمل؛ وTypeScript هو الخيار الطبيعي إذا كانت أدواتك موجودة بالفعل في Node.

PythonTypeScript
الحزمةmcp[cli] (python-sdk)@modelcontextprotocol/sdk (typescript-sdk)
فئة الخادمFastMCPMcpServer
تعريف أداةمُزخرِف @mcp.toolserver.registerTool() / server.tool()
التحقّقتلميحات النوعمخطط Zod
الأفضل لـحِزم البيانات/التعلّم الآلي، أسرع بدايةقواعد شيفرة JS/TS، تطبيقات الويب

إذا لم يكن لديك حزمة قائمة لمطابقتها، فابدأ بـ Python وFastMCP. الأداة ليست سوى دالة مُزخرَفة، لذا إذا كنت تستطيع كتابة دالة Python فيمكنك إطلاق خادم.

ابنِ خادمًا بسيطًا: عرّف أداة واحدة

العمل الأساسي هو تسجيل أداة: اسم، ومخطط إدخال، ودالة غير متزامنة تُنجز شيئًا وتُعيد نصًا. إليك خادم Python كامل يكشف أداة get_weather واحدة.

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("weather")

@mcp.tool()
async def get_weather(city: str) -> str:
    """Return the current weather for a city."""
    # call your real API here
    return f"It's 21C and clear in {city}."

if __name__ == "__main__":
    mcp.run(transport="stdio")

صيغة TypeScript هي الفكرة نفسها مع مخطط Zod للإدخال، ومثيل McpServer، وserver.registerTool() الذي يُعيد مصفوفة content من { type: "text", text }. في كلتا حزمتَي SDK، فإن سلسلة التوثيق/الوصف هي ما يقرؤه النموذج ليقرّر متى يستدعي الأداة، لذا اكتبها كأنها مطالبة، لا كتعليق برمجي. الأوصاف المبهمة هي السبب الأول في أن أداة تعمل لا يتم استدعاؤها أبدًا.

اختر وسيلة نقل: stdio مقابل Streamable HTTP

يُعرّف MCP وسيلتَي نقل، والاختيار يحدّد أين يمكن أن يعمل خادمك. اضبط هذا مبكرًا لأنه يُشكّل النشر.

  • stdio يُطلق الخادم كعملية فرعية محلية ويتحدث عبر stdin/stdout. إنه الوضع الافتراضي، ولا يحتاج إلى شبكة، وهو المناسب لأي شيء يلامس الملفات المحلية أو قواعد البيانات المحلية أو جهاز المطوّر نفسه. كل دليل بداية سريعة يستخدمه.
  • Streamable HTTP (الذي حلّ محل وسيلة النقل الأقدم HTTP+SSE في مراجعة المواصفات لعام 2025) يُشغّل الخادم كخدمة ويب يمكن للأجهزة الأخرى الوصول إليها. استخدمه لخادم فريق مشترك أو لتكامل مُستضاف. هذه هي الحالة الوحيدة التي تنطبق فيها "متطلبات الاستضافة": عنوان URL عام، وTLS، ومصادقة.

قاعدة عامة: ابنِ واختبر على stdio، ولا تنتقل إلى Streamable HTTP إلا بمجرد أن يحتاج أكثر من شخص أو جهاز إلى الخادم.

الاختبار باستخدام MCP Inspector قبل ربط عميل

لا تُصحّح أخطاء خادم جديد من خلال نافذة محادثة. إن MCP Inspector هو أداة تعمل في المتصفح تتّصل مباشرةً بخادمك، وتسرد أدواته وموارده، وتتيح لك استدعاء كل واحدة منها بمدخلات عشوائية، بحيث ترى الاستجابة الخام بدلًا من إعادة صياغة النموذج لها.

npx @modelcontextprotocol/inspector
# opens a local UI (default http://localhost:6274)

وجِّهه إلى أمرك (بالنسبة لخادم stdio، هذا هو المُفسِّر إضافةً إلى نصك البرمجي)، وتأكّد من ظهور كل أداة بالمخطط الذي تتوقّعه، ثم استدعِها. إذا أخطأت أداة هنا، فستُخطئ داخل Claude أيضًا، لكن بوضوح أقل. هذه العادة الواحدة تُزيل معظم إحباط "خادمي لا يعمل".

اربطه بـ Claude Code أو Claude Desktop أو Cursor

بمجرد أن يكون Inspector راضيًا، سجِّل الخادم مع عميل عبر تكوين JSON صغير. يقرأ كل مضيف ملفه الخاص، لكن الصيغة متطابقة: أمر، ووسائطه، وأي أسرار كمتغيرات بيئة.

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": ["run", "python", "/full/path/to/server.py"],
      "env": { "WEATHER_API_KEY": "..." }
    }
  }
}

يقرأ Claude Code ملف .mcp.json في مشروعك (أو claude mcp add)، ويقرأ Claude Desktop ملف claude_desktop_config.json، ويستخدم Cursor لوحة Tools & Integrations الخاصة به. أعِد تشغيل المضيف، وستظهر الأداة جاهزة للاستدعاء. إذا كنت جديدًا على النموذج بأكمله، فإن دليلنا المبسّط لخوادم MCP يغطّي المفاهيم التي يفترضها هذا الدليل.

انشر خادم MCP بعيدًا على خادم VPS

لمشاركة خادم مع فريق أو ربطه بوكيل سحابي، شغّله كخدمة Streamable HTTP على خادم VPS صغير. تتغيّر شيفرة الخادم بالكاد؛ إذ تستبدل وسيلة النقل stdio بـ HTTP وتضعه خلف بروكسي عكسي. ما يتغيّر هو قائمة المهام التشغيلية: نطاق، وشهادة TLS، ومدير عمليات كي يُعيد التشغيل عند إعادة الإقلاع، والأهم، المصادقة، لأن نقطة نهاية MCP العامة هي بوابة عامة إلى أيًّا كان ما تُغلّفه.

إن مثيلًا بسعر 4–5 يورو/شهريًا يكفي تمامًا لمعظم الخوادم الداخلية؛ ونحن نُشغّل بنيتنا التحتية الخاصة على WaseerHost لهذا النوع بالضبط من الخدمات الجانبية الدائمة العمل. آليات الجهاز والجدار الناري وTLS هي نفسها في أي نشر صغير، ويقودك إعداد VPS الآمن في الساعة الأولى عبر هذا الجزء من البداية إلى النهاية. لا تكشف خادمًا بعيدًا دون طبقة مصادقة أمامه.

الأمان: الأخطاء التي تؤدي إلى اختراق خوادم MCP

يمنح MCP نموذج لغة القدرة على تشغيل شيفرتك، لذا عامِل كل أداة كسطح هجوم. إن الإخفاقات متسقة على نحو مُملّ:

  • عدم التحقّق من الإدخال. مخططات Zod وتلميحات نوع Python ليست زخرفة. الأداة التي تُمرّر مخرجات النموذج مباشرةً إلى أمر شل أو سلسلة SQL هي خط أنابيب يمتد من حقن المطالبات إلى تنفيذ الشيفرة عن بُعد (RCE).
  • أدوات واسعة النطاق أكثر من اللازم. أداة run_command واحدة مريحة وخطيرة. اكشف قدرات ضيّقة ومحدّدة، لا فتحة هروب عامة.
  • الأسرار داخل التكوين. احتفظ بمفاتيح API في متغيرات البيئة، ولا تُضمّنها في الشيفرة أبدًا، وحدِّد نطاقها بالحدّ الأدنى الذي تحتاجه الأداة.
  • خوادم بعيدة دون مصادقة. إن نقطة نهاية Streamable HTTP عامة دون مصادقة هي باب مفتوح؛ اشترط رمزًا مميزًا وحُدّ من المعدّل.

حقن المطالبات يجعل هذا أشدّ من واجهة API عادية: قد يكون "المستخدم" الذي يستدعي أداتك نموذجًا تلاعب به محتوى غير موثوق. لقد تناولنا هذا التهديد بعمق في أمان وكلاء الذكاء الاصطناعي وأزمة حقن المطالبات. افترض أن مدخلات الأدوات عدائية وستتجنّب أسوأ ما فيها.

الأسئلة الشائعة

هل يمكنني بناء خادم MCP الخاص بي؟

نعم، والأمر سهل عن قصد. باستخدام حزمة SDK الرسمية لـ Python أو TypeScript، فإن خادمًا يعمل ويكشف أداة واحدة هو بضع عشرات من الأسطر ويعمل محليًا دون استضافة. ابنِ واحدًا كلما احتجت إلى كشف واجهة API خاصة أو أداة داخلية لا يغطّيها أي خادم عام بالفعل.

ما هي متطلبات استضافة خادم MCP؟

بالنسبة للاستخدام المحلي (وسيلة نقل stdio) لا توجد أي متطلبات تتجاوز بيئة التشغيل، فالخادم لا يغادر جهازك أبدًا. لا تصبح الاستضافة مهمة إلا لخادم Streamable HTTP بعيد، والذي يحتاج إلى عنوان URL عام، وشهادة TLS، ومدير عمليات، ومصادقة. ويتولّى خادم VPS صغير ذلك بسهولة.

ما هو أكثر أنواع خوادم MCP شيوعًا؟

تُهيمن خوادم stdio المحلية على الاستخدام اليومي للمطوّرين لأنها الوضع الافتراضي ولا تحتاج إلى بنية تحتية. والأدوات هي القدرة الأكثر استخدامًا بفارق كبير، متقدّمةً على الموارد والمطالبات، لأن السماح للنموذج باتخاذ إجراءات هو عامل الجذب الرئيسي.

كم من الوقت يستغرق بناء واحد؟

إن خادمًا بسيطًا بأداة واحدة هو مهمة تستغرق 15–30 دقيقة مع أيٍّ من حزمتَي SDK. يذهب معظم الوقت الفعلي إلى التكامل الأساسي (واجهة API أو قاعدة البيانات التي تُغلّفها) وإلى كتابة أوصاف أدوات واضحة، لا إلى MCP نفسه.

Sources

وقاص احمد وسیر

وقاص احمد وسیر

وقاص احمد وسیر مطوّر ومهندس أتمتة بخبرة تزيد على 8 سنوات في بناء أنظمة إنتاجية يستخدمها أكثر من 100 ألف شخص. يبني تطبيقات SaaS متعددة المستأجرين، وأتمتة بالذكاء الاصطناعي (n8n، تدفقات LLM، بوتات واتساب)، وبنية استضافة (WHM/cPanel، CloudLinux) — وهو صانع WaSphere وFlowMaticX وعلامة الاستضافة WaseerHost. أنجز أكثر من 100 مشروع لشركات صغيرة ومتوسطة ووكالات وشركات ناشئة ممولة.

ذات صلة

المزيد في التطوير

عرض الكل
كيفية إنشاء مهارة Claude Code في 2026: دليل عملي
التطوير

كيفية إنشاء مهارة Claude Code في 2026: دليل عملي

المهارة (Skill) هي مجلد يحتوي على ملف SKILL.md يُعلّم Claude Code إجراءً قابلاً للتكرار. يوضح هذا الدليل العملي كيفية إنشاء مهارة Claude Code، وكتابة وصف يُفعّلها فعليًا، واستخدام الكشف التدريجي بحيث لا تكلّفك التعليمات الطويلة شيئًا تقريبًا حتى الحاجة إليها.

وقاص احمد وسیر8 دقائق قراءة
أفضل نموذج ذكاء اصطناعي للبرمجة في 2026: ترتيب وفقًا لـ SWE-bench والتكلفة الفعلية
التطوير

أفضل نموذج ذكاء اصطناعي للبرمجة في 2026: ترتيب وفقًا لـ SWE-bench والتكلفة الفعلية

أفضل نموذج ذكاء اصطناعي للبرمجة في 2026 هو Claude Opus 4.8 من حيث الدقة الخام (88.6% في SWE-bench Verified)، لكن الخيار الأمثل يعتمد على ميزانيتك. إليك كيفية ترتيب النماذج الرائدة وفق معايير القياس والسعر لكل توكن، ومتى يتفوق نموذج أرخص أو ذاتي الاستضافة.

وقاص احمد وسیر8 دقائق قراءة
كيف تكتب ملف AGENTS.md في 2026 (قصير، مكتوب يدويًا، مدعوم بالبيانات)
التطوير

كيف تكتب ملف AGENTS.md في 2026 (قصير، مكتوب يدويًا، مدعوم بالبيانات)

يُخبر ملف AGENTS.md وكلاء البرمجة مثل Claude Code وCodex وCursor بكيفية البناء والتصرف داخل مستودعك. إليك كيفية كتابة ملف AGENTS.md في 2026 — الأقسام التي تنجح، ولماذا يتفوق الملف القصير المكتوب يدويًا على الملف الطويل المُولَّد آليًا.

وقاص احمد وسیر8 دقائق قراءة

النقاش · 0

كن لطيفًا. التعليقات علنية.

    النشرة البريدية · إصدار الاثنين

    ملخّص الاثنين.

    بريد واحد كل صباح اثنين. الأسبوع المقبل في الذكاء الاصطناعي والشركات الناشئة والاستضافة وأدوات المطوّرين — بلا حشو، وبلا إعلانات مموّهة.

    مجاني. يمكنك إلغاء الاشتراك بنقرة واحدة.