详细介绍
Supergateway 是一个用于将基于标准输入输出的 MCP 服务器转换为通过 SSE 或 WebSocket 访问的服务的工具。它简化了远程调试和集成流程,支持多种协议转换和灵活配置,适用于本地服务器远程暴露、远程服务本地集成等多种场景。
核心功能
Supergateway 提供了多种核心功能,使其成为 MCP 服务集成和调试的理想工具:
- 协议转换:支持在 stdio、SSE 和 WebSocket 之间灵活转换通信协议。
- 远程访问:通过 SSE 或 WebSocket 暴露本地 stdio 服务器,实现远程访问。
- 本地集成:将远程 SSE 服务转换为本地 stdio 接口,便于命令行工具集成。
- 灵活配置:支持自定义端口、路径、头部信息和 CORS 设置。
- Docker 支持:提供官方 Docker 镜像,便于容器化部署。
安装方法
Supergateway 可以通过 npx 直接运行,无需单独安装。您也可以选择通过 npm 全局安装。
npx -y supergatewaynpm install -g supergateway使用方法
Supergateway 提供了多种使用方式,支持本地 stdio 服务器的远程暴露,以及远程 SSE 服务的本地集成。
npx -y supergateway --stdio "uvx mcp-server-git"npx -y supergateway --sse "https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"使用示例
以下是几个典型的使用场景和示例:
npx -y supergateway --stdio "npx -y @modelcontextprotocol/server-filesystem ./my-folder" --port 8000该命令将本地文件系统作为 MCP 服务器通过 SSE 暴露出来,可以通过 http://localhost:8000/sse 订阅事件,通过 http://localhost:8000/message 发送消息。
npx -y supergateway --sse "https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"该命令将远程 SSE 服务器转换为本地 stdio 接口,便于命令行工具集成。
npx -y supergateway --port 8000 --stdio "npx -y @modelcontextprotocol/server-filesystem ."
ngrok http 8000该命令结合 ngrok 将本地 MCP 服务器公开到互联网,通过 ngrok 提供的公共 URL 可用。
配置说明
Supergateway 提供了丰富的配置选项,支持自定义端口、路径、头部信息等。
const superGateway = new Server({
input: process.stdin,
output: process.stdout,
onError: (error) => console.error('Super Gateway 错误:', error),
});您还可以通过命令行参数进行配置,例如:
--port:设置服务监听的端口号(默认 8000)。--outputTransport:指定输出传输协议(stdio | sse | ws,默认 sse)。--header:添加自定义 HTTP 头。
适用场景
Supergateway 适用于以下场景:
- 需要远程访问本地 MCP 服务器。
- 调试 MCP 服务。
- 将仅支持 stdio 的服务器连接到 Web 客户端。
- 集成到 Web 应用或远程调试工具中。
注意事项
在使用 Supergateway 时,需要注意以下几点:
- 需要 Node.js 环境运行(除非使用 Docker)。
- 高级配置可能需要一定的技术知识。
- SSE 协议在某些网络环境下可能受限。
Supergateway 通过灵活的协议转换和配置选项,为 MCP 服务的远程访问和集成提供了强大支持,是开发和调试过程中的实用工具。