mcp-proxy 是一個由開發者 sparfenyuk 建立的開源專案。從本質上講,它是一個極其重要的基礎設施級別工具,在模型內容協定 (Model Context Protocol, MCP) 的生態系統中扮演著「萬能轉接頭」或「協定轉換器」的關鍵角色。
此專案的核心目標是解決一個非常具體但普遍存在的問題:不同的 MCP 客戶端(如 AI 助理應用)和 MCP 伺服器(工具提供方)之間可能使用不相容的通訊協定。mcp-proxy 正是為了彌合這道鴻溝而生。
核心價值與兩種主要運作模式
mcp-proxy 的價值在於它能夠在兩種最主要的 MCP 傳輸協定之間進行雙向轉換:
這個工具提供了兩種核心的代理模式:
模式一:stdio 轉 SSE/StreamableHTTP (正向代理)
stdio 與本地工具溝通。然而,現在有許多強大的 MCP 伺服器(如 Cloudflare 或 AntV 的圖表伺服器)是部署在雲端的,它們只提供 SSE 或 StreamableHTTP 的網路接口。mcp-proxy 在此扮演了「翻譯官」的角色。你可以在本地 AI 助理的設定中,將工具的指令指向 mcp-proxy。如此一來,AI 助理會透過 stdio 與 mcp-proxy 對話,而 mcp-proxy 則會將這些請求轉換為 SSE 格式,發送給遠端的網路伺服器,再將結果傳回。AI 助理 (stdio) <--> mcp-proxy <--> 遠端網路伺服器 (SSE)模式二:SSE 轉 stdio (反向代理)
stdio 模式 MCP 伺服器(例如 markdownify-mcp),但你希望能夠從一個遠端的、基於網頁的 AI 客戶端來呼叫這個本地工具。mcp-proxy 可以啟動一個網路伺服器,監聽一個指定的連接埠(例如 8080),並將所有收到的 SSE 網路請求,轉換為 stdio 格式,傳遞給你本地的 MCP 伺服器來處理。遠端網路客戶端 (SSE) <--> mcp-proxy <--> 本地 MCP 伺服器 (stdio)關鍵特性:命名伺服器 (Named Servers)
除了單純的 1 對 1 轉換,mcp-proxy 最強大的功能之一是作為一個中央集線器 (Hub)。你可以透過設定檔,讓一個 mcp-proxy 實例同時管理和啟動多個本地的 stdio 伺服器。每個伺服器都會被賦予一個唯一的名稱,並透過不同的 URL 路徑(例如 /servers/fetch/、/servers/github/)對外提供服務。這使得你可以將所有本地工具整合到一個單一的網路入口點,極大地簡化了管理。
總結來說,mcp-proxy 是 MCP 生態中不可或缺的「黏合劑」。它打破了不同工具和客戶端之間的通訊壁壘,極大地增強了整個生態系統的互通性 (Interoperability) 和靈活性 (Flexibility),無論是想讓本地應用「上雲」,還是讓雲端應用「落地」,mcp-proxy 都提供了優雅而強大的解決方案。