返回市场
超级网关

超级网关

作者:coding-alt6 星标更新:2025-03-19

项目介绍

SuperGateway 介绍

这是一个网关工具,将标准输入/输出(STDIO)转换为服务器发送事件(SSE)。它允许您基于STDio运行一个MCP(模型上下文协议)服务器,并通过SSE远程访问它。

功能

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

系统需求

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

构建与运行

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

命令行选项

  • --version: 显示版本号
  • --stdioMCP服务器命令以运行
  • --sseSSE URL连接地址
  • --port: (STDio → SSE)服务器监听端口 [默认:8000]
  • --baseUrlSSE客户端的基本URL从(std io → SSE)
  • --ssePath: (STDio → SSE) SSE订阅路径 [默认:"/sse"]
  • --messagePath: (STDio → SSE) SSE消息路径 [默认:"/message"]
  • --logLevel: 设置日志级别:"info" 或 "none" [默认:"info"]
  • --cors: 启用CORS [默认:false]
  • --healthEndpoint添加健康检查端点,多个端点用逗号分隔
  • --help: 显示帮助信息

使用示例

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'

注意事项

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