使用说明
mcp-sse大桥
一个小型的Go桥,通过stdio将MCP JSON-RPC代理到传统的SSE后端。它保持
Codex风格的客户端通过短路响应 initialize,将流量转发到
上行SSE端点,并在会话失效时重新连接。
特性
- 标准JSON-RPC(jsonl或
Content-Length)传统SSE翻译。 - 上游会话到期时自动重新连接。
- 上游尽最大努力
initialize通过响应跟踪进行转发。
需求
- 转到1.25+(参见
go.mod). - 可访问的SSE后端URL。
构建
go build -o mcp-sse-bridge .
跑
REMOTE_SSE_URL="https://host/mcp-servers/example" \
REMOTE_BEARER_TOKEN="..." \
./mcp-sse-bridge
配置
必修的:
REMOTE_SSE_URL:发出以下信号的SSE端点endpoint和message事件。
可选:
REMOTE_BEARER_TOKEN:上游身份验证的承载令牌。UPSTREAM_TIMEOUT:JSON-RPC响应等待(默认值:120秒)。UPSTREAM_INIT_TIMEOUT:等待上游initialize(默认值:8秒)。FORWARD_INITIALIZE:是否转发客户端initialize上游(默认值:false)。RECONNECT_POST_DELAY_MS:重新连接后重试前的延迟(默认值:300)。ONE_SHOT_TOOLS:运行每个tools/call使用新的SSE会话(默认值:true)。ONE_SHOT_MAX_RETRIES:单次调用的最大尝试次数(默认值:3)。LOCAL_TOOLS_LIST:提供本地硬编码tools/list响应(默认值:false)。
备注
- 网桥记录到stderr并将JSON-RPC发送到stdout。
- 将交换机重新连接到新的SSE流,并重新发送上游初始化。
- 随着
LOCAL_TOOLS_LIST=false,tools/list被转发到上游。
仓库的规划
main.go:所有桥接逻辑。go.mod:模块定义。