Skip to content

MCP: ربط Claude بالعالم الخارجي

📚 تنقل السلسلة: المقال السابق 21 الأمان وحدود المخاطر ساعدك في معرفة متى تثق بـ AI للوصول إلى كودك ونظامك. ينتقل هذا المقال إلى اتجاه آخر - ربط Claude بالعالم الخارجي. حيث لا يمكن لـ Claude الوصول افتراضياً إلا لملفاتك المحلية والخط البرمجي التابع لك، ولا يمكنه الوصول لقواعد البيانات أو Jira أو Figma. بروتوكول MCP هو المنفذ الموحد الذي يتيح له الاتصال بمجموعة من الخدمات الخارجية دفعة واحدة.

دعنا نتحدث أولاً عن مشكلة شائعة - عندما قمت بتركيب أول خادم MCP (MCP server) لي، استغرقت قرابة ساعة في التعامل مع الأخطاء التي ظهرت على الطرفية (terminal).

كنت أرغب في ربط خادم يتصل بقاعدة البيانات، ونسخت أمراً من ملف README لأحد المستودعات، وكان الأمر كالتالي: claude mcp add db -- npx server --transport stdio. قمت بتشغيل الأمر ولكن الاتصال فشل. ظننت في البداية أنها مشكلة شبكة، ثم ظننت أن الحزمة لم تثبت بشكل صحيح، فكررت الحذف والتركيب عدة مرات، وكان أمر npx يكرر تحميل الحزمة مراراً وتكراراً - ولكن الاتصال لم ينجح أبداً.

بعد البحث في التوثيق الرسمي، اتضح أن المشكلة تكمن في ترتيب المعلمات. حيث يوضح التوثيق بوضوح: يجب وضع جميع الخيارات (--transport، --env، --scope) "قبل" اسم الخادم، بينما يأتي بعد -- (الشرطتين المزدوجتين) الأمر الفعلي لتشغيل الخادم. في الأمر أعلاه، تم وضع --transport stdio بعد --، فتعامل معها النظام كمعلمات ممررة إلى الخادم نفسه، ولذا فشل الاتصال. بالإضافة إلى أن stdio هي وسيلة النقل الافتراضية ولا داعي لكتابتها أساساً - الصياغة الصحيحة للأمر هي claude mcp add db -- npx server، وحينها تم الاتصال في ثانية واحدة.

أشاركك هذه المشكلة لتتجنب إضاعة وقتك: بروتوكول MCP نفسه بسيط، ولكن الصعوبة تكمن في تفاصيل مثل "الترتيب"، "نطاق الصلاحية"، و "طلب الموافقة". سنقوم اليوم بمعالجة هذه التفاصيل وتوضيحها، وفي النهاية سنأخذك في تجربة عملية لتشغيل خادم حقيقي.

بعد قراءة هذا المقال، ستحصل على:

  • شرح مبسط لبروتوكول MCP، وما هي الثغرة التي يسدها في قدرات Claude.
  • مقارنة بين الأنواع الثلاثة للخوادم (stdio المحلي، HTTP البعيد، و SSE الذي تم إلغاؤه) ومتى تستخدم كل منها.
  • الصياغة الصحيحة لأمر claude mcp add والفرق بين نطاقات الصلاحية الثلاثة: local و project و user.
  • كيف تظهر الأدوات أمام Claude بعد إضافة الخادم، وهل يتطلب استخدامها لأول مرة موافقتك (ارتباطاً بموضوع الأمان والموافقات في المقال السابق).
  • تطبيق عملي مباشر: 5 دقائق لربط خادم التوثيق الرسمي والتحقق من عمله.

01 افهم أولاً: ما هي الفجوة التي يسدها بروتوكول MCP؟

لنبدأ بالخلاصة: Claude Code هو في الأصل مساعد "يعمل في البيئة المحلية فقط"، وبروتوكول MCP هو المنفذ الموحد الذي يربطه بكافة الخدمات الخارجية.

تذكر ما قمنا به في المقالات السابقة - قراءة ملفاتك، تعديل كودك المصدري، وتشغيل الأوامر المحلية. كلها مهام محلية. ومهما بلغت درجة ذكاء Claude، فلن يتمكن من الوصول إلى بلاغات المهام على Jira الخاصة بشركتك، أو قراءة البيانات في قاعدة بيانات الإنتاج، أو الاطلاع على تصاميم Figma. ونظراً لعدم قدرته على الوصول إليها، تضطر لنسخ هذه البيانات يدوياً وتغذيتها له.

