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

mcp-proxy

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

ربط MCPs stdio مع SSE/Streamable HTTP والعكس — أداة Python صغيرة تجعل البروتوكولات قابلة للتشغيل المتبادل.

sparfenyuk/mcp-proxy هي جسر نقل. وضعان: (1) عميل stdio يتصل بخادم MCP SSE/HTTP بعيد — يسمح لـ Claude Desktop بالتحدث مع خادم بعيد؛ (2) خادم SSE يغلف MCP stdio محلي — يعرضه عبر HTTP مع CORS والمصادقة وخوادم مسماة متعددة.

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

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

عرض مباشر

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

proxy.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "proxy": {
      "command": "uvx",
      "args": [
        "mcp-proxy"
      ],
      "_inferred": true
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "proxy": {
      "command": "uvx",
      "args": [
        "mcp-proxy"
      ],
      "_inferred": true
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "proxy": {
      "command": "uvx",
      "args": [
        "mcp-proxy"
      ],
      "_inferred": true
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "proxy": {
      "command": "uvx",
      "args": [
        "mcp-proxy"
      ],
      "_inferred": true
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "proxy",
      "command": "uvx",
      "args": [
        "mcp-proxy"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "proxy": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-proxy"
        ]
      }
    }
  }
}

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

claude mcp add proxy -- uvx mcp-proxy

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

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

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

كيفية استخدام خادم SSE MCP بعيد داخل Claude Desktop

👤 المطورون الذين يملكون بوابة MCP مستضافة على الفريق ⏱ ~10 min beginner

متى تستخدمه: فريقك يشغل بوابة على https://mcp.team.internal لكن Claude Desktop يدعم stdio فقط.

المتطلبات الأساسية
  • uv أو pipx — brew install uv
الخطوات
  1. تثبيت mcp-proxy
    شغّل: uv tool install mcp-proxy✓ تم النسخ
    → mcp-proxy على PATH
  2. تكوين Claude Desktop
    أضف إدخال MCP: command=mcp-proxy, args=['--headers','Authorization','Bearer $TOKEN','https://mcp.team.internal/sse'].✓ تم النسخ
    → Claude Desktop يتصل عند إعادة التشغيل
  3. تحقق
    في Claude، اسأل: ما الأدوات التي لديك؟✓ تم النسخ
    → الأدوات البعيدة مدرجة

النتيجة: خادم بعيد قابل للاستخدام من عملاء stdio فقط.

المزالق
  • عنوان المصادقة لم يتم التقاطه — استخدم بناء جملة --headers بدقة؛ بعض العملاء يشوهون استيفاء متغيرات البيئة — قم بتوسيع الرمز بنفسك
اجمعها مع: mcphub

كيفية الكشف عن MCP stdio محلي عبر HTTP للزملاء البعيدين

👤 المطورون الذين يشاركون أداة محلية مؤقتًا ⏱ ~15 min intermediate

متى تستخدمه: لقد أنشأت MCP stdio مخصص وزميل بعيد يريد تجربتها.

الخطوات
  1. شغّل الوكيل في وضع الاستقبال
    mcp-proxy --sse-host 0.0.0.0 --sse-port 3333 --named-server my-tool 'uvx my-tool-mcp'✓ تم النسخ
    → نقطة نهاية SSE في :3333/my-tool/sse
  2. أنشئ نفق
    استخدم ngrok أو cloudflared لكشف 3333 على عنوان URL عام.✓ تم النسخ
    → عنوان URL قابل للمشاركة
  3. يتصل الزميل
    يضيفون عنوان URL إلى عميلهم (عبر mcp-proxy أو مباشرة إذا كان عميلهم يدعم SSE).✓ تم النسخ
    → جلسة مشتركة تعمل

النتيجة: المشاركة المخصصة للأدوات المحلية.

المزالق
  • لا توجد مصادقة افتراضية — استخدم --bearer-token أو ضعه خلف Caddy basic auth

كيفية خدمة MCPs محلية متعددة من منفذ وكيل واحد

👤 العاملون في مختبرات المنزل ⏱ ~15 min intermediate

متى تستخدمه: تريد بوابة واحدة تخدم github وfilesystem و postgres MCPs.

الخطوات
  1. ابدأ بحجج --named-server متعددة
    mcp-proxy --sse-port 3333 --named-server gh 'uvx mcp-server-github' --named-server fs 'uvx mcp-server-filesystem ~/src'✓ تم النسخ
    → النقاط النهائية /gh/sse و /fs/sse
  2. قم بتوصيل كل واحد في عميلك
    أضف كل واحد كخادم منفصل في عميل MCP الخاص بك.✓ تم النسخ
    → تظهر الأدوات من كليهما

النتيجة: عملية واحدة، MCPs متعددة.

المزالق
  • الخوادم المسماة تشارك ميزانية موارد الوكيل — لا تضع MCPs الثقيلة في نفس الوكيل مع الخفيفة
اجمعها مع: mcphub

التركيبات

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

proxy + mcphub

استخدم mcp-proxy لكشف stdio MCPs التي يمكن لـ MCPHub تجميعها بعد ذلك عبر HTTP

ربط MCP stdio github المحلي الخاص بي بـ HTTP باستخدام mcp-proxy، ثم سجله في مجموعة MCPHub 'dev'.✓ تم النسخ
proxy + unla

استخدم بوابة Unla الموجهة للجمهور على رأس جسر stdio الأخير من mcp-proxy

اربط stdio MCPs باستخدام mcp-proxy وضع Unla في الأمام لـ OAuth + multi-tenancy.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
(proxy) stdio-to-sse remote_url, headers?, bearer? قم بتوصيل عميل stdio بخادم SSE بعيد free
(proxy) sse-to-stdio named_server spec اكشف عن MCP stdio عبر HTTP free

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

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

حصة API
لا شيء
الرموز لكل استدعاء
لا يوجد حمل زائد ملحوظ
التكلفة المالية
مجاني (MIT)
نصيحة
تخطّ الوكيل عندما يدعم عميلك البروتوكول الآخر بشكل أصلي — عدد أقل من الأجزاء المتحركة.

الأمان

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

الحد الأدنى من الصلاحيات: خروج الشبكة إلى عنوان URL البعيد (وضع الإرسال) ربط منفذ الاستقبال (وضع الاستقبال)
تخزين بيانات الاعتماد: Headers/tokens التي يتم تمريرها عبر حجج CLI أو env
نقل البيانات الخارجي: أيا كان ما يفعله MCP المربوط؛ الوكيل نفسه شفاف
لا تمنح أبدًا: لا تكشف عن وضع الاستقبال على 0.0.0.0 بدون مصادقة لا تسجل الرموز في سجل shell — استخدم env vars

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

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

Connection closed immediately

مسار عنوان URL البعيد خاطئ — عادةً ما تنتهي نقاط نهاية SSE بـ /sse.

تحقق: curl -N <url>
CORS error in browser client

شغّل mcp-proxy باستخدام --allow-origin أو ضعه خلف reverse proxy مع headers CORS.

401 even with --bearer-token

الخادم البعيد يتوقع الرمز على header مختلف (على سبيل المثال، X-API-Key). استخدم --headers للتخصيص.

SSE drops after 60s

مهلة idle timeout لموازن التحميل. ارفعها أو استخدم Streamable HTTP.

البدائل

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

البديلمتى تستخدمهاالمقايضة
MCPHubتحتاج إلى تجميع خادم متعدد + توجيه، وليس فقط جسرأثقل — واجهة المستخدم وقاعدة البيانات و OAuth مجمعة معًا
Unlaتريد تحويل REST-to-MCP + بوابةمساحة مشكلة مختلفة
supergatewayتفضل جسر JavaScript stdio-to-SSEاعتماد Node

المزيد

الموارد

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

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

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