返回市场
MCP网关测试版

MCP网关测试版

作者:david-martin2 星标更新:2025-09-01

项目介绍

MCP Helper PoC

使用Go编写的Envoy外部处理器MCP Helper

运行

docker-compose up --build

现在,一个可流式传输的HTTP MCP服务器将在以下地址可用:http://localhost:8080/

使用MCP Inspector进行测试

# 启动Inspector
DANGEROUSLY_OMIT_AUTH=true npx @modelcontextprotocol/inspector
  1. 打开 http://localhost:6274/?transport=streamable-http&serverUrl=http://localhost:8080#resources
  2. 点击 连接
  3. 点击 列出工具

你会看到来自两个后端MCP服务器(server1和server2)的联邦工具,自动添加前缀以避免冲突:

alt text

架构概述

关键组件:

  • 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 → 后端集群,默认 → 辅助)

流程:客户端 → Envoy → 外部处理器(提取工具,移除前缀,设置路由头)→ 路由到后端或辅助 → 响应(会话反向映射)→ 客户端