تشبيه: قاعدة التوسيع (Dongle / Dock) التي تحتوي على منافذ متعددة. عندما تصبح أجهزة الكمبيوتر المحمولة أكثر نحافة، قد لا تتوفر بها سوى منافذ Type-C فقط، بينما تعجز عن توصيل كابل HDMI أو شبكة الإنترنت أو الفلاش ميموري بشكل مباشر. ما العمل؟ تقوم بتوصيل قاعدة توسيع - وبمجرد توصيل كابل واحد، تصبح منافذ HDMI والشبكة و USB والطاقة جاهزة للعمل دفعة واحدة. بروتوكول MCP بالنسبة لـ Claude هو هذه القاعدة: بمجرد ربطه، تتوفر كافة أدوات الخدمات الخارجية أماده مباشرة.

يعرف التوثيق الرسمي البروتوكول كالتالي:

يمكن لـ Claude Code الاتصال بمئات الأدوات ومصادر البيانات الخارجية عبر Model Context Protocol (MCP)، وهو معيار مفتوح المصدر لدمج أدوات الذكاء الاصطناعي. وتتيح خوادم MCP لـ Claude Code الوصول إلى أدواتك وقواعد بياناتك وواجهات برمجة التطبيقات (APIs) الخاصة بك.

هناك كلمة مفتاحية هنا: معيار مفتوح المصدر. بروتوكول MCP (Model Context Protocol، بروتوكول سياق النموذج، وهو مواصفة مفتوحة تنظم كيفية استدعاء AI للأدوات الخارجية) ليس بروتوكولاً مغلقاً خاصاً بشركة Anthropic، بل هو معيار عام ومفتوح. وميزته هي "الربط لمرة واحدة، والعمل في كل مكان" - فالخادم الذي تكتبه للاتصال بقاعدة بياناتك، يمكن استخدامه بواسطة Claude Code أو أي تطبيق عميل آخر يدعم بروتوكول MCP.

متى يجب عليك التفكير في استخدامه؟ يوضح التوثيق ذلك ببساطة:

عندما تجد نفسك تقوم بنسخ البيانات يدوياً من أداة أخرى (مثل نظام تتبع الأخطاء أو لوحة مراقبة الأداء) ولصقها في المحادثة، يحين وقت ربط خادم MCP.

إليك بعض الحالات الواقعية التي قد تواجهها لمعرفة ما يمكن عمله بعد الربط:

  • "قم بتنفيذ الميزة الموضحة في بلاغ Jira رقم ENG-4521، ثم افتح PR على GitHub" - سيقوم بطلب وقراءة البلاغ بنفسه دون الحاجة لنسخه.
  • "ابحث في قاعدة بيانات PostgreSQL عن البريد الإلكتروني لأول 10 مستخدمين قاموا بتجربة الميزة الجديدة هذا الشهر" - سيقوم بالبحث مباشرة في قاعدة البيانات دون الحاجة لتصدير ملف CSV ولصقه.
  • "قم بتحديث قالب البريد الإلكتروني بناءً على التصميم الجديد الموجود في Figma" - سيطلع على التصميم مباشرة دون الحجة لشرحه له عبر لقطات الشاشة.

💡 خلاصة سريعة: يعمل Claude افتراضياً على الملفات والأوامر المحلية ولا يمكنه الوصول لقواعد البيانات أو البلاغات أو التصاميم؛ بروتوكول MCP هو المنفذ الموحد الذي يوفر له أدوات الخدمات الخارجية مباشرة.


02 أنواع الخوادم الثلاثة: تشغيل محلي أم اتصال سحابي؟

لا تتوفر خوادم MCP بنوع واحد فقط. وفهم الفروق بينها يحدد كيفية تعديل الأوامر التي تستخدمها. والسؤال الأساسي هنا: هل يعمل الخادم على جهازك المحلي، أم أنه مستضاف على رابط خارجي؟

تشبيه: الأجهزة الموصلة بقاعدة التوسيع - بعضها على مكتبك والآخر على الجانب الآخر من الحائط. الفلاش ميموري وقارئ البطاقات هي أجهزة محلية متصلة بالقاعدة وتقع بالقرب منك؛ بينما كابل الشبكة يتصل بخادم بعيد يقع في غرفة خوادم بعيدة جداً. تنقسم خوادم MCP أيضاً إلى هذين القسمين - خوادم تعمل كعمليات محلية على جهازك، وخوادم مستضافة بعيداً وتتصل بها عبر الشبكة.

