/ الدليل / الملعب / mcp-proxy
● مجتمع tbxark ⚡ فوري

mcp-proxy

بواسطة tbxark · tbxark/mcp-proxy

جمّع عدة خوادم MCP خلف نقطة نهاية HTTP واحدة — قلل تكوين العميل من 20 إدخال إلى 1، شارك MCPs عبر فريقك.

يوفر mcp-proxy من tbxark واجهة لأي عدد من خوادم MCP العليا (stdio و SSE و HTTP قابل للبث) ويكشفها عبر نقطة نهاية HTTP واحدة. مفيد عندما تريد عنوان URL واحد يمكن لفريقك بأكمله (أو عملاء AI متعددة) الإشارة إليه، بدلاً من إعادة تكوين كل خادم على كل جهاز.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

proxy-2.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "proxy-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/tbxark/mcp-proxy"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "proxy-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/tbxark/mcp-proxy"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "proxy-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/tbxark/mcp-proxy"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "proxy-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/tbxark/mcp-proxy"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "proxy-2",
      "command": "TODO",
      "args": [
        "See README: https://github.com/tbxark/mcp-proxy"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "proxy-2": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/tbxark/mcp-proxy"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add proxy-2 -- TODO 'See README: https://github.com/tbxark/mcp-proxy'

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: mcp-proxy

كيفية تشغيل بوابة MCP مشتركة لفريقك

👤 مهندسو Platform/DevEx التعبانين من تدريب كل عضو في الفريق على 10 MCPs ⏱ ~30 min intermediate

متى تستخدمه: وجدت 5+ MCPs يجب على الجميع في الفريق استخدامها، وشرح إعداد stdio لكل موظف جديد يستهلك أسبوعك.

المتطلبات الأساسية
  • VM أو مضيف حاويات يمكن الوصول إليه من كل عضو في الفريق — أي صندوق EC2/Fly/Hetzner صغير؛ 512MB RAM كافٍ
  • Docker مثبت على هذا المضيف — curl -fsSL https://get.docker.com | sh
الخطوات
  1. اكتب config.json يسرد كل MCP علوي يحتاجه الفريق
    صيغ مسودة config.json لـ mcp-proxy تجمّع github و sentry و postgres (نسخة للقراءة فقط) والنظام الملفات (محدود إلى /data). أعط كل واحد مساحة أسماء فريدة.✓ تم النسخ
    → إعداد صحيح مع إدخالات خوادم بمساحات أسماء
  2. شغّل mcp-proxy في Docker على المضيف المشترك
    اكتب أمر docker run لتشغيل ghcr.io/tbxark/mcp-proxy على المنفذ 9090 مع تركيب config.json، مع restart=always و healthcheck.✓ تم النسخ
    → الحاوية تبقى مشغلة؛ /health يعيد 200
  3. أعط زملاءك عنوان URL واحد للصق في كل عميل
    اكتب مقطع إدراج مكون من 5 أسطر يلصقه الزملاء في إعداد Claude Desktop للإشارة إلى عنوان proxy URL المشترك.✓ تم النسخ
    → أي زميل يحصل على جميع الأدوات العليا في خطوة واحدة

النتيجة: الموظفون الجدد يصلون إلى التوازي الكامل لـ MCP في دقيقتين بلصق عنوان URL واحد؛ الترقيات تحدث في مكان واحد.

المزالق
  • وضع الوكيل على الإنترنت العام بدون مصادقة — أنهِ TLS والمصادقة عند وكيل عكسي (Caddy/nginx/Cloudflare) في الأمام — mcp-proxy لا يمتلك طبقة مصادقة
  • تصادم أسماء الأدوات العليا (خادمان يكشفان كليهما get_issue) — استخدم مساحات الأسماء حتى يرى العملاء github.get_issue مقابل gitlab.get_issue
اجمعها مع: github · sentry · postgres

كشف MCP stdio محلي إلى IDE بعيد عبر HTTP

👤 المطورون الذين يستخدمون IDE سحابية لا تستطيع عمل عمليات stdio ⏱ ~15 min beginner

متى تستخدمه: العميل الخاص بك يتحدث فقط HTTP/SSE لكن MCP الذي تحتاجه هو stdio فقط.

الخطوات
  1. شغّل mcp-proxy محليًا لفك خادم stdio
    توليد إعداد mcp-proxy يلف npx -y @modelcontextprotocol/server-filesystem /tmp كنقطة نهاية SSE على :9090.✓ تم النسخ
    → curl http://localhost:9090 يعيد بيانات وصفية MCP
  2. نفق المنفذ إلى عنوان URL عام
    أعطني بسطر واحد cloudflared أو ngrok لكشف :9090.✓ تم النسخ
    → عنوان HTTPS عام
  3. وجّه IDE البعيد إلى عنوان URL الـ SSE
    اكتب إدخال إعداد IDE لاستهلاك هذا كخادم SSE MCP.✓ تم النسخ
    → تظهر الأدوات في IDE البعيد

النتيجة: MCP stdio فقط يمكن الوصول إليه من أي عميل قادر على HTTP.

المزالق
  • الأنفاق العامة مفتوحة للعالم أثناء التشغيل — استخدم cloudflared مع سياسات Access أو أضف رأس secret مشترك
اجمعها مع: filesystem

ترقية MCP للفريق بأكمله دون لمس إعدادات العميل

👤 قادة الفريق الذين يطرحون ترقيات إصدار MCP ⏱ ~10 min beginner

متى تستخدمه: يسقط إصدار إصلاح أمني لـ MCP علوي وتحتاج الجميع عليه اليوم.

الخطوات
  1. ارفع الإصدار في إعداد mcp-proxy المركزي
    حدّث إعداد mcp-proxy لتثبيت github-mcp-server إلى v0.4.2 وأعد التحميل.✓ تم النسخ
    → الإصدار الجديد مباشر على الوكيل
  2. تحقق من أن الأدوات لا تزال تستجيب
    اضغط على list_tools الخاص بالوكيل وأكد أن أدوات github.* موجودة مع إصدار الخادم الجديد.✓ تم النسخ
    → قائمة الأدوات لم تتغير من منظور المستهلك

النتيجة: ترقية صامتة — يلتقط الزملاء الإصدار الجديد على استدعاء الأداة التالي، لا توجد حاجة لإعادة تشغيل العميل.

المزالق
  • أعاد الإصدار الجديد اسم أداة وكسر prompts المصب — اقرأ سجل التغييرات العلوي قبل التثبيت؛ احتفظ بالإصدار السابق مكوناً بإيجاز للتداخل

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

proxy-2 + github + sentry

ضع كليهما خلف وكيل واحد حتى لا يتنقل الزملاء بين رمزين في إعدادين

هيّئ mcp-proxy ليواجه خوادم github و sentry MCP، محملاً بيانات اعتماد من ملف .env واحد يقرأه المضيف.✓ تم النسخ
proxy-2 + agent

قارن مع 1mcp-app/agent — كلاهما يجمع، مقايضات مختلفة (Go مقابل Node و OAuth مقابل لا شيء)

اضبط mcp-proxy جنباً إلى جنب مع 1mcp-app/agent على نفس المضيف وقِس زمن استجابة استدعاء الأداة من خلال كل واحد.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
list_tools (none) جانب العميل — يتعامل الوكيل تلقائياً عند التصافح MCP free
call_tool name: str (optionally namespaced), args: object أي استدعاء أداة — الوكيل يوجه حسب الاسم/مساحة الأسماء 1 upstream call

التكلفة والحدود

تكلفة التشغيل

حصة API
لا توجد حصة خاصة؛ يمرر حدود خادم علوي
الرموز لكل استدعاء
تكلفة إضافية ضئيلة تتجاوز الاستجابة العليا
التكلفة المالية
مجاني، مرخص بموجب MIT
نصيحة
شغّل على صندوق صغير — 512MB RAM يتعامل مع عشرات الخوادم العليا. التكلفة الحقيقية هي رسوم API العليا.

الأمان

الصلاحيات والأسرار ونطاق الأثر

تخزين بيانات الاعتماد: بيانات اعتماد علوية في متغيرات env للمضيف أو config.json؛ أبقِ config.json خارج git
نقل البيانات الخارجي: يرسل الوكيل إلى أي خوادم علوية تقوم بتكوينها؛ لا توجد قياسات عن بعد إلى tbxark
لا تمنح أبدًا: كشف الوكيل للإنترنت العام بدون طبقة مصادقة في الأمام

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

Upstream server failed to start

تحقق من أن مسار الأمر في config.json مطلق أو على PATH الحاوية. استخدم docker exec وشغّل يدويًا.

تحقق: docker logs <proxy-container>
Tool call returns 'tool not found' but list_tools shows it

عدم تطابق مساحة الأسماء — مع تشغيل مساحات الأسماء، يجب على العملاء استدعاء server.tool_name وليس tool_name.

تحقق: curl http://proxy:9090/tools | jq
SSE connection drops every 30s

انتظار الوكيل العكسي قصير جداً. ارفعه إلى 5 دقائق أو عطّل المخزن المؤقت لمسارات /sse.

تحقق: سجل nginx/Caddy يظهر انتهاء صلاحية العميل
Docker container exits immediately

config JSON غير صحيح. تحقق من الصحة باستخدام jq قبل البدء.

تحقق: docker logs يظهر خطأ تحليل JSON

البدائل

mcp-proxy مقابل البدائل

البديلمتى تستخدمهاالمقايضة
1mcp-app/agentتريد OAuth 2.1 ومصادقة قائمة على النطاق مدمجةبصمة أثقل و Node-based مقابل Go
Hyprmcp Jetskiتحتاج إلى تحليلات ورؤية على مستوى prompt أعلى التجميعيتطلب Kubernetes/PostgreSQL — أكثر من اللازم للفرق الصغيرة
إعدادات جانب العميل المباشرةالفريق 1-3 أشخاص ونادراً ما تغير الخوادمصفر بنية تحتية، لكن كل تغيير يتطلب N تحديثات

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills