sparfenyuk/mcp-proxy

A bridge between Streamable HTTP and stdio MCP transports

解決的問題

mcp-proxy 允許使用者在 Model Context Protocol (MCP) 的不同伺服器傳輸協定之間切換。它特別解決了客戶端與伺服器使用不同通訊方式時的相容性問題,例如當客戶端僅支援 stdio,卻需要連接到使用 SSE(Server-Sent Events)或 StreamableHTTP 的遠端伺服器時。

工作原理

此工具主要以兩種模式運作:

  1. stdio 到 SSE/StreamableHTTP:作為本地橋接。客戶端(如 Claude Desktop)透過 stdio 與代理通訊,代理將這些請求透過 SSE 或 StreamableHTTP 轉發至遠端 MCP 伺服器。
  2. SSE 到 stdio:作為伺服器運作。代理開啟一個網路埠,監聽來自遠端 LLM 客戶端的 SSE 請求,然後啟動一個本地的 stdio 基礎 MCP 伺服器來處理這些請求。

它也支援「命名伺服器」功能,允許單一代理實例根據 URL 路徑管理並路由請求至多個不同的 stdio 伺服器。

適用對象

需要連接遠端伺服器或將本地工具暴露給遠端客戶端的 MCP 相容 LLM 客戶端開發者與使用者,特別適用於客戶端或伺服器的原生傳輸支援有限的情況。

主要亮點

  • 雙向傳輸切換:同時支援 stdio → SSE/StreamableHTTP 與 SSE → stdio。
  • 命名伺服器路由:可在不同 URL 路徑下(例如 /servers/fetch/sse)主機多個 stdio 伺服器。
  • 認證支援:內建 OAuth2(用戶端 ID、密鑰、令牌 URL)與自訂 HTTP 標頭選項,用於遠端連線。
  • 彈性部署:可透過 PyPI、GitHub 或多平台 Docker 容器取得。
  • CORS 設定:在 SSE 伺服器模式下,可指定允許的來源與暴露的標頭。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • Dispatch