يوفر التوثيق الرسمي عدة وسائل للنقل (transport، وهي كيفية الاتصال والتبادل بين Claude Code والخادم)، والأكثر استخداماً هما نوعان، بالإضافة لنوع تم إيقافه:

النوعمكان التشغيلطريقة الإضافةالاستخدام الأنسب
stdio (عملية محلية)على جهازك كعملية فرعيةclaude mcp add <name> -- <الأمر>الأدوات التي تحتاج للوصول للملفات المحلية، أو التحكم بالمتصفح المحلي، أو الاتصال بقاعدة بيانات محلية
HTTP (مستضاف بعيداً)على رابط سحابيclaude mcp add --transport http <name> <رابط>الخدمات السحابية (مثل Notion و Sentry و GitHub وغيرها)، وهي الطريقة الموصى بها رسمياً
SSE (بعيد, ملغى)على رابط سحابيclaude mcp add --transport sse <name> <رابط>تظهر في الإعدادات القديمة فقط، ويُنصح باستخدام HTTP بدلاً منها

لنوضح النقاط الأكثر إرباكاً للمبتدئين:

لا يحتاج خادم stdio لكتابة معيار --transport. نظراً لأن العمليات المحلية تستخدم وسيلة النقل الافتراضية stdio تلقائياً، ولا داعي لتحديدها صراحة. والجزء الأهم في الأمر هو ما يأتي بعد علامة -- - وهي التعليمات التي تحدد لـ Claude Code كيفية تشغيل الخادم. مثل مثال Playwright الرسمي (أداة تتيح لـ Claude التحكم بالمتصفح):

bash
claude mcp add playwright -- npx -y @playwright/mcp@latest

ما يأتي بعد -- وهو npx -y @playwright/mcp@latest يمثل أمر التشغيل، وخيار -y يخبر npx بالتركيب مباشرة دون طلب تأكيد يدوياً. تشغيل خادم stdio يعني أن Claude سيقوم بتشغيل عملية فرعية صغيرة في الخلفية على جهازك، لذا يتطلب تشغيلها توفر البيئة المناسبة على جهازك (يتطلب Playwright هنا إصداراً حديثاً من Node.js، وراجع التوثيق لمعرفة المتطلبات الدقيقة).

يعتبر HTTP الخيار الأفضل للاتصال بالخدمات السحابية. ويذكر التوثيق الرسمي:

خوادم HTTP هي الخيار الموصى به للاتصال بخوادم MCP البعيدة. وهي وسيلة النقل الأكثر دعماً للخدمات السحابية.

بالنسبة لخدمات مثل Sentry أو Notion أو GitHub، لا تحتاج لتركيب أي شيء محلياً، بل تكتفي بتوفير الرابط للاتصال بها مباشرة:

bash
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

SSE (Server-Sent Events) للعلم فقط ولا يُنصح باستخدامها. ويوضح التوثيق إلغاءها صراحة:

تم إلغاء وسيلة النقل SSE (Server-Sent Events). يرجى استخدام خوادم HTTP بدلاً منها عند توفرها.

ستشاهد SSE غالباً عند التعامل مع ملفات .mcp.json القديمة فقط، واستخدم HTTP دائماً للخوادم الجديدة.

💡 خلاصة سريعة: استخدم stdio للأدوات المحلية (الأمر يأتي بعد -- دون تحديد transport)، واستخدم HTTP للخدمات السحابية (عبر كتابة الرابط، وهو الموصى به رسمياً)، وتجنب SSE تماماً نظراً لإلغائها.


03 كيفية إضافة خادم: الأوامر، نطاقات الصلاحية، وتفاصيل الترتيب

بعد فهم الأنواع، دعنا نرى كيفية الإضافة. أمران أساسيان فقط يغطيان كافة الاحتياجات:

لإضافة خادم HTTP بعيد - حدد --transport http واكتب الاسم والرابط:

bash
claude mcp add --transport http notion https://mcp.notion.com/mcp

لإضافة خادم stdio محلي - لا تحدد transport واكتب الاسم والأمر بعد --:

bash
claude mcp add airtable -- npx -y airtable-mcp-server

