SuperGateway 介绍

SuperGateway 介绍

site icon
2025.03.19 1
Java协议转换工具远程访问工具开发效率
SuperGateway 是一个将标准输入/输出(stdio)转换为服务器发送事件(SSE)的网关工具。它允许用户运行基于 stdio 的 MCP(Model Context Protocol)服务器,并通过 SSE 进行远程访问。该工具支持多个客户端同时连接,自动识别和转发 JSON 格式的输出,并提供了健康检查端点和可配置的日志级别等功能。
View on GitHub

Overview

基本能力

产品定位

SuperGateway 是一个协议转换工具,主要用于将基于 stdio 的 MCP 服务器转换为 SSE 服务,便于远程访问和多个客户端的连接。

核心功能

  • 将基于 stdio 的 MCP 服务器转换为 SSE 服务
  • 支持多个客户端同时连接
  • 自动识别和转发 JSON 格式的输出
  • 支持 CORS
  • 支持健康检查端点
  • 可配置的日志级别

适用场景

  • 需要将本地 MCP 服务器暴露为远程 SSE 服务的场景
  • 需要多个客户端同时访问同一个 MCP 服务器的场景
  • 需要实时监控和交互的 MCP 服务器应用

工具列表

  • java -jar supergateway-1.0.0.jar: 主程序,用于启动 SuperGateway 服务

常见问题解答

  1. 进程输出必须是 JSON 格式才会被转发到 SSE 客户端
  2. 每个 SSE 客户端会自动获得一个唯一的 sessionId
  3. 所有消息都必须是有效的 JSON 格式
  4. 发送消息时必须使用从 SSE 连接获取的正确 sessionId
  5. MCP 服务器必须支持通过标准输入/输出进行通信

使用教程

使用依赖

  • Java 17 或更高版本
  • Maven 3.6 或更高版本

安装教程

  1. 构建项目:
cd src/java
mvn clean package
  1. 运行应用:
java -jar target/supergateway-1.0.0.jar [选项]

调试方式

运行以下命令以启动服务并进行调试:

java -jar target/supergateway-1.0.0.jar \
  --stdio "java -jar your-mcp-server.jar" \
  --port 8000 \
  --baseUrl http://localhost:8000 \
  --ssePath /sse \
  --messagePath /message

API 接口

1. SSE 连接

  • URL: GET /sse
  • 说明:建立 SSE 连接以接收进程输出
  • 响应:服务器会返回一个 SSE 事件,包含消息发送端点

2. 发送消息

  • URL: POST /message?sessionId=<session_id>
  • Content-Type: application/json
  • 说明:向进程发送 JSON 格式的消息
  • 响应:
  • 200: 消息发送成功
  • 400: 无效的 JSON 消息
  • 503: 会话不存在或进程未就绪

3. 健康检查

  • URL: GET /health (如果配置了健康检查端点)
  • 说明:检查服务是否正常运行
  • 响应:返回 "ok"

许可证

该项目遵循 None 开源许可条款。