إعداد عملي لـ Docker MCP Toolkit، من أول تفعيل حتى أول استدعاء لأداة. فعّل البوابة، وأنشئ ملفًا شخصيًا، واختر خوادم موقّعة من الكتالوج، ثم اربط Claude Desktop وClaude Code، واختبر كل حاوية وصحّح أخطاءها وأحكم تأمينها.
تبدأ معظم إعدادات MCP بالطريقة نفسها. تلصق كتلة JSON في Claude Desktop، ثم تلصق كتلة مختلفة قليلًا في Claude Code، وتشغّل خادمًا ثالثًا عبر npx، وتترك رمز وصول شخصيًا مكتوبًا بنص عادي داخل ملف إعدادات. يعمل الأمر إلى أن يتوقف، وعندها تبحث في ثلاثة ملفات لتعرف سبب اختفاء أداة ما. يستبدل Docker MCP Toolkit هذه الفوضى بطبقة واحدة مُدارة: خوادم تعمل كحاويات، وكتالوج يوفرها، وبوابة واحدة يتحدث معها Claude. يشرح هذا المقال إعداد الثلاثة معًا، ويربط Claude Desktop وClaude Code، ويوضح كيف تتأكد أن كل أداة تعمل قبل أن تعتمد عليها.
ما الذي يفعله Toolkit فعلًا
يعمل Toolkit داخل Docker Desktop. يشغّل خوادم MCP كحاويات معزولة، ويجمعها في ملفات شخصية مسماة، ويعرض كل ملف شخصي على عملاء الذكاء الاصطناعي عبر MCP Gateway. لا يشغّل Claude أي خادم بنفسه، بل يتصل بنقطة نهاية واحدة، وتوجّه البوابة كل طلب إلى الحاوية الصحيحة.
الميزة العملية هي الفصل. محررك وتطبيق المحادثة ووكيل الطرفية كلها تشير إلى البوابة نفسها، بينما تبقى الخوادم وبياناتها الاعتمادية وحدود مواردها تحت إدارة Docker، بدلًا من نسخها إلى إعدادات كل عميل.
البوابة بلغة بسيطة
تخيّل البوابة كمكتب استقبال. يصل كل طلب من Claude إلى هناك. تختار البوابة الخادم الذي يجب أن يجيب، وتشغّل حاويته عند الحاجة، وتعيد النتيجة. السلسلة قصيرة: Claude، ثم البوابة، ثم الخادم داخل الحاوية.
البوابة مفتوحة المصدر بترخيص MIT، وتُثبّت كإضافة لواجهة سطر أوامر Docker، لذا يعمل docker mcp --help بمجرد تفعيل Toolkit. تستخدم stdio افتراضيًا، وهذا مناسب لعميل واحد. عندما تحتاج عدة عملاء إلى البوابة نفسها، شغّلها عبر HTTP streaming:
docker mcp gateway run --port 8080 --transport streaming
تجعل طبقة الحاويات هذا النظام مرتبًا. قبل Toolkit، كان كل خادم يحتاج إلى بيئة تشغيل خاصة على جهازك: Node لأحدها، وPython لآخر، وإصدار محدد لثالث. أما الخادم المحوّل إلى حاوية فيحمل بيئة تشغيله معه، فلا يحتاج حاسوبك إلا إلى Docker. لم يعد تحديث الخادم أو حذفه مهمة تنظيف مرهقة، لأن الخادم لم يُثبَّت على الجهاز المضيف أصلًا.
الكتالوج والملفات الشخصية والعملاء
يقوم النظام كله على ثلاثة مفاهيم، وكل أمر في هذا المقال يتعامل مع واحد منها.
المكوّن
ما هو
أين تتعامل معه
الكتالوج
مجموعة مختارة من خوادم MCP مغلّفة كصور حاويات
تبويب Catalog، docker mcp catalog ls
الملف الشخصي
مجموعة مسماة من الخوادم وإعداداتها لمشروع أو سير عمل واحد
تبويب Profiles، docker mcp profile list
العميل
تطبيق الذكاء الاصطناعي الذي يتصل، مثل Claude Desktop أو Claude Code
تبويب Clients، docker mcp client ls
💡 نصيحة: يمكن لملف شخصي واحد أن يخدم عدة عملاء. اضبطه مرة واحدة، وسيرى كل تطبيق متصل الأدوات نفسها.
قبل أن تثبّت أي شيء
تحتاج إلى القليل، لكن كل عنصر منه مهم.
Docker Desktop ومفتاح البيتا
يتطلب Toolkit الإصدار 4.62 من Docker Desktop أو أحدث، وهو خلف مفتاح تجريبي (beta):
افتح Docker Desktop واذهب إلى Settings.
اختر Beta features.
فعّل Docker MCP Toolkit.
اختر Apply.
يظهر الآن مدخل MCP Toolkit في قائمة Docker Desktop. إذا استخدمت نسخة أقدم من Toolkit، فستنتقل إعداداتك الحالية تلقائيًا إلى ملف شخصي باسم default، فلا تحتاج إلى إعادة بنائها.
عملاء Claude المدعومون
هناك عميلان من Claude يهمّان هنا. يتصل Claude Desktop من تبويب Clients بزر واحد. ويتصل Claude Code من الطرفية بأمر واحد. كما تذكر وثائق Docker أيضًا Cursor وZed وVisual Studio Code، وهذا مفيد عندما يتوزع فريقك على محررات مختلفة، لأنها جميعًا تقرأ الملف الشخصي نفسه.
💡 نصيحة: ثبّت Claude Code قبل البدء إذا كنت تخطط لاستخدام مسار الطرفية. يعتمد فحص الاتصال لاحقًا في هذا الدليل على أمره claude mcp list.
أنشئ ملفك الشخصي الأول
الملف الشخصي مساحة عمل. قد يضم الملف الخاص بالبحث خادم ملاحظات وخادم بحث، بينما يضم ملف الإصدار خادم GitHub وخادم مراقبة. الفصل بينهما يعني أن Claude لا يرى إلا الأدوات المناسبة للمهمة الحالية.
تعرض ثلاثة تصميمات للملفات الفكرة:
البحث: خادم ملاحظات للمواد الخلفية، وخادم بحث واحد للاستعلامات.
الإصدار: GitHub لطلبات السحب، وخادم مراقبة مثل Grafana للوحات التي تراجعها قبل النشر.
الدعم: وصول للقراءة فقط إلى خادم مدفوعات مثل Stripe، مع إيقاف أدوات الكتابة.
أنشئه في Docker Desktop
افتح MCP Toolkit واختر تبويب Profiles.
اختر Create profile.
اكتب اسمًا، مثل Frontend development.
أضف الخوادم والعملاء الآن، أو تخطَّ الخطوتين وافعلهما لاحقًا.
استبدل العنصر النائب بمرجع خادم من الكتالوج. وتتولى ثلاثة أوامر فرعية أخرى الصيانة:
docker mcp profile server add وremove لتغيير قائمة الخوادم.
docker mcp profile config <id> --set (أو --get، أو --del) لتعديل إعدادات الملف الشخصي.
docker mcp profile tools <id> --enable (أو --disable) للتحكم في الأدوات التي يمكن لنموذج Claude استدعاؤها.
اختر الخوادم من الكتالوج
يضم كتالوج Docker MCP مئات الخوادم. تذكر صفحات Docker نفسها أن العدد يتجاوز 200 في موضع، ويتجاوز 300 في موضع آخر، وهذا يشير إلى أنه ما زال ينمو. تصفّحه من تبويب Catalog، واختر Add to، ثم اختر ملفك الشخصي. تحتاج الخوادم التي تحمل علامة Configuration Required إلى بيانات اعتماد أو إعداد قبل أن تعمل.
المُتحقَّق منها، والمبنية من Docker، والبعيدة
يضم الكتالوج ثلاثة أنواع من الخوادم:
خوادم شركاء مُتحقَّق منها من شركات مثل New Relic وStripe وGrafana، منشورة مع بيانات المصدر وSBOM.
خوادم مبنية من Docker، بناها Docker ووقّعها، وتعمل محليًا وتوجد في مساحة الأسماء mcp على Docker Hub.
خوادم بعيدة مستضافة في السحابة، مثل GitHub وNotion.
💡 نصيحة: يمكن للفرق التي تحتاج إلى تحكم أدق أن تُنشئ كتالوجًا مخصصًا وتستورده بـ docker mcp catalog pull <oci-reference>، فلا يرى الأشخاص إلا الخوادم المعتمدة.
خوادم تستحق الإضافة أولًا
ابدأ بشكل بسيط. كل خادم تضيفه يضع مزيدًا من أوصاف الأدوات أمام Claude، وملف شخصي محكم يحافظ على دقة اختياراته. أربع نقاط بداية سهلة:
الهدف
الخادم المقترح
النوع
مراجعة طلبات السحب
GitHub
خادم بعيد
البحث في ملاحظات الفريق
Notion
خادم بعيد
مراجعة لوحات المتابعة
Grafana
شريك مُتحقَّق منه
فحص المدفوعات
Stripe
شريك مُتحقَّق منه
الأسرار وOAuth
تستخدم الخوادم البعيدة مثل GitHub بروتوكول OAuth. يفتح Docker نافذة متصفح، فتوافق على الوصول، وتبقى بيانات الاعتماد مُدارة من Docker بدلًا من لصقها في JSON. أما الخوادم التي تحتاج إلى أسرار ثابتة، فشغّل docker mcp secret --help لرؤية الخيارات، وdocker mcp oauth --help لأوامر التفويض. وتضيف وثائق Docker أن الطلبات التي تحمل معلومات حساسة تُحظر.
💡 نصيحة: لا تلصق رمز وصول حقيقيًا في نافذة محادثة أو في إعداد مشترك. إذا طلب خادم رمزًا، فاحفظه عبر Toolkit.
اربط Claude Desktop وClaude Code
Claude Desktop في نقرتين
في Docker Desktop، افتح MCP Toolkit واختر تبويب Clients.
ابحث عن Claude Desktop واختر Connect.
أعد تشغيل Claude Desktop.
بعد إعادة التشغيل، افتح قائمة Search and tools. يجب أن يظهر مدخل باسم MCP_DOCKER ومفعّل. كل خادم في ملفك الشخصي يقع الآن خلف هذا المدخل الواحد.
Claude Code من الطرفية
يتصل Claude Code بأمر واحد:
docker mcp client connect claude-code --global
claude mcp list
يجب أن يطبع الأمر الثاني سطرًا مثل MCP_DOCKER: docker mcp gateway run - ✓ Connected. ولربط العميل بملف شخصي واحد بدلًا من كل الملفات، يقبل أمر الاتصال --profile، كما في docker mcp client connect vscode --profile my_profile. والصيغة العامة هي docker mcp client connect [client-name] --profile [id].
يطبّق العلم --global الاتصال على مستوى النظام بدلًا من المشروع الحالي، وهذا مناسب لجهاز شخصي. لا تستخدمه عندما ينبغي أن يكون لمستودع واحد مجموعة أدوات خاصة به.
الخيار الاحتياطي: JSON يدويًا
بعض العملاء يقرأون ملف JSON خاصًا بهم ولا يملكون زر اتصال. أضف البوابة كخادم stdio:
طابِق اسم الخاصية على المستوى الأعلى الذي توثقه أداتك، لأن بعض العملاء يتوقعون mcpServers حيث يعرض هذا المقتطف servers. مدخل واحد يحل محل كتل الخوادم المنفصلة التي كانت لديك من قبل.
لأن البوابة تحفظ أدواتك في مكان واحد، لا تحتاج أي من هذه الخطوات إلى إعادة بناء عند تغيير العميل. استبدل Claude Desktop بتطبيق Claude Code، وسيتبعك الملف الشخصي نفسه.
اختبر وصحّح وأحكم القفل
تحقق من الاتصال
شغّل أمرًا يفرض استدعاء أداة حقيقيًا. يعمل مثال Docker نفسه بشكل جيد: "Use the GitHub MCP server to show me my open pull requests." إذا أجاب Claude ببيانات من حسابك، فالسلسلة كاملة تعمل. وللحصول على رؤية أدق على مستوى أدنى، يعرض docker mcp tools ls كل أداة تكشفها البوابة حاليًا، ويعرض docker mcp client ls العملاء المتصلين.
اختبر على ثلاث مراحل. أولًا، اطلب من Claude سرد الأدوات التي يراها، وهذا يؤكد أن الملف الشخصي قد حُمّل. ثانيًا، استدعِ أداة للقراءة فقط، مثل سرد طلبات السحب، وهذا يؤكد أن بيانات الاعتماد تعمل. ثالثًا، وفقط بعد ذلك، جرّب إجراءً يغيّر شيئًا، ونفّذه في مستودع تجريبي أو مساحة عمل اختبارية حتى لا تكلفك أي زلة في الكتابة شيئًا.
إصلاح البدء البطيء
تحتاج البوابة إلى نحو 15 إلى 25 ثانية حتى تعمل. ومعظم لحظات "إنه معطل" هي في الواقع "ما زال يستيقظ". انتظر نصف دقيقة قبل تغيير أي شيء، ثم راجع هذا الجدول.
العَرَض
السبب المرجّح
الحل
MCP_DOCKER غير موجودة في Claude Desktop
لم يُعَد تشغيل التطبيق
أغلق Claude Desktop وأعد فتحه
غير متصل مباشرة بعد التشغيل
البوابة ما زالت تبدأ
انتظر، ثم شغّل claude mcp list مرة أخرى
يظهر الخادم Configuration Required
بيانات اعتماد ناقصة أو موافقة OAuth غير مكتملة
أكمل الإعداد في تبويب Catalog
أدوات خادم واحد مفقودة
الأدوات معطّلة في الملف الشخصي
أعد تفعيلها بـ docker mcp profile tools
الحدود وقوائم السماح والأدوات الديناميكية
يطبّق Docker ضوابط حماية افتراضية. تُحدّ حاوية كل خادم عند 1 CPU و2 GB من الذاكرة، ويبقى الوصول إلى نظام الملفات متوقفًا حتى تمنحه، وصور مساحة الأسماء mcp موقّعة رقميًا. وداخل الملف الشخصي، تضيّق قائمة السماح للأدوات ما يحق لنموذج Claude استدعاؤه أصلًا.
تستحق إحدى الميزات قرارًا مدروسًا. تتيح Dynamic MCP لنموذج Claude البحث في الكتالوج وإضافة خادم في منتصف المحادثة، باستخدام أدوات إدارة تكشفها البوابة: mcp-find، وmcp-add، وmcp-config-set، وmcp-remove، وmcp-exec، وcode-mode التجريبية. وهي تُفعَّل تلقائيًا مع Toolkit. إذا أردت مجموعة أدوات ثابتة، فعطّلها:
docker mcp feature disable dynamic-tools
أعد تفعيلها لاحقًا بـ docker mcp feature enable dynamic-tools.
كيف تستخدم Sonnet 5 على PicassoIA
ينتج عمل الإعداد كمًا كبيرًا من النصوص للقراءة: مخرجات الأخطاء، وأوامر الملفات الشخصية، وملاحظات للزملاء. تتوفر Claude Sonnet 5 في مجموعة النماذج اللغوية الكبيرة على PicassoIA، وتتعامل مع هذا تحديدًا. تقرأ طلبًا عاديًا أو تحلّل تتبّع مكدس الاستدعاءات، وتقبل لقطة شاشة، وتعيد أوامر أو إصلاحات يمكنك التحقق منها في وثائق Docker.
الصق مشكلتك في Prompt: نص الخطأ الدقيق، أو مخرجات claude mcp list.
اختر مستوى effort. low هو الافتراضي ويتجاوز التفكير الموسّع، فتعود الإجابات بسرعة. ارفعه إلى high أو max لمشكلة متشابكة تمتد عبر عدة ملفات.
أرفق لقطة شاشة لنافذة Docker Desktop في Image إذا كانت المشكلة بصرية.
أضف System Prompt مرة واحدة، مثل "أنت مساعد DevOps. أجب بأوامر docker mcp دقيقة وجملة واحدة من السياق."
اترك Max Tokens على 8192 للإجابات الطويلة، ثم شغّل الطلب.
الإعداد
ما الذي يفعله
القيمة المقترحة
Effort
يتحكم في مقدار التفكير قبل الرد
low للبحث السريع، وhigh لتصحيح الأخطاء
Image
يُدخل لقطة شاشة في الطلب
نافذة Docker Desktop مقصوصة
System Prompt
يحدد الدور والنبرة للجلسة
موجز قصير لمساعد DevOps
Max Tokens
يحدد طول الإجابة الأقصى
8192
💡 نصيحة: لا يستطيع Sonnet 5 رؤية جهازك. عامل أوامره كمسودات، وتحقق من كل أمر في وثائق Docker قبل تشغيله.
تناسب نماذج أخرى على المنصة عادات مختلفة. يستهدف Claude Fable 5 مهام البرمجة الأصعب، ويتعامل GPT 5.6 Sol مع الشيفرات المعقدة، ويعالج Gemini 3.1 Pro الأسئلة متعددة الوسائط الطويلة، وصُمم Kimi K2.6 لأعمال الوكلاء.
جرّبه مع صورك الخاصة
بمجرد أن يصل Claude إلى خوادمك عبر بوابة واحدة، تصبح الخطوة التالية منح تلك سير العمل شيئًا تنظر إليه. يمكن لخادم GitHub أن يكتب مسودة ملاحظات الإصدار، ويحتفظ خادم Notion بالموجز، ويمكن لنموذج صور أن ينتج صورة الترويسة في الجلسة نفسها.