使用Go编写的Envoy外部处理器MCP Helper。
docker-compose up --build
现在,一个可流式传输的HTTP MCP服务器将在以下地址可用:http://localhost:8080/
# 启动Inspector
DANGEROUSLY_OMIT_AUTH=true npx @modelcontextprotocol/inspector
你会看到来自两个后端MCP服务器(server1和server2)的联邦工具,自动添加前缀以避免冲突:

关键组件:
main.go - handleInitialization()创建后端会话,aggregateTools()从服务器获取并添加前缀到工具ext-proc/ 目录处理请求/响应处理:
request.go - extractMCPToolName()从JSON主体中提取工具名称,stripServerPrefix()移除前缀,设置x-mcp-server路由头,映射会话IDresponse.go - extractHelperSessionFromBackend()反向映射后端会话ID到辅助会话envoy.yaml - 根据x-mcp-server头进行路由(server1/server2 → 后端集群,默认 → 辅助)流程:客户端 → Envoy → 外部处理器(提取工具,移除前缀,设置路由头)→ 路由到后端或辅助 → 响应(会话反向映射)→ 客户端