Envoy AI Gateway 现已支持 Model Context Protocol
我们很高兴地宣布,Envoy AI Gateway 的下一个版本将正式支持 Model Context Protocol(简称 MCP),让 Envoy AI Gateway(EAIGW)成为 AI 流量的通用入口。
Envoy AI Gateway 是 Bloomberg 与 Tetrate 合作的成果,旨在满足企业级 AI 工作负载的生产需求,结合了大型企业在真实生产环境中的经验与创新。 EAIGW 基于久经验证的 Envoy Proxy 数据平面构建,作为 Envoy Gateway 的 AI 扩展,已被全球数千家企业用于关键任务流量。 目前 EAIGW 已支持统一的 LLM 接入、成本与配额控制、凭证管理、智能路由、弹性机制以及完善的可观测性。
此次新增的 MCP 支持,将这些能力进一步扩展到 Agent 与外部工具通信 的层面,让 EAIGW 在企业级 AI 部署中更加灵活、强大。 想了解更多关于合作与设计愿景的细节,可参考 Bloomberg 合作公告、他们的官方发布报道,以及之前的项目公告。
为什么 MCP 对 AI 网关很重要
MCP 正在迅速成为行业标准,用于让 AI Agent 能够安全、灵活地访问外部工具和数据源。 随着 AI 系统从单体模型逐渐走向 “Agent 架构”,如何构建安全、可观测、策略驱动的 AI 与企业系统之间的通信路径,变得前所未有的重要。
将 MCP 原生集成到 Envoy AI Gateway 中,意味着:
- 无缝互通:AI Agent、工具和上下文提供方可以直接通信,无论它们来自云端 LLM 还是企业内部服务。
- 统一的安全与治理:网关可为所有通过 MCP 的请求提供细粒度的认证、授权和可观测性策略。
- 更快的开发速度:借助原生 MCP 支持,团队无需编写额外代码,即可在现有 Envoy 基础设施上启用最新的 Agent 式 AI 流程。
首次实现的主要特性
初始版本重点在于对最新 MCP 规范的完整实现,涵盖全部功能,而不仅仅是工具调用。
| 功能 | 说明 |
|---|---|
| 流式 HTTP 传输 | 完整支持 MCP 的流式 HTTP 传输,符合 2025 年 6 月 MCP 规范。 支持基于持久连接的有状态会话与多段 JSON-RPC 消息传输。 |
| OAuth 授权 | 原生支持 OAuth 授权流程,确保 AI Agent 与服务间的安全交互。 同时兼容旧版授权规范,保证与现有 Agent 的兼容性。 |
| MCP 服务复用、工具路由与过滤 | 根据策略将调用与通知分发至正确的 MCP 服务。 可动态聚合、过滤多个 MCP 服务的消息流,为 Agent 提供统一、策略化的访问接口。 |
| 上游认证 | 内置上游认证机制,可安全连接外部 MCP 服务,支持基于 Envoy Gateway 的凭证注入与校验。 |
| 完整 MCP 规范覆盖 | 完全兼容 2025 年 6 月 MCP 规范,支持工具调用、通知、资源、提示及双向通信。 提供可靠的会话与流管理,包括重连逻辑(如 SSE 的 Last-Event-ID)。 |
| 无缝开发与生产体验 | 支持本地独立运行模式,只需一条命令即可启动所有 MCP 功能。 配置可直接复用到生产环境,与 Kubernetes 完全兼容。 |
| 真实验证 | 已通过完整协议测试,并在 GitHub 与 Goose 等生态中验证可用性。 |
实现原理
MCP 的集成远不止是“数据转发”。 我们充分利用了 Envoy 的架构优势,实现了一个轻量级的 MCP Proxy,用于会话管理、流复用,并在状态化的 JSON-RPC 协议与 Envoy 扩展机制之间建立桥梁。
核心设计思路包括:
- 保持架构简洁:无需在现有 Envoy AI Gateway 结构中增加额外组件或复杂性。
- 复用 Envoy 网络栈:利用 Envoy 成熟的连接管理、负载均衡、熔断、限流与可观测能力。
- 快速迭代:MCP Proxy 采用轻量级 Go 实现,以跟进规范更新,同时仍依赖 Envoy 提供底层网络能力。
更多设计与架构细节可参考 MCP 实现的设计文档与 PR。
快速开始
你可以通过独立模式快速体验 MCP 功能,无需复杂配置。 只需准备好 Agent 使用的 MCP 服务配置文件即可。
使用已有的 MCP servers 文件
以下示例展示了如何让 Envoy AI Gateway 代理 GitHub 和 Context7 的 MCP 服务。
首先在 mcp-servers.json 文件中定义:
{
"mcpServers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
},
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/readonly",
"headers": {
"Authorization": "Bearer ${GITHUB_ACCESS_TOKEN}"
}
}
}
}
然后启动 Envoy AI Gateway:
如果还未安装 CLI,请参阅 安装指南
$ aigw run --mcp-config mcp-servers.json
启动后,Envoy AI Gateway 将在本地运行并通过 http://localhost:1975/mcp 提供服务。 你可以直接将 Agent(如 Claude、Goose 等)指向该 URL 作为可流式的 HTTP MCP 服务。
你也可以在配置文件中添加工具过滤规则,只暴露特定工具(默认暴露全部):
{
"mcpServers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
},
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/readonly",
"headers": {
"Authorization": "Bearer ${GITHUB_ACCESS_TOKEN}"
},
"tools": ["get_issue", "list_issues"]
}
}
}
使用新的 MCPRoute API
MCPRoute API 提供了更细粒度的配置方式,可在独立模式与 Kubernetes 中使用。 下面的示例展示了如何通过 MCPRoute 同时配置:
- *MCP 服务复用
- OAuth 认证
- 工具过滤
- 上游认证
apiVersion: aigateway.envoyproxy.io/v1alpha1
kind: MCPRoute
metadata:
name: mcp-route
namespace: default
spec:
parentRefs:
- name: aigw-run
kind: Gateway
group: gateway.networking.k8s.io
backendRefs:
- name: context7
kind: Backend
group: gateway.envoyproxy.io
path: "/mcp"
- name: github
kind: Backend
group: gateway.envoyproxy.io
path: "/mcp/readonly" # 使用只读端点
toolSelector:
includeRegex:
- .*_pull_requests?.*
- .*_issues?.*
securityPolicy:
apiKey:
secretRef:
name: github-access-token
securityPolicy:
oauth:
issuer: "https://auth-server.example.com"
protectedResourceMetadata:
resource: "http://localhost:1975/mcp"
scopesSupported:
- "profile"
- "email"
该配置既可本地运行,也可直接部署到 Kubernetes 集群中。 你可以通过以下命令快速尝试:
$ aigw run mcp-route.yaml
然后将 Agent 指向 http://localhost:1975/mcp。 验证无误后即可直接应用到生产环境。
展望未来
这只是开始。 随着 MCP 和 Agent 架构不断发展,我们将持续改进 Envoy AI Gateway,让它始终保持 通用、可靠、策略驱动且具备出色互操作性 的特性。
我们非常自豪能为 MCP 协议的落地贡献力量,也期待与社区一起继续推进 Envoy AI Gateway 的演进,为更多场景带来创新能力。
如果你已在 GenAI 或 Agent 系统中开始使用 MCP,欢迎加入我们的社区会议或提交 issue,与我们一起共建未来!