هنا نصل للمشكلة التي أشرنا إليها في البداية، ويركز عليها التوثيق الرسمي في ملاحظة Note هامّة يجب الانتباه لها:

يجب وضع جميع الخيارات (--transport--env--scope--header) قبل اسم الخادم. ثم تفصل علامة -- (الشرطتان المزدوجتان) اسم الخادم عن الأوامر والمعلمات الممررة إليه.

باختصار: توضع كافة خيارات أمر claude mcp add في البداية، ويأتي بعد -- الأوامر الخاصة بالخادم نفسه. أي تغيير في هذا الترتيب سيؤدي لفشل تنفيذ الأمر.

نطاقات الصلاحية الثلاثة: أين يمكن استخدام هذا الخادم؟

عند إضافة خادم، يجب تحديد نطاق عمله: هل يعمل الخادم في هذا المشروع فقط، أم يشارك مع الفريق، أم يعمل في كافة مشاريعك؟ هذا هو دور "نطاق الصلاحية (scope)"، ويتم تحديده عبر خيار --scope.

تشبيه: كيفية مشاركة طابعة في المكتب. قد تتصل الطابعة بجهازك فقط ولا يستطيع أحد استخدامها غيرك (local)؛ أو تتصل بالشبكة المحلية للقسم ويتم تسجيلها كأصل للقسم ويستطيع كافة الزملاء الطباعة عليها (project ويتم مشاركتها عبر git)؛ أو تكون طابعة محمولة خاصة بك تأخذها معك أينما ذهبت وتستخدمها في أي مكتب أو غرفة اجتماعات (user وتعمل في كافة المشاريع). نطاقات الصلاحية الثلاثة تعمل بنفس الطريقة.

يوضح الجدول التالي الفروق بين النطاقات الثلاثة المتاحة:

نطاق الصلاحيةالمشاريع التي يعمل بهامشاركته مع الفريقمكان الحفظ
local (افتراضي)المشروع الحالي فقطلا، خاص بك فقطملف ~/.claude.json (تحت قسم هذا المشروع)
projectالمشروع الحالي فقطنعم، عبر نظام إدارة النسخملف .mcp.json في جذر المشروع
userجميع مشاريعكلا، خاص بك فقطملف ~/.claude.json (تحت قسم mcpServers الرئيسي)

لكيفية الاختيار، اتبع القواعد التالية:

  • للتجارب الشخصية أو الخوادم التي تحتوي على مفاتيح سرية لا تريد مشاركتها → local (وهو الافتراضي عند غياب خيار --scope).
  • لمشاركة نفس خوادم المشروع مع كافة أعضاء الفريق → project، حيث يتم حفظها في ملف .mcp.json ورفعها إلى git، وستعمل مباشرة لدى بقية أعضاء الفريق عند سحب الكود.
  • للخوادم الشخصية التي تستخدمها يومياً في كافة مشاريعك → user، تضاف مرة واحدة وتعمل في جميع المشاريع تلقائياً.
bash
# خادم يعمل في كافة مشاريعك (نطاق user)
claude mcp add --scope user --transport http sentry https://mcp.sentry.dev/mcp

# خادم مشترك مع الفريق (نطاق project، يحفظ في .mcp.json)
claude mcp add --scope project --transport http github https://api.githubcopilot.com/mcp/

من واقع تجربتي: للخدمات الشخصية التي أستخدمها يومياً مثل GitHub أو Sentry، أقوم بإضافتها بنطاق user - تضاف مرة واحدة وتعمل في المشاريع الجديدة تلقائياً. في البداية كنت أتركها على النطاق الافتراضي local لتسهيل العمل، ولكنني اضطررت لإعادتها في كل مشروع جديد، فاكتشفت لاحقاً أن خيار user هو الأنسب. ولا أستخدم خيار project إلا عندما يكون الخادم مخصصاً لهذا المشروع تحديداً ويجب مشاركته مع بقية المطورين.

إمكانية تعديل ملف .mcp.json مباشرة

بالنسبة لنطاق project المذكور أعلاه، يمكنك تعديل الملف يدوياً. فهو في النهاية ملف JSON بسيط، وتختلف الحقول المتاحة فيه بناءً على نوع الخادم (HTTP أو stdio):

json
{
  "mcpServers": {
    "claude-code-docs": {
      "type": "http",
      "url": "https://code.claude.com/docs/mcp"
    },
    "playwright": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    }
  }
}

