/ 目錄 / 演練場 / mcp-proxy
● 社群 sparfenyuk ⚡ 即開即用

mcp-proxy

作者 sparfenyuk · sparfenyuk/mcp-proxy

連接 stdio MCPs 與 SSE/Streamable HTTP 相互轉換 — 一個小巧的 Python 工具,讓傳輸層互相協作。

sparfenyuk/mcp-proxy 是一個傳輸橋接工具。兩種模式:(1) stdio 客戶端連接到遠端 SSE/HTTP MCP — 讓 Claude Desktop 能與遠端伺服器通話;(2) SSE 伺服器包裝本地 stdio MCP — 透過 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 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

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

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "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

如何在 Claude Desktop 內使用遠端 SSE MCP 伺服器

👤 具備團隊代管 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 的客戶端可使用遠端伺服器。

注意事項
  • 認證 header 未被識別 — 完全按照 --headers 語法使用;某些客戶端會破壞環境變數插值 — 自己展開 token
搭配使用: mcphub

如何將本地 stdio MCP 透過 HTTP 暴露給遠端同事

👤 分享本地工具的開發者 ⏱ ~15 min intermediate

何時使用: 你構建了自訂 stdio MCP,遠端同事想試試。

步驟
  1. 以入站模式執行 proxy
    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 基本認證後面

如何從一個 proxy 埠口提供多個本地 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。

注意事項
  • 命名伺服器共享 proxy 的資源預算 — 不要將重量級 MCPs 與輕量級的放在同一個 proxy 中
搭配使用: mcphub

組合

與其他 MCP 搭配,撬動十倍槓桿

proxy + mcphub

使用 mcp-proxy 暴露 stdio MCPs,MCPHub 可以透過 HTTP 聚合

用 mcp-proxy 將我的本地 github stdio MCP 橋接到 HTTP,然後在 MCPHub 的 'dev' 群組中註冊。✓ 已複製
proxy + unla

在 mcp-proxy 的最後一哩 stdio 橋接上使用 Unla 的公開閘道

用 mcp-proxy 橋接 stdio MCPs,並在前面放置 Unla 以實現 OAuth + 多租戶。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
(proxy) stdio-to-sse remote_url, headers?, bearer? 連接 stdio 客戶端到遠端 SSE 伺服器 free
(proxy) sse-to-stdio named_server spec 透過 HTTP 暴露 stdio MCP free

成本與限制

運行它的成本

API 配額
每次呼叫 Token 數
無測量的開銷
費用
免費 (MIT)
提示
當你的客戶端原生支援另一種傳輸時,跳過 proxy — 動態部分更少。

安全

權限、密鑰、影響範圍

最小權限: 網路出站到遠端 URL(出站模式) 入站埠口綁定(入站模式)
憑證儲存: 透過 CLI 引數或環境變數傳遞 Header/token
資料出站: 取決於橋接的 MCP 做什麼;proxy 本身是透明的
切勿授予: 不要在沒有認證的情況下在 0.0.0.0 上暴露入站模式 不要在 shell 歷史中記錄 token — 使用環境變數

故障排查

常見錯誤與修復

連接立即關閉

遠端 URL 路徑錯誤 — SSE 端點通常以 /sse 結尾。

驗證: curl -N <url>
瀏覽器客戶端出現 CORS 錯誤

使用 --allow-origin 啟動 mcp-proxy 或將其放在具有 CORS header 的反向 proxy 後面。

即使有 --bearer-token 也是 401

遠端預期 token 在另一個 header 上(例如 X-API-Key)。使用 --headers 來自訂。

SSE 在 60 秒後斷開

負載平衡器空閒超時。提高它或使用 Streamable HTTP。

替代方案

mcp-proxy 對比其他方案

替代方案何時用它替代權衡
MCPHub你需要多伺服器聚合 + 路由,不只是一個橋接更重 — UI、DB、OAuth 都整合在一起
Unla你想要 REST-to-MCP 轉換 + 閘道不同的問題領域
supergateway你偏好 JavaScript stdio-to-SSE 橋接Node 依賴

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills