简介
模型上下文协议 (MCP) 是一种新兴标准,用于通过感知会话的接口连接 AI 智能体与 LLM 后端。虽然许多 MCP 服务器实现基于 stdio 供本地使用,但生产环境通常需要基于 HTTP 或 SSE 的 MCP 通信。这引入了可靠性、安全性和可扩展性方面的挑战,而通过在 MCP 服务器前部署 API 网关可以有效解决这些问题。
本文将介绍 API 网关如何通过提供流量管理、可观测性、身份认证以及对流式传输协议的无缝支持来增强 MCP 服务器。我们将重点探讨架构、用例以及使用 Apache APISIX 的插件示例。
什么是 MCP 服务器?
概述
MCP 允许 AI 智能体通过结构化交互与 LLM 保持具备上下文的会话。MCP 服务器具备以下特点:
- 维护每个会话的记忆
- 支持结构化的工具调用
- 通过 HTTP/SSE 或
stdio进行通信 - 返回流式响应或感知上下文的回复
基于 stdio 的通信虽然适合本地智能体,但无法在网络中进行扩展。在云原生环境中,HTTP 和 SSE 成为了首选协议。
为什么要在 MCP 服务器前使用 API 网关?
没有网关时的常见挑战
- 没有用于保护访问的身份认证层
- 无法执行限流或配额控制
- 缺乏可观测性(日志、指标、链路追踪)
- 没有重试或降级回退策略
- 难以在标准基础设施上暴露 SSE (Server-Sent Events)
API 网关的优势
- 流量路由:根据智能体 ID、路径或会话路由流量
- 安全性:应用 API 密钥、JWT 或 OIDC 认证
- 限流:控制请求/会话的频率或字节/Token 吞吐量
- 流式传输支持:保留 SSE 以实现实时响应
- 弹性与容错:失败重试、熔断、降级回退到备用 MCP 服务器
- 可观测性:通过内置插件实现日志、指标和分布式链路追踪
架构概述
API 网关 + MCP 服务器
1sequenceDiagram
2 participant Agent
3 participant API Gateway
4 participant MCP Server
5 Agent->>API Gateway: POST /v1/mcp/session
6 API Gateway->>API Gateway: AuthN/AuthZ, rate limit
7 API Gateway->>MCP Server: Forward request
8 MCP Server-->>API Gateway: Streamed response (SSE)
9 API Gateway-->>Agent: Stream response这种设置确保了会话路由、Token 配额检查和响应的流式传输,而不会给 MCP 服务器的实现带来额外负担。
具有重试机制的多租户 MCP 访问
1sequenceDiagram
2 participant Agent
3 participant API Gateway
4 participant MCP-Primary
5 participant MCP-Backup
6 Agent->>API Gateway: POST /v1/mcp/session
7 API Gateway->>MCP-Primary: Forward request
8 MCP-Primary-->>API Gateway: 503 Service Unavailable
9 API Gateway->>MCP-Backup: Retry request
10 MCP-Backup-->>API Gateway: Success (stream)
11 API Gateway-->>Agent: Response streamed由于 API 网关将 MCP 服务器视为上游服务,因此健康检查、重试逻辑和加权负载均衡等现有功能都可以原生应用于 MCP 服务器。
最佳实践
1. 启用支持 SSE 的代理
确保保留 Transfer-Encoding: chunked 或 SSE 请求头。避免缓冲整个响应体。
2. 使用基于租户的限流
使用 JWT 声明或 API 密钥为每个用户或智能体强制执行使用配额。
3. 认证智能体
使用 OIDC 或 mTLS 认证与 SSO 提供商集成。
4. 应用重试和降级回退逻辑
通过重试或故障转移到备用 MCP 实例来处理上游 5xx 错误。
5. 增加可观测性
使用 skywalking、zipkin 等插件以及访问日志,来追踪和监控智能体的交互。
总结
随着 MCP 成为 LLM 智能体的基础,在生产环境中部署它需要的不仅仅是一个能用的服务器——它还需要可靠性、安全性和可扩展性。像 Apache APISIX 这样的 API 网关通过提供开箱即用的身份认证、SSE 流式传输、流量控制和可观测性来增强 MCP 服务器。
通过在 MCP 服务器前部署 API 网关,你可以获得企业级和多智能体系统中 AI 应用所必需的运行稳定性和细粒度的流量治理能力。
