Install
brew install MikkoParkkola/tap/mcp-gateway # 1. install
mcp-gateway setup wizard --configure-client # 2. import existing servers + wire up clients
mcp-gateway serve # 3. runإذا ربطت عدة خوادم MCP وواجهات REST API بعميل ذكاء اصطناعي واحد، فستلاحظ سريعًا أن تعريفات الأدوات نفسها هي التي تملأ السياق. نهج MCP Gateway هو وضع ثنائي Rust واحد بين العميل وجميع أدواته: تُركَّب خلفيات مختلفة خلفه، ويرى الوكيل سطحًا وسيطًا مضغوطًا من 14 إلى 16 أداة بدل التعريف الكامل لكل خلفية. كلما زادت تعريفات الأدوات في السياق، قلّت الميزانية المتاحة للمهمة الفعلية؛ وتكثيفها في سطح ثابت صغير هو بالضبط المشكلة التي يحلها. قبل البدء، تأكد من مقدمة واحدة: يُوزَّع افتراضيًا بموجب ترخيص غير تجاري، فالاستخدام الشخصي وغير التجاري (بما في ذلك تشغيل البوابة الكاملة) مجاني، أما التشغيل التجاري فيتطلب ترخيصًا تجاريًا.
لمن هذا مناسب
- مناسب لمن ربط بالفعل عدة خوادم MCP وواجهات REST API أو يخطط لذلك ويريد أن يبقى حجم قائمة الأدوات مستقرًا: مهما رُكِّبت من خلفيات في الخلف، يواجه الوكيل مجموعة صغيرة ثابتة من الأدوات الوسيطة، لا مجموع تعريفات كل الخلفيات.
- مناسب لمن يستطيع تشغيل خدمة دائمة على جهازه: تعمل البوابة كخدمة HTTP محلية، ويتصل بها العملاء عبر نقطة نهاية محلية.
- غير مناسب للاستخدام المباشر في البيئات التجارية: التشغيل التجاري يتطلب ترخيصًا تجاريًا، وهذه مقدمة يجب حلّها قبل التبني؛ النواة MIT الصغيرة المكوّنة من كتل عامة فقط هي المتاحة بموجب ترخيص MIT.
- عندما تكون الخلفيات قليلة وقائمة الأدوات قصيرة أصلًا، تكون قيمة التجميع محدودة؛ ولا تقدم الأدلة بيانات مقارنة عن المكاسب الملموسة في السيناريوهات الصغيرة.
- قائمة العملاء المدعومة والنشر البعيد وطرق المصادقة لم ترد في الأدلة؛ وهي بنود غير مؤكدة، فلا تفترضها من عندك.
أول تجربة في 3 دقائق
- المقدمة: بيئة يتوفر فيها Homebrew. مدخل التثبيت الرسمي هو Homebrew tap، ولا تذكر الأدلة طرق تثبيت أخرى.
- نفّذ بالترتيب الأوامر الثلاثة للمسار الرسمي:
brew install MikkoParkkola/tap/mcp-gateway # 1. install
mcp-gateway setup wizard --configure-client # 2. import existing servers + wire up clients
mcp-gateway serve # 3. run
- يتولى setup wizard في الخطوة الثانية استيراد خوادمك الحالية وتوصيل العملاء. انتبه: هذه كتابة في الحالة المحلية؛ يعيد كتابة الإعداد المحلي للبوابة والعملاء، وهي ليست عملية قراءة فقط؛ أما الملفات التي يكتبها بالضبط وكيفية حفظها فلم تفصّلها الأدلة.
- بعد تشغيل الخطوة الثالثة، تعمل البوابة كخدمة HTTP محلية. وعلى جانب العميل، اتصل وفق مقتطف الإعداد الرسمي. يعلن المقتطف عن خدمة اسمها gateway من نوع http وتشير إلى المسار /mcp على المنفذ المحلي 39400:
{
"mcpServers": {
"gateway": {
"type": "http",
"url": "http://localhost:39400/mcp"
}
}
}
- إشارة النجاح: بعد اتصال العميل بـ http://localhost:39400/mcp تتكثف قائمة الأدوات في مجموعة صغيرة ثابتة؛ اطلب عندئذٍ gateway_search_tools مرة واحدة — يصفها الرسم بأنها للبحث في أدوات الخلفيات — فإن أعاد البحث أدوات الخلفيات التي ربطتها، فقد اكتمل الطريق من العميل إلى البوابة. لم تذكر الأدلة وجود readOnlyHint لهذه الأداة، فخاصية القراءة فقط غير مؤكدة؛ اجعل أول تجربة بحثًا فقط ولا تنفّذ إجراءات كتابة. عند هذه النقطة يحمّل الوكيل مجموعة صغيرة ثابتة من الأدوات الوسيطة، لا كل تعريفات الخلفيات.
حالات الاستخدام
- الحالة الأولى: تخفيف حِمل كومة أدوات متعددة الخوادم. الموقف: العميل مرتبط بالفعل بعدة خوادم MCP وتستهلك تعريفات كل خلفية جزءًا من السياق. الطريقة: سلّم خوادمك الحالية للمعالج ليستوردها، واحتفظ في العميل بـ http://localhost:39400/mcp وحدها كنقطة نهاية. المتوقع: يثبت سطح أدوات الوكيل عند نحو 14 إلى 16 أداة بدل مجموع تعريفات كل الخلفيات؛ وعندما تحتاج إلى قدرة معينة، حدّدها أولًا بالبحث عبر gateway_search_tools. معيار الحكم: هل عدد الأدوات الذي يعرضه العميل أقل بوضوح من مجموع أدوات الخلفيات التي ربطتها؟
- الحالة الثانية: ابحث ثم استدعِ أداة حقيقية مرة واحدة. الموقف: تريد تنفيذ قدرة يقدمها خلفية متصلة (خادم MCP أو واجهة REST API). الطريقة: حدّد أولًا الأداة الهدف عبر gateway_search_tools ثم استدعِها عبر gateway_invoke؛ فالاستخدام الموصوف رسميًا هو هاتان الأداتان الوسيطتان بالضبط: البحث ثم الاستدعاء. المتوقع: يُمرَّر النداء إلى الخلفية المقابلة فتُعيد نتيجتها؛ أما المخرجات الملموسة فتعتمد على الخلفيات التي ربطتها، ولا تتضمن الأدلة مخرجات نموذجية ثابتة. إن لم يجد البحث الأداة المتوقعة، فتأكد أولًا من استيراد تلك الخلفية عبر المعالج ثم أعد البحث.
حدود الاستخدام
- الترخيص والقيود: الاستخدام الشخصي وغير التجاري مجاني، بما في ذلك تشغيل البوابة الكاملة؛ والتشغيل التجاري يتطلب ترخيصًا تجاريًا؛ والنواة MIT الصغيرة المكوّنة من كتل عامة فقط هي المتاحة بموجب MIT. هذا البند يقرر هل يمكن الاستخدام وفي أي نطاق، فضعه قبل كل تقدير آخر.
- طبيعة القراءة/الكتابة والآثار الجانبية: البوابة نفسها خدمة محلية دائمة؛ والمعالج يكتب الإعداد المحلي؛ وgateway_invoke يقود أدوات الخلفية فعليًا، وتعتمد آثاره الجانبية على الخلفية المستدعاة، فتأكد قبل التنفيذ من طبيعة العملية المستهدفة ونقاط التأكيد الخاصة بها.
- الاعتماديات: التثبيت يعتمد على Homebrew؛ وربط الخوادم الحالية يتم عبر الاستيراد بواسطة المعالج.
- بنود غير مؤكدة: قائمة العملاء المدعومة، وصيغة الإعداد الملموسة لربط واجهات REST API، والنشر خارج localhost، وآليات المصادقة، وما إذا كانت كل أداة وسيطة تحمل readOnlyHint — كل ذلك لم تذكره الأدلة. كذلك لم يُذكر هل للبوابة نفسها تحكم في الوصول وكيف تسجّل السجلات. غياب الشرح لا يعني غياب الخطر؛ قبل التبني خذ الوثائق الحالية للمستودع الرسمي مرجعًا.