Supergateway教程

Supergateway 是一款專為 MCP(Model Context Protocol)服務器設計的遠程調試與集成工具,通過
SSE(Server-Sent Events)或 WebSocket(WS)協議實現基于 stdio 的服務器與客戶端的高效通信。

Supergateway 只需一個命令即可通過 SSE(服務器發送事件)WebSockets(WS) 運行基于 MCP stdio 的服務器 。當您的 MCP 服務器僅支持 stdio 時,此功能對于遠程訪問、調試或連接客戶端非常有用。

由 Supermachine (托管 MCP)、 Superinterface 和 Supercorp 支持。

前置條件

  1. 本次使用的是CentOS Stream 9
  2. 安裝node 24
## 安裝nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
## 更新環境變量
source ~/.bashrc
## nvm安裝node24
nvm install 24
## nvm使用node24
nvm use 24

Supergateway安裝與使用

通過 npx 運行 Supergateway:

npx -y supergateway --stdio "uvx mcp-server-git"
  • --stdio "command" :通過 stdio 運行 MCP 服務器的命令
  • --sse "https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app" :要連接的 SSE URL(SSE→stdio 模式)
  • --streamableHttp "https://mcp-server.example.com/mcp" :要連接的可流式 HTTP URL(StreamableHttp→stdio 模式)
  • --outputTransport stdio | sse | ws | streamableHttp :輸出 MCP 傳輸(默認值: sse 帶有 --stdiostdio 帶有 --sse--streamableHttp
  • --port 8000 :監聽端口(stdio→SSE 或 stdio→WS 模式,默認值: 8000
  • --baseUrl "http://localhost:8000" :SSE 或 WS 客戶端的基本 URL(stdio→SSE 模式;可選)
  • --ssePath "/sse" :SSE 訂閱的路徑(stdio→SSE 模式,默認值: /sse
  • --messagePath "/message" :消息路徑(stdio→SSE 或 stdio→WS 模式,默認值: /message
  • --streamableHttpPath "/mcp" :Streamable HTTP 的路徑(stdio→Streamable HTTP 模式,默認值: /mcp
  • --stateful :以狀態模式運行 stdio→Streamable HTTP
  • --sessionTimeout 60000 :會話超時(以毫秒為單位)(僅限有狀態 stdio→Streamable HTTP 模式)
  • --header "x-user-id: 123" :添加一個或多個標頭(stdio→SSE、SSE→stdio 或 Streamable HTTP→stdio 模式;可多次使用)
  • --oauth2Bearer "some-access-token" :使用提供的 Bearer 令牌添加 Authorization 標頭
  • --logLevel debug | info | none :控制日志記錄級別(默認值: info )。使用 debug 可顯示更詳細的日志,使用 none 可隱藏所有日志。
  • --cors :啟用 CORS(stdio→SSE 或 stdio→WS 模式)。使用不帶任何值的 --cors 參數表示允許所有來源,或提供一個或多個允許的來源(例如, --cors "http://example.com"--cors "/example\\.com$/" 進行正則匹配)。
  • --healthEndpoint /healthz :注冊一個或多個以 "ok" 響應的端點(stdio→SSE 或 stdio→WS 模式;可多次使用)

標準輸入輸出 → SSE

將 MCP stdio 服務器公開為 SSE 服務器:

npx -y supergateway \--stdio "npx -y @modelcontextprotocol/server-filesystem ./my-folder" \--port 8000 --baseUrl http://localhost:8000 \--ssePath /sse --messagePath /message
  • 訂閱事件GET http://localhost:8000/sse
  • 發送消息POST http://localhost:8000/message

出現如下,說明啟動成功

[root@VM-12-16-centos my-folder]# npx -y supergateway --stdio "npx -y @modelcontextprotocol/server-filesystem /root/my-folder" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message
[supergateway] Starting...
[supergateway] Supergateway is supported by Supermachine (hosted MCPs) - https://supermachine.ai
[supergateway]   - outputTransport: sse
[supergateway]   - Headers: (none)
[supergateway]   - port: 8000
[supergateway]   - stdio: npx -y @modelcontextprotocol/server-filesystem /root/my-folder
[supergateway]   - baseUrl: http://localhost:8000
[supergateway]   - ssePath: /sse
[supergateway]   - messagePath: /message
[supergateway]   - CORS: disabled
[supergateway]   - Health endpoints: (none)
[supergateway] Listening on port 8000
[supergateway] SSE endpoint: http://localhost:8000/sse
[supergateway] POST messages: http://localhost:8000/message
[supergateway] Child stderr: Secure MCP Filesystem Server running on stdio

如果是遠程騰訊云服務器,需要先開放防火墻,

sudo firewall-cmd --permanent --add-port=8000/tcp
sudo firewall-cmd --reload

外層也要添加
在這里插入圖片描述

后啟動(需要添加host 0.0.0.0):

npx -y supergateway \--stdio "npx -y @modelcontextprotocol/server-filesystem /root/my-folder" \--port 8000 \--host 0.0.0.0 \--baseUrl http://騰訊云服務器公網ip:8000 \--ssePath /sse \--messagePath /message

返回如下:

[root@VM-12-16-centos my-folder]# npx -y supergateway \--stdio "npx -y @modelcontextprotocol/server-filesystem /root/my-folder" \--port 8000 \--host 0.0.0.0 \--baseUrl http://騰訊云服務器公網ip:8000 \--ssePath /sse \--messagePath /message
[supergateway] Starting...
[supergateway] Supergateway is supported by Supermachine (hosted MCPs) - https://supermachine.ai
[supergateway]   - outputTransport: sse
[supergateway]   - Headers: (none)
[supergateway]   - port: 8000
[supergateway]   - stdio: npx -y @modelcontextprotocol/server-filesystem /root/my-folder
[supergateway]   - baseUrl: http://騰訊云服務器公網ip:8000
[supergateway]   - ssePath: /sse
[supergateway]   - messagePath: /message
[supergateway]   - CORS: disabled
[supergateway]   - Health endpoints: (none)
[supergateway] Listening on port 8000
[supergateway] SSE endpoint: http://localhost:8000/sse
[supergateway] POST messages: http://localhost:8000/message
[supergateway] Child stderr: Secure MCP Filesystem Server running on stdio

使用本地windows遠程連接測試,如下,服務沒問題

C:\Users\longz>curl http://騰訊云服務器公網ip:8000/sse
event: endpoint
data: /message?sessionId=e3819502-97bc-4c8b-a15c-f31179c2fe00

我們使用mcp客戶端trae連接
在這里插入圖片描述

{"mcpServers": {"remote-filesystem": {"url": "http://騰訊云公網ip:8000/sse","headers": {}}}
}

如下顯示成功
在這里插入圖片描述

補充備注: 上述方法是比較通用,不限騰訊云服務器。其余均可。 騰訊云服務器本身也提供了封裝mcp服務的模板,提供支持一鍵云端部署 MCP
Server

在這里插入圖片描述

SSE → stdio

連接到遠程 SSE 服務器并通過 stdio 在本地公開:

npx -y supergateway --sse "https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"

適用于將遠程 SSE MCP 服務器集成到本地命令行環境中。

發送請求時,你還可以傳遞 headers。這對于身份驗證很有用:

npx -y supergateway \--sse "https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app" \--oauth2Bearer "some-access-token" \--header "X-My-Header: another-header-value"

可流式傳輸的 HTTP → stdio

連接到遠程 Streamable HTTP 服務器并通過 stdio 在本地公開:

npx -y supergateway --streamableHttp "https://mcp-server.example.com/mcp"

此模式適用于連接到使用較新的 Streamable HTTP 傳輸協議的 MCP 服務器。與 SSE 模式類似,您也可以傳遞以下標頭進行身份驗證:

npx -y supergateway \--streamableHttp "https://mcp-server.example.com/mcp" \--oauth2Bearer "some-access-token" \--header "X-My-Header: another-header-value"

stdio → 可流式傳輸的 HTTP

將 MCP stdio 服務器公開為可流式傳輸的 HTTP 服務器。

無狀態模式

npx -y supergateway \--stdio "npx -y @modelcontextprotocol/server-filesystem ./my-folder" \--outputTransport streamableHttp \--port 8000

狀態模式

npx -y supergateway \--stdio "npx -y @modelcontextprotocol/server-filesystem ./my-folder" \--outputTransport streamableHttp --stateful \--sessionTimeout 60000 --port 8000

Streamable HTTP 端點默認為 http://localhost:8000/mcp (可通過 --streamableHttpPath 配置)。

標準輸入輸出 → WS

將 MCP stdio 服務器公開為 WebSocket 服務器:

npx -y supergateway \--stdio "npx -y @modelcontextprotocol/server-filesystem ./my-folder" \--port 8000 --outputTransport ws --messagePath /message
  • WebSocket 端點ws://localhost:8000/message

MCP Inspector 示例(stdio → SSE 模式)

  1. 運行超級網關
npx -y supergateway --port 8000 \--stdio "npx -y @modelcontextprotocol/server-filesystem /Users/MyName/Desktop"
  1. 使用 MCP 檢查器
npx @modelcontextprotocol/inspector

您現在可以通過 Supergateway 列出工具、資源或執行 MCP 操作。

與 ngrok 一起使用

使用 ngrok 公開分享您的本地 MCP 服務器:

npx -y supergateway --port 8000 --stdio "npx -y @modelcontextprotocol/server-filesystem ."# In another terminal:
ngrok http 8000

ngrok 提供了一個用于遠程訪問的公共 URL。

MCP 服務器的 URL 類似于: https://1234-567-890-12-456.ngrok-free.app/sse

使用 Docker 運行

基于 Docker 的工作流程避免了本地 Node.js 的設置。可在此處獲取隨時可用的 Docker 鏡像: supercorp/supergateway。GHCR 上也有: ghcr.io/supercorp-ai/supergateway

使用官方鏡像

docker run -it --rm -p 8000:8000 supercorp/supergateway \--stdio "npx -y @modelcontextprotocol/server-filesystem /" \--port 8000

Docker 會自動拉取鏡像。MCP 服務器在容器的根目錄 ( / ) 中運行。您可以根據需要掛載主機目錄。

具有依賴關系的圖像

提取這些預先構建的 Supergateway 圖像以滿足您可能需要的各種依賴項。

  • 紫外線 超級網關+uv/uvx,這樣你就可以直接調用 uvx

    docker run -it --rm -p 8000:8000 supercorp/supergateway:uvx \--stdio "uvx mcp-server-fetch"
    
  • 德諾 Supergateway + Deno,準備運行基于 Deno 的 MCP 服務器:

    docker run -it --rm -p 8000:8000 supercorp/supergateway:deno \--stdio "deno run -A jsr:@omedia/mcp-server-drupal --drupal-url https://your-drupal-server.com"
    

自己構建圖像

使用提供的 Dockerfile:

docker build -f docker/base.Dockerfile -t supergateway .docker run -it --rm -p 8000:8000 supergateway --stdio "npx -y @modelcontextprotocol/server-filesystem ."

與 Claude Desktop 一起使用(SSE → stdio 模式)

Claude Desktop 可以使用 Supergateway 的 SSE→stdio 模式。

基于 NPX 的 MCP 服務器示例

{"mcpServers": {"supermachineExampleNpx": {"command": "npx","args": ["-y","supergateway","--sse","https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"]}}
}

基于 Docker 的 MCP 服務器示例

{"mcpServers": {"supermachineExampleDocker": {"command": "docker","args": ["run","-i","--rm","supercorp/supergateway","--sse","https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"]}}
}

與 Cursor 一起使用(SSE → stdio 模式)

Cursor 還可以通過 SSE→stdio 模式與 Supergateway 集成。配置方式與 Claude Desktop 類似。

基于 NPX 的 MCP 服務器游標示例

{"mcpServers": {"cursorExampleNpx": {"command": "npx","args": ["-y","supergateway","--sse","https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"]}}
}

基于 Docker 的 Cursor MCP 服務器示例

{"mcpServers": {"cursorExampleDocker": {"command": "docker","args": ["run","-i","--rm","supercorp/supergateway","--sse","https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"]}}
}

注意: 盡管設置支持通過 --header 標志發送標頭,但如果您需要傳遞授權標頭(通常包含空格,例如 "Bearer 123" ),則必須使用 --oauth2Bearer 標志,因為已知的 Cursor 錯誤導致命令行參數中有空格。

為什么選擇 MCP?

模型上下文協議 (MCP) 標準化了 AI 工具的交互。Supergateway 將 MCP 標準輸入輸出 (stdio) 服務器轉換為 SSE 或 WS 服務,從而簡化了與基于 Web 或遠程客戶端的集成和調試。

高級配置

超級網關強調模塊化:

  • 自動管理 JSON-RPC 版本。
  • 盡可能重新傳輸包元數據。
  • stdio→SSE 或 stdio→WS 模式通過標準輸出記錄;SSE→stdio 模式通過 stderr 記錄。

測試

Supergateway 使用 Node Test Runner 進行測試。

tests/helpers/mock-mcp-server.js 腳本提供了本地 MCP 服務器,因此所有測試都無需網絡訪問即可運行。

SE)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91937.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91937.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91937.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

203.移除鏈表元素 707.設計鏈表 206.反轉鏈表

203.移除鏈表元素 Python鏈表節點定義: class ListNode:def __init__(self, val, nextNone):self.val valself.next next 性能分析 鏈表的特性和數組的特性進行一個對比,如圖所示: 203. 移除鏈表元素 這道題就是給大家一個鏈表&#x…

人工智能之數學基礎:利用全概率公式如何將復雜事件轉為簡單事件

本文重點 全概率公式是概率論中的核心工具,用于計算復雜事件的概率。其核心思想是將復雜事件分解為若干互斥且窮盡的簡單事件,通過計算各簡單事件的概率及其條件概率,最終求得目標事件的概率。 全概率公式 全概率公式就是將復雜事件簡單化,定義如下: 如果隨機事件A1,…

飛算JavaAI深度解析:從入門到對比

目錄 一、飛算JavaAI是什么 二、如何注冊和開始使用 三、使用體驗:它能帶來什么 四、與其他大模型的對比分析 五、總結與展望 隨著人工智能技術的飛速發展,大模型在軟件開發領域的應用越來越廣泛。其中,代碼生成工具作為提升開發效率的利…

Flutter各大主流狀態管理框架技術選型分析及具體使用步驟

技術選型決策樹 #mermaid-svg-m5gUL7Cpx4rYV2BQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-m5gUL7Cpx4rYV2BQ .error-icon{fill:#552222;}#mermaid-svg-m5gUL7Cpx4rYV2BQ .error-text{fill:#552222;stroke:#552…

Redis類型之String

1.Redis中的string注意本文以及之后講的redis的類型但是指的value的類型,所有的key都是stringRedis中的字符串,直接就是按照二進制數據的方式存儲的,不會做任何的編碼轉換,這里相對于mysql就比較好(個人感覺&#xff0…

[激光原理與應用-156]:光學器件 - 激光器為什么會出現多余的能量,哪些地方會出現多余能量?

在激光器運行過程中,多余能量的出現是不可避免的物理現象,其根源在于能量轉換與傳輸過程中的非理想特性。以下從能量來源、產生位置及具體機制三方面進行詳細說明:一、多余能量的主要來源泵浦源效率限制泵浦源(如激光二極管、閃光…

Arxiv-Daily

Daily Paper Report - 2025-07-24 12:53 Today’s Recommended Papers 1. Multi-modal Multi-task Pre-training for Improved Point Cloud Understanding Authors: Liwen Liu, Weidong Yang, Lipeng Ma, Ben Fei Deep-Dive Summary: 多模態多任務預訓練以改善點云理解 預…

如何對云環境或者超融合系統進行性能測試?

最近幾個月,公司開啟了新的產品計劃,準備來做一個國產超融合一體機(其實個人覺得現在入行已經晚了太多了,市場基本沒有多少了) POC功能測試過完,但是感覺不到什么優勢,由于芯片架構采用的是arm架…

【web自動化測試】實戰

web自動化測試就是對界面的測試1、編寫測試用例2、參考測試用例,創建自動化測試項目,編寫自動化測試腳本論壇登錄頁:ForumLoginTest.py論壇首頁:ForumListTest.py論壇詳情頁:ForumDetailTest.py論壇編輯頁:…

在Maxscript中隨機化對象變換、顏色和材質

只需幾行Maxscript,即可為3ds Max場景帶來更多活力和變化! 在本文中,您將學習如何快速隨機化選定對象的位置、旋轉、線顏色和材質。 非常適合在ArchViz、動態圖形和產品可視化項目中創建更自然、更少機械的布局。 為什么要使用隨機化腳本? 1.快速為場景添加自然隨機性 2.…

分類數據集 - 交通事故場景分類數據集下載

數據集介紹:交通事故場景分類數據集,真實交通場景高質量圖片數據;適用實際項目應用:公共場所監控場景下是否發生交通事故檢測項目,以及作為監控場景通用交通檢測數據集場景數據的補充;數據集類別&#xff1…

內網公網詳解,及無公網IP內網穿透給外網直接遠程連接訪問的具體實現方法步驟

一、什么是內網、外網1、內網IP(局域網IP)是指在私有網絡或局域網內部使用的IP地址,無法直接從互聯網訪問,需通過NAT(網絡地址轉換)技術實現對外通信。內網IP(Intranet IP)是專為局域…

Redis協議數據遷移方式

主從復制(REPLICAOF/SLAVEOF):目標實例掛為從節點,通過復制協議全量增量同步后切換為主。模擬從節點工具:模擬復制協議同步數據,常見兩種實現:(1) 拉取全量和增量命令流,在本地生成 …

英語中日期與時間縮寫

日常使用中,時間縮寫無處不在。掌握這些縮寫不僅能提高溝通效率,還能讓您的英語表達更加地道和專業。本文將系統性地介紹英語中各類時間相關縮寫,包括月份、星期、時刻表達等,并提供實用記憶技巧和應用場景。 一、時間縮寫基礎概…

【Spring Cloud】-- RestTeplate實現遠程調用

實現遠程調用有很多種方式,這里我們使用RestTemplate來進行實現。 REST :表現層資源狀態轉移(資源在網絡中以某種表現形式進行狀態轉移),是一種軟件架構風格,狀態轉移:數據狀態的變化。 表現層&…

2025年信創政策解讀:如何應對國產化替代挑戰?(附禪道/飛書多維表格/華為云DevCloud實戰指南)

本文核心產品:??禪道(國產項目管理工具)、飛書多維表格(協同辦公工具)、華為云DevCloud(云端研發平臺)?? ——在“自主可控”成為國家戰略關鍵詞的2025年,國產化替代已從“可選動…

如何讓 RAG 檢索更高效?——大模型召回策略全解

如何讓 RAG 檢索更高效?——大模型召回策略全解 一、引子:RAG 的“強”靠得住嗎? RAG(Retrieval-Augmented Generation)作為一種將文檔檢索與大語言模型結合的框架,已成為企業落地知識問答、搜索增強、智能…

Bilateral Reference for High-Resolution Dichotomous Image Segmentation

代碼來源 https://github.com/ZhengPeng7/BiRefNet 模塊作用 DIS 是一種旨在對高分辨率圖像中的目標物體進行精確分割的技術,尤其適用于具有復雜細微結構的物體,例如細長的邊緣或微小細節。傳統方法在處理這類任務時往往難以捕捉細微特征或恢復高分辨…

RAGFlow 0.20.0 : Multi-Agent Deep Research

Deep Research:Agent 時代的核心能力2025 年被稱為 Agent 落地元年,在解鎖的各類場景中,最有代表性之一,就是 Deep Research 或者以它為基座的各類應用。為什么這么講? 因為通過 Agentic RAG 及其配套的反思機制&#…

CMakeLists.txt學習

一:#是行注釋 ,[[ 塊注釋 ]]0.cmake_minimum_required: 指定使用的cmake的最低版本1.project() 定義工程名稱并可以指定工程的版本,工程描述,web主頁地址,支持的語言(默認情況支持所有語言)2.…