MCP助手PoC
MCP助手与Go Envoy外部处理器.
跑
docker-compose up --build可流式传输的HTTP MCP服务器现在可以在以下位置使用:http://localhost:8080/
使用MCP检查员进行测试
# Start the inspector
DANGEROUSLY_OMIT_AUTH=true npx @modelcontextprotocol/inspector- 打开http://localhost:6274/?transport=streamable-http&serverUrl=http://localhost:8080#resources
- 点击 连接
- 点击 列出工具
您将看到来自后端MCP服务器(服务器1和服务器2)的联合工具,它们会自动添加前缀以避免冲突:
架构概述
关键部件:
- MCP初始化/工具列表:
main.go-handleInitialization()创建后端会话,aggregateTools()从服务器获取和前缀工具 - 外部处理器:
ext-proc/目录处理请求/响应处理:
- request.go - extractMCPToolName() 从JSON正文中提取工具名称, stripServerPrefix() 删除前缀、设置 x-mcp-server 路由标头,映射会话ID - response.go - extractHelperSessionFromBackend() 反向将后端会话ID映射到辅助会话
- 布线规则:
envoy.yaml-路线基于x-mcp-server头球server1/server2→ 后端集群,默认→ 助手)
流动:客户→ 特使→ Ext Proc(提取工具、去除前缀、设置路由标头)→ 到后端或助手的路由→ 响应(会话反向映射)→ 客户端