يتم كتابة url لـ HTTP، ويتم تحديد command و args لـ stdio. وعند رفع هذا الملف إلى المستودع، تصبح التهيئة مشتركة بين الجميع - فبمجرد سحب الكود وتشغيل Claude Code، سيقوم بقراءة هذه التهيئة وتفعيلها. ويرجى الانتباه لملاحظة مهمة: يجب إغلاق الجلسة وإعادة تشغيلها لتطبيق التغييرات بعد تعديل ملف .mcp.json يدوياً، لأن Claude Code يقرأ الملف لحظة بدء التشغيل فقط.

💡 خلاصة سريعة: لربط خادم HTTP استخدم --transport http واكتب الرابط، ولـ stdio استخدم -- واكتب الأمر الفعلي، مع وضع كافة خيارات الإضافة قبل اسم الخادم؛ وللنطاقات: local للتجارب المحلية، user للعمل في جميع المشاريع، و project للمشاركة مع الفريق عبر ملف .mcp.json.

Claude Code يربط الخدمات الخارجية عبر MCP

توضح هذه الصورة دور MCP كقاعدة توسيع متوسطة: على اليسار تظهر الأدوات المحلية لـ Claude Code (قراءة وكتابة الملفات وتشغيل الأوامر)، وعلى اليمين يظهر العالم الخارجي الذي لا يمكنه الوصول إليه مباشرة (GitHub و Jira و PostgreSQL و Figma و Sentry) - ويقوم بروتوكول MCP بربطها ببعضها عبر وسيلتي stdio و HTTP، لتظهر أدوات الخدمات الخارجية أمام Claude مباشرة.


04 بعد الإضافة: ظهور الأدوات، وهل يتطلب تشغيلها موافقة؟

بعد إضافة الخادم بنجاح، فإن الخطوة التالية ترتبط مباشرة بنظام الأمان والموافقات الذي شرحناه في المقال السابق.

عند ربط خادم MCP، فإنه يوفر مجموعة من الأدوات (مثلاً يوفر خادم GitHub أدوات مثل "قراءة PR" أو "فتح issue")، ويتم تسجيل هذه الأدوات أمام Claude ليتمكن من استدعائها واستخدامها كالأدوات المضمنة فيه تماماً. كيف تتحقق من الاتصال وقائمة الأدوات المتاحة؟ عبر هذين الأمرين:

bash
# على الطرفية: يعرض قائمة الخوادم المضافة وحالة اتصالها
claude mcp list
text
# داخل محادثة Claude: يعرض الخوادم المتاحة وأدواتها بالتفصيل
/mcp

يعرض أمر claude mcp list حالة اتصال كل خادم، ويجب عليك معرفة معاني هذه الحالات (فهي توضح لك سبب توقف الخادم عن العمل):

الحالةالمعنى
✓ Connectedتم الاتصال بنجاح والخادم جاهز للاستخدام
! Needs authenticationتم الاتصال ولكن يتطلب تسجيل الدخول (عبر OAuth أو مفتاح وصول)، توجه إلى أمر /mcp لإكمال تسجيل الدخول
✗ Failed to connect / Connection errorفشل الاتصال (لم يستجب الخادم، أو فشل تنفيذ أمر التشغيل)، تحقق من الرابط أو الأوامر المستخدمة
⏸ Pending approvalخادم مضاف بنطاق المشروع عبر ملف .mcp.json وبانتظار موافقتك لتشغيله

حالة ⏸ Pending approval تمثل نقطة الموافقة الأولى. وقد صمم المطورون هذا الجزء بحذر لحمايتك:

لدواعي الأمان، يطلب Claude Code موافقتك الصريحة قبل تفعيل خادم مضاف بنطاق المشروع عبر ملف .mcp.json.

لماذا نحتاج لهذه الخطوة؟ تخيل لو قمت بسحب مستودع غريب، وكان يحتوي على ملف .mcp.json يطلب تشغيل خادم محلي. إذا تم تشغيل الخادم تلقائياً دون موافقتك، فهذا يعني أن المستودع الغريب قام بتشغيل عملية برمجية على جهازك دون علمك. وتعمل هذه الموافقة كحاجز حماية - وارتباطاً بموضوع الأمان، يتم إيقاف أي كود مجهول المصدر بانتظار موافقتك أولاً. (إذا قمت برفض خادم بالخطأ، يمكنك إعادة خياراتك السابقة عبر الأمر claude mcp reset-project-choices).

