خوادم MCP في Gemini CLI: كيف تضيفها وتضبط إعداداتها
أضف خوادم Model Context Protocol إلى Gemini CLI باستخدام الأمر gemini mcp add أو بإدخال يدوي في settings.json. اطّلع على إعدادات stdio وSSE وstreamable HTTP العملية، إلى جانب OAuth، وتصفية الأدوات، وإعدادات الثقة، والفحوصات التي تصلح خادمًا عالقًا في حالة Disconnected.
يفيدك Gemini CLI منذ اللحظة التي تثبّته فيها. ويصبح أكثر فائدة حين يتمكن من الوصول إلى متتبّع المشكلات، أو قاعدة البيانات، أو مجلد ملفات التصميم دون أن تلصق أي شيء في الأمر النصي. الجسر هنا هو Model Context Protocol، وكل جسر منها هو خادم MCP. يستطيع Gemini CLI التواصل مع الخوادم التي تعمل كعمليات محلية، والخوادم خلف نقطة نهاية HTTP عادية، وكذلك نقاط نهاية SSE للبث القديمة. ويوفر طريقتين لتسجيلها: أمر gemini mcp add واحد، أو بضعة أسطر في settings.json.
يشرح هذا المقال الطريقتين بأوامر حقيقية، ثم يتناول الأجزاء التي تتعطل عادةً: النطاقات، والأسرار، وتصفية الأدوات، وOAuth، وحالة Disconnected المزعجة. كل علامة وحقل وارد أدناه مأخوذ من الوثائق الرسمية لخوادم MCP في Gemini CLI، وحيثما يختلف السلوك بين الإصدارات أذكر ذلك.
💡 الإجابة السريعة: شغّل gemini mcp add -s user <name> <command-or-url>، ثم اكتب /mcp داخل CLI. يجب أن يظهر الخادم كمتصل وأن يعرض قائمة أدواته.
ماذا تضيف خوادم MCP إلى Gemini CLI
عند البدء، يقرأ Gemini CLI الخوادم المُعدّة لديك، ويتصل بكل واحد منها، ويسأله عما يقدّمه. يجيب الخادم بقائمة من الأدوات، ولكل أداة اسم ووصف ومخطط JSON لمدخلاتها. يرى النموذج هذه الأدوات إلى جانب الأدوات المدمجة (قراءة الملفات، وأوامر الشل، والبحث على الويب) ويستدعيها عندما يحتاجها الأمر النصي.
الأدوات والأوامر النصية الجاهزة والموارد
يمكن للخادم أن يعرض ثلاثة أنواع من الأشياء:
الأدوات هي إجراءات: استعلام عن جدول، أو فتح مشكلة، أو تغيير حجم صورة.
الأوامر النصية الجاهزة قوالب قابلة لإعادة الاستخدام، وقد تظهر كأوامر شرطة مائلة.
الموارد بيانات قابلة للقراءة مثل الملفات أو السجلات.
تأتي معظم الخوادم بأدوات فقط، وهنا يُجدي جهد الإعداد. كل ما يلي يدور حول توصيل هذه الأدوات بأمان.
اختيار وسيلة النقل
يستخدم كل إدخال للخادم وسيلة نقل واحدة من ثلاث. والحقل الذي تضبطه يحدد الوسيلة التي يستخدمها CLI.
وسيلة النقل
حقل الإعداد
علامة CLI
الأنسب لـ
Stdio
command (مع args)
الافتراضي، أو --transport stdio
خوادم محلية يشغّلها CLI باستخدام npx أو node أو python3
SSE
url
--transport sse
خوادم بعيدة أقدم ما زالت تعرض نقطة نهاية /sse
Streamable HTTP
httpUrl
--transport http
الخوادم البعيدة الحالية والخدمات المستضافة
مع stdio، يشغّل CLI العملية ويتواصل معها عبر الإدخال والإخراج القياسيين. وهذا يعني أن الخادم يجب ألا يطبع نصوصًا عشوائية إلى stdout أبدًا. تذهب السجلات إلى stderr، وإلا ينكسر تدفق البروتوكول ويخرج الخادم من الاتصال.
غالبًا ما يُحسم الاختيار نيابةً عنك. إن كان الخادم حزمة أو سكربت على جهازك، فاستخدم stdio. وإن كان موجودًا على عنوان URL وكان المزوّد يقدّم HTTP وSSE معًا، فاختر HTTP، لأن SSE وسيلة أقدم وموجودة أساسًا من أجل الخوادم التي لم تنتقل بعد.
أضف خادمًا بأمر واحد
إن لم يكن gemini موجودًا في PATH لديك بعد، فثبّته باستخدام npm install -g @google/gemini-cli. بعد ذلك يصبح أمر الإضافة أسرع طريق.
gemini mcp list
gemini mcp disable issues --session
gemini mcp enable issues
gemini mcp remove issues -s user
تغيّر العلامة --session على enable وdisable الحالةَ للجلسة الحالية فقط. ومن دونها يُحفظ الاختيار في ~/.gemini/mcp-server-enablement.json.
💡 انتبه إلى علامات الاقتباس. في المثال الأول تُبقي علامات الاقتباس المفردة $ISSUES_TOKEN عنصرًا نائبًا. ومع علامات الاقتباس المزدوجة يوسّع الشل القيمة أولًا، فيدخل الرمز الفعلي إلى settings.json. افتح الملف بعد إضافة أي خادم وتحقق.
💡 الوسائط التي تبدأ بشرطة، مثل npx -y، قد يخطئ محلل العلامات في اعتبارها خيارات CLI. بالنسبة إلى الخوادم التي تُشغَّل بهذه الطريقة، اكتب الإدخال في settings.json بدلًا من ذلك.
تحرير settings.json يدويًا
يكتب أمر الإضافة بيانات JSON نيابةً عنك. أما تحرير JSON مباشرةً فيمنحك كل حقل، ويبقي إعدادك قابلًا للمراجعة في طلب سحب، ويسهّل نسخ كتلة تعمل إلى زميل.
نطاق المستخدم أو نطاق المشروع
نطاق المستخدم:~/.gemini/settings.json. يتبعك إلى كل مجلد.
نطاق المشروع:.gemini/settings.json داخل المستودع. ارفعه إلى المستودع فيحصل الفريق كله على الخوادم نفسها.
يُقرأ ملف المشروع بعد ملف المستخدم، لذا يكون له الغلبة إذا عرّف الملفان الخادم نفسه بالاسم نفسه. وتذكّر أن gemini mcp add يكتب في نطاق المشروع ما لم تمرر -s user.
مهلة الطلب بالمللي ثانية. القيمة الافتراضية هي 600000، أي عشر دقائق.
trust
boolean
القيمة الافتراضية هي false. عندما تكون true، يتم تخطي تأكيدات الأدوات.
includeTools
string[]
لا تُفعَّل إلا هذه الأدوات
excludeTools
string[]
تُعطَّل هذه الأدوات. تتغلب هذه القائمة على includeTools.
oauth، authProviderType
object، string
إعدادات المصادقة، موضحة أدناه
أبقِ الأسرار خارج الملف
داخل كتلة env، يوسّع Gemini CLI القيمتين $NAME و${NAME} على كل المنصات، وكذلك %NAME% على Windows. ويصبح المتغير غير المضبوط سلسلة نصية فارغة دون أي تحذير. والنتيجة خادم يبدأ ثم يفشل في المصادقة، وهذا يبدو خللًا في الخادم بينما هو في الحقيقة خطأ إملائي في اسم متغير.
ملف المشروع يُحفظ عادةً في المستودع، فأشِر إلى المتغيرات ولا تلصق أي سر فيه أبدًا. التوسيع موثّق لكتلة env، لذا إن أردت رمزًا داخل headers، فتحقق من أن إصدار CLI لديك يوسّعه، أو أبقِ ذلك الإدخال في نطاق المستخدم حيث لا يصل إلى نظام التحكم بالإصدارات.
تقييد الوصول وإدارة المصادقة
يمنح توصيل خادم النموذج مجموعة جديدة من القدرات. قرّر مقدار ما تريده منها قبل الأمر النصي الأول.
تصفية الأدوات لكل خادم
لنفترض أن الخادم يعرض search_issues وget_issue وdelete_issue. تريد الأولى والثانية ولا تريد الثالثة أبدًا:
عند ضبط mcp.allowed، لا يتصل إلا الخوادم المسمّاة هناك. أما mcp.excluded فيحجب الخوادم التي تضعها في القائمة.
استخدم الثقة بحذر
افتراضيًا، يسأل Gemini CLI قبل تشغيل أي أداة. وضبط "trust": true، أو تمرير --trust عند إضافة خادم، يوقف كل التأكيدات لذلك الخادم. وهذا معقول لخادم للقراءة فقط كتبته بنفسك. أما لأي شيء يمكنه كتابة الملفات، أو إرسال الرسائل، أو تشغيل الأوامر، فهو فكرة سيئة، لأن أمرًا نصيًا واحدًا سيئًا قد يشغّله دون أن تراه أولًا.
OAuth عبر /mcp auth
تحتاج كثير من الخوادم المستضافة إلى تسجيل الدخول. داخل CLI، شغّل /mcp auth لعرض الخوادم التي تدعم OAuth، ثم صادق على واحد منها باسمه:
/mcp auth docs-search
يفتح CLI المتصفح، ويُكمل التدفق، ويخزّن الرمز في ~/.gemini/mcp-oauth-tokens.json. تُجدَّد الرموز المنتهية تلقائيًا. وإذا لم ينشر الخادم تفاصيل OAuth الخاصة به، فأضف كتلة oauth بنفسك:
ليست كل الخوادم تستخدم OAuth. يوضع رمز bearer ثابت في headers، كما رأيت سابقًا. أما الخدمات على Google Cloud، فيقبل الحقل authProviderType القيمة google_credentials، إضافةً إلى service_account_impersonation مع targetServiceAccount. وبالنسبة للخوادم الواقعة خلف Identity-Aware Proxy، أضف targetAudience مع معرّف عميل OAuth. ويعمل المزوّد الافتراضي مع معظم الخوادم الأخرى، فاترك الحقل كما هو إلا إذا احتجت إلى أحد هذه الخيارات.
تحقّق من أن كل شيء يعمل
حرّر الملف، ثم شغّل /mcp reload. وإذا ما زال CLI يعرض الإعدادات القديمة بعد ذلك، فأعد تشغيل الجلسة.
التحقق عبر أوامر /mcp
الأمر
النتيجة
/mcp أو /mcp list
الخوادم، وحالة الاتصال، والأدوات
/mcp desc
القائمة نفسها مع أوصاف الأدوات
/mcp schema
الأوصاف مع مخطط الإدخال لكل أداة
/mcp auth <server>
يبدأ OAuth لخادم واحد
/mcp reload
يعيد الاتصال بكل الخوادم ويحدّث أدواتها
/mcp enable, /mcp disable
يشغّل خادمًا أو يوقفه للجلسة
خارج الجلسة، يعطيك gemini mcp list نظرة عامة على الاتصال نفسها من الشل.
كيف تظهر أسماء الأدوات
تعرض الإصدارات الحديثة أدوات MCP باسم مؤهّل بالكامل بصيغة mcp_<server>_<tool>. فالأداة search_issues على خادم اسمه issues تصبح mcp_issues_search_issues. وتصف مقالات أقدم بادئة server__tool، وتُستخدم عندما يعرض خادمان أداة بالاسم نفسه. وإذا رأيت أسلوبًا في درس وآخر على شاشتك، فمن المرجح أنك على إصدار مختلف.
يترتب على ذلك أمران عمليان. أولًا، سمِّ خوادمك بالشرطات، لا بالشرطات السفلية. يُقسَّم الاسم عند أول شرطة سفلية بعد mcp_، والشرطة السفلية داخل اسم الخادم قد تربك قواعد السياسات. ثانيًا، نادرًا ما تحتاج إلى الاسم الكامل في الأمر النصي. اطلب بلغة عادية، مثلًا:
Use the issues server to list open bugs labelled regression, newest first.
يعرض CLI الأداة التي ينوي استدعاءها ويطلب التأكيد، ما لم تضبط trust.
إصلاح الخوادم التي لا تتصل
ابدأ بالفحوصات البسيطة، فهي تحل معظم الحالات:
شغّل command وargs بالضبط في طرفية عادية. إن فشل هناك، فسيفشل داخل CLI.
تأكد أن cwd موجود وأن node أو npx أو python3 موجود في PATH.
ابدأ CLI باستخدام --debug واقرأ أخطاء الاتصال.
افحص stderr الخاص بالخادم بحثًا عن تتبّعات الأخطاء.
شغّل /mcp reload بعد كل تعديل، وأعد تشغيل CLI إذا بدت الإعدادات القديمة عالقة.
Disconnected في المجلدات غير الموثوقة
هذه الحالة توقع الناس فيها باستمرار. في مجلد لم تعتمده ثقةً، لا يتصل Gemini CLI بأي خادم MCP، ويتجاهل .gemini/settings.json الخاص بالمشروع تمامًا. يُقرأ ملف نطاق المستخدم، لكن خوادم المشروع لا تظهر ببساطة.
شغّل /permissions داخل CLI لاعتماد المجلد، أو أجب على مربع الثقة عند فتحه لأول مرة. يُحفظ الاختيار في ~/.gemini/trustedFolders.json. وفي التشغيلات بلا واجهة، تسرد الوثائق العلامة --skip-trust والمتغير GEMINI_CLI_TRUST_WORKSPACE=true.
المهلات والأعطال الصامتة
بعض الأعطال لا تعطي أي خطأ على الإطلاق:
لا توجد أدوات في القائمة: الخادم متصل لكنه لم يسجّل شيئًا، أو أن مخططات أدواته ليست JSON Schema صالحة. تحقّق من /mcp schema.
تتوقف استدعاءات الأدوات عن الاستجابة: المهلة الافتراضية عشر دقائق. اخفض timeout للخوادم البعيدة المتقلبة، أو ارفعها للمهام البطيئة مثل الاستعلامات الكبيرة.
أخطاء مصادقة بعد بدء نظيف: ابحث عن متغير غير مضبوط في env. لقد توسّع إلى سلسلة نصية فارغة.
أداة مفقودة من القائمة: تحقّق من includeTools وexcludeTools، وقائمة mcp.allowed في المستوى الأعلى.
💡 اختبار سريع للتأكد: أضف خادم stdio صغيرًا أولًا، واجعله متصلًا، ثم أضف الخوادم البعيدة. كل خادم جديد احتمال إضافي للفشل، لذا أضفها واحدًا تلو الآخر.
صِغ الإعدادات بمساعدة Gemini على Picasso IA
يمكنك استخدام نموذج لغوي لصياغة الأجزاء المملة من الإعدادات، وتستضيف Picasso IA عدة نماذج من Gemini يمكنك فتحها في المتصفح. إليك سير عمل يعمل جيدًا:
الصق قسم الإعداد من ملف README الخاص بخادم MCP، ثم أضف قيودك: نظام التشغيل، والنطاق، والمتغير البيئي الذي يحمل الرمز.
اطلب مخرجين: إدخال settings.json والأمر المكافئ gemini mcp add. واطلب من النموذج استخدام مراجع $VARIABLE بدلًا من الأسرار الحرفية.
تحقق من الإجابة مقابل جدول الحقول أعلاه. يجب أن يوجد واحد فقط من command أو url أو httpUrl، وكل اسم في includeTools يجب أن يطابق ما يطبعه /mcp desc.
الصق الإدخال في ملفك وشغّل /mcp reload.
💡 تعامل مع المسودة كمحاولة أولى. قد يخترع النموذج حقلًا يبدو صحيحًا. الجداول في هذا المقال والوثائق الرسمية هي مرجعك الموثوق.
أنشئ صورك الخاصة على Picasso IA
إعداد MCP جيد ليس سوى نصف سير عمل مطوّر منظم. والنصف الآخر هو المواد المحيطة به: لافتات README، ورسوم الدروس التعليمية، وبطاقات التواصل الاجتماعي، والصور الخاصة بالمقال الذي يشرح إعدادك.
تتيح لك Picasso IA توليد هذه الصور في دقائق قليلة. جرّب Seedream 4.5 للمشاهد الواقعية كالصور الفوتوغرافية التفصيلية، أو GPT Image 2 حين تحتاج إلى نص نظيف داخل الصورة، أو Nano Banana 2 Lite للمسودات السريعة. اكتب أمرًا نصيًا قصيرًا، وولّد عدة صور بديلة، واحتفظ بالصورة التي تناسب صفحتك.
اختر مشروعًا مفتوحًا لديك اليوم، واكتب أمرًا نصيًا واحدًا يصف لافتته، وانظر ما الذي سيعود. تصفّح كل النماذج المتاحة على picassoia.com/en/all-models، وابدأ بالنموذج الذي يطابق الشكل الذي تتخيله.