نقطة الموافقة الثانية تظهر عند استدعاء الأداة لأول مرة. ويذكر التوثيق الرسمي:

عند استدعاء Claude لخادم MCP لأول مرة، سيطلب منك الموافقة على استخدام الأداة الجديدة. وافق عليها للمتابعة.

هذا يعني أن إضافة الخادم لا تعني إطلاق يده لاستخدامه دون قيود. فعندما يرغب Claude في استدعاء أداة MCP لأول مرة، سيتوقف ليسألك - وهي نفس آلية الصلاحيات التي رأيناها عند تعديل الملفات أو تشغيل الأوامر. ويجب أن توافق أولاً ليتمكن من المتابعة.

هناك تفصيل مفيد يساعدك على "التأكد من مصدر الإجابة": عندما يستدعي Claude أداة MCP، يظهر اسم الخادم بجانب عملية استدعاء الأداة في المخرجات. هذا يساعدك على معرفة أن "الإجابة قادمة من الخدمة الخارجية فعلاً وليست من تفكير النموذج". على سبيل المثال، بعد ربط Sentry، ستشاهد اسم sentry بجانب أداة جلب الأخطاء، مما يطمئنك بأن البيانات دقيقة وقادمة من Sentry فعلاً.

💡 خلاصة سريعة: يتم تسجيل أدوات MCP أمام Claude بعد إضافة الخادم بنجاح، وتمر بعمليتي موافقة - موافقة عند تفعيل خادم المشروع لأول مرة، وموافقة عند استدعاء الأداة لأول مرة؛ ويساعد ظهور اسم الخادم بجانب الأداة على التأكد من مصدر البيانات.


05 مخاطر خوادم الجهات الخارجية: تجنب ربط خوادم غير موثوقة

هذا القسم قصير، ولكنه الأهم على الإطلاق - فهو يرتبط مباشرة بموضوع الأمان والحدود التي ناقشناها في المقال السابق.

لنبدأ بالتحذير الرسمي كما ورد في التوثيق:

يرجى التأكد من ثقتك بالخادم قبل الاتصال به. فالخوادم التي تجلب محتويات خارجية قد تعرضك لمخاطر هجمات حقن التعليمات.

باللغة البسيطة: خوادم MCP هي برمجيات يكتبها مطورون آخرون، ولا تقوم Anthropic بفحص أمانها أو تدقيقها. خوادم الأدوات المتاحة في الدليل الرسمي (Anthropic Directory) تمر بعمليات مراجعة أساسية، ولكن الخوادم التي تجدها في أماكن أخرى يجب عليك فحصها وتقييم أمانها بنفسك.

تشبيه: تركيب مكتبة خارجية (npm package) في مشروعك. لن تقوم بتشغيل أمر npm install لمكتبة مجهولة تماماً ولا تعرف من يقوم بصيانتها أو ما هو تاريخها - بل ستقوم بالبحث عنها والتأكد من عدد مستخدميها وتاريخ صيانتها أولاً. خوادم MCP هي بمثابة "مكتبات خارجية" لجهازك - تأكد من مصدرها أولاً قبل تركيبها، خاصة تلك التي تتصل بالإنترنت وتجلب نصوصاً ومحتويات خارجية (كالويب والبلاغات والبريد).

لماذا تعتبر خوادم المحتوى الخارجي أكثر خطورة؟ لأنها تمثل المدخل الرئيسي لهجمات حقن التعليمات (prompt injection) - وهي الثغرة التي فصلناها في المقال السابق. باختصار: قد تحتوي صفحة الويب أو البلاغ الذي يجلبه الخادم على نصوص موجهة لـ AI تطلب منه تشغيل أوامر خبيثة، وإذا قرأها Claude فقد ينفذها. وكلما كان الخادم يجلب محتويات عشوائية، زادت نسبة المخاطرة.

إليك بعض القواعد البسيطة التي يمكنك اتباعها:

السيناريوقرار الربط
الخوادم المعتمدة في دليل Anthropic الرسمي✅ يفضل استخدامها أولاً
الخوادم الرسمية للشركات الكبرى (مثل GitHub و Sentry و Notion)✅ آمنة نسبياً
الخوادم المتاحة على GitHub بنجوم قليلة ومطورين مجهولين⚠️ راجع الكود المصدري لها جيداً قبل ربطها
منح الخادم صلاحيات الكتابة والتعديل في قواعد البيانات❌ يفضل منح صلاحية القراءة فقط، وتجنب منح صلاحيات التعديل والكتابة

القاعدة الأخيرة مهمة جداً. ففي مثال الاتصال بقاعدة البيانات الرسمي، يتم كتابة DSN بصلاحية قراءة فقط readonly - استخدم حسابات وصلاحيات محدودة دائماً لتقليل الأضرار إلى أقل حد ممكن.

💡 خلاصة سريعة: خوادم MCP هي برمجيات خارجية لا تخضع لتدقيق أمني من Anthropic؛ تأكد من موثوقيتها واستخدم الخوادم الرسمية والمعتمدة أولاً، واحذر من هجمات حقن التعليمات عند جلب المحتوى الخارجي، واستخدم حسابات القراءة فقط لقواعد البيانات.


06 ابدأ العمل: 5 دقائق لربط خادم حقيقي وتجربته

التعلم بالعمل هو الأفضل. سنقوم الآن بربط خادم التوثيق الرسمي لـ Claude Code - وهو خادم HTTP مستضاف، ولا يتطلب تسجيل دخول أو أي إعدادات إضافية، ومناسب جداً للتعلم والتجربة. ولا يتطلب توفر أي بيئات معقدة على جهازك.

هذا الخادم مستضاف سحابياً ويتطلب توفر اتصال بالإنترنت؛ وإذا واجهتك مشكلة في الاتصال بموقع code.claude.com يرجى التأكد من عمل الاتصال الخارجي أو استخدام خيارات الشبكة المناسبة.

الخطوة الأولى: إضافة الخادم (على الطرفية العادية، وليس داخل جلسة claude)

bash
claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcp

النتيجة المتوقعة: ستظهر رسالة تؤكد الإضافة، مثل Added HTTP MCP server claude-code-docs with URL: https://code.claude.com/docs/mcp to local config. رؤية رسالة Added تعني كتابة الإعدادات بنجاح (وتشير الرسالة إلى حفظها بنطاق local config الافتراضي لتعمل في هذا المشروع فقط).

الخطوة الثانية: التحقق من حالة الاتصال

bash
claude mcp list

النتيجة المتوقعة: سيظهر الخادم claude-code-docs في القائمة ويحمل علامة ✓ Connected. رؤية العلامة الخضراء تعني نجاح الاتصال. وإذا ظهرت علامة ✗ Failed to connect فغالباً ما تكون مشكلة في الشبكة أو جدار الحماية - تأكد من اتصالك بالإنترنت وحاول مجدداً.

الخطوة الثالثة: تشغيل الجلسة واختبار استدعاء الخادم

bash
claude

بمجرد الدخول، اطلب منه استدعاء الخادم بالاسم (تحديد اسم الخادم يضمن قيامه باستدعاء خادم MCP بدلاً من البحث في الذاكرة أو محركات البحث المعتادة):

text
باستخدام خادم claude-code-docs، ابحث عن وظيفة متغير البيئة MCP_TIMEOUT

النتيجة المتوقعة: سيتوقف Claude عند أول محاولة لاستدعاء الخادم ليطلب موافقتك أولاً (وهي نقطة الموافقة الثانية التي ذكرناها في القسم 04) - وافق على الطلب. وسيقوم بجلب وعرض تفاصيل متغير البيئة MCP_TIMEOUT (المستخدم لتحديد مهلة تشغيل خادم MCP)، وستلاحظ وجود اسم الخادم claude-code-docs بجانب عملية استدعاء الأداة في المخرجات. هذا يؤكد أن البيانات قادمة من الخادم مباشرة.

الخطوة الرابعة: حذف الخادم (اختياري)

بعد الانتهاء من التجربة، يمكنك إزالة الخادم عبر الأمر:

bash
claude mcp remove claude-code-docs

النتيجة المتوقعة: ستظهر رسالة تؤكد حذف الخادم. وعند كتابة claude mcp list مجدداً، لن تجد الخادم في القائمة.

ملاحظة هامة من التوثيق الرسمي: كل خادم مضاف يستهلك جزءاً من مساحة نافذة السياق (context window) (حيث يتم إرسال أسماء وأوصاف أدوات الخادم مع كل طلب). وكما تعلمنا في مقال السياق - يفضل حذف الخوادم غير المستخدمة عبر أمر remove لتوفير مساحة نافذة السياق لعمليات التفكير.

بإتمام هذه الخطوات الأربع، تكون قد مررت بالدورة الكاملة لعمل خادم MCP - "الإضافة ← التحقق ← استدعاء الأداة والموافقة ← الحذف". وأي خادم ستقوم بإضافته مستقبلاً سيتبع نفس هذه الدورة تماماً مع اختلاف معلمات الاتصال أو نطاق الصلاحية المختار.

💡 خلاصة سريعة: خادم التوثيق الرسمي هو الأفضل للتجربة الأولى - تضيفه بـ add وتتحقق من اتصاله بـ list وتختبره في المحادثة مع الموافقة عليه ثم تحذفه بـ remove؛ وتجربة الدورة بنفسك تساعد على الفهم بشكل ممتاز.


07 ملخص

قمنا في هذا المقال بربط Claude بالعالم الخارجي - وتحويله من مساعد محلي بسيط إلى أداة قادرة على الاتصال بكافة الخدمات الخارجية عبر منفذ MCP الموحد.

لنراجع النقاط الأساسية معاً:

هدفكالأداة المستخدمةنقاط أساسية
فهم دور MCPمعيار ربط مفتوح وموحدسد فجوة عجز Claude عن الوصول للبيانات الخارجية (كقواعد البيانات والتصاميم)
ربط الأدوات المحليةوسيلة stdioتشغيل الأمر بعد علامة -- دون تحديد transport
ربط الخدمات السحابيةوسيلة HTTPتحديد --transport http واكتساب الرابط (وهو الخيار الموصى به رسمياً)
تحديد نطاق عمل الخادمخيار --scopelocal للتجربة المحلية، user للعمل في جميع المشاريع، و project للمشاركة مع الفريق (عبر .mcp.json)
التحقق من الخوادم وأدواتهاclaude mcp list / /mcpتتبع الحالات المختلفة للاتصال (Connected أو Pending approval وغيرها)
ضبط استدعاء الأدواتبوابات الموافقة الثنائيةموافقة عند تفعيل خادم المشروع لأول مرة، وموافقة عند استدعاء الأداة لأول مرة

يمكنك الآن: معرفة الفجوة التي يسدها بروتوكول MCP في قدرات Claude؛ والتمييز بين خوادم stdio وخوادم HTTP وكيفية إضافتها بالصياغة الصحيحة؛ وتحديد نطاق عمل الخادم المناسب باستخدام خيار --scope؛ والتحقق من حالة الاتصال وقائمة الأدوات المتوفرة; وفهم بوابات الموافقات الأمنية المطبقة عند التفعيل أو الاستدعاء؛ والتأكد من موثوقية الخوادم الخارجية قبل ربطها. هذه القدرة على الربط هي المفتاح لتحويل Claude من مساعد كود بسيط إلى أداة قادرة على التعامل مع بيئة تطويرك الكاملة.

تذكر دائماً ترتيب الأوامر لتجنب الأخطاء - كتابة معلمات الإضافة في البداية، ووضع الأوامر الخاصة بالخادم بعد علامة -- دائماً.


المقال القادم 23 "الوكلاء الفرعيون (Subagent)" - يتيح بروتوكول MCP لـ Claude القيام بمهام أكثر وأوسع، ولكن مع زيادة المهام قد يثقل كاهل Claude وتزداد نافذة السياق لديه بشكل يعيق عمله. في المقال القادم، سنطرح فكرة مختلفة: بدلاً من تحميل Claude بكافة المهام، سنقوم بإنشاء وتوظيف فريق من الوكلاء الفرعيين المتخصصين وتوزيع المهام عليهم - حيث يوجه الوكيل الرئيسي المهام ويعمل الوكلاء الفرعيون بشكل مستقل بنوافذ سياق معزولة تماماً لا تؤثر على بعضها البعض. تخيل لو قمت بتوزيع مهام "فحص السجلات" و "كتابة الاختبارات" و "تشغيل البناء" على ثلاثة وكلاء فرعيين يعملون في نفس الوقت دون أن يتدخل أحدهم في نافذة سياق الآخر، ألن يكون ذلك أكثر كفاءة وترتيباً؟ سنشرح ذلك بالتفصيل في المقال القادم.


قراءات موصى بها