Model Context Protocol 概览
本文档简要介绍了 API Gateway 中的 Model Context Protocol (MCP) 支持。
API Gateway 可以充当远程 MCP 服务器,让您无需重写后端服务,即可向 AI 代理和 LLM 公开现有的 REST API。
背景
Model Context Protocol (MCP) 是一种开放标准,可让您直接基于现有基础设施构建 AI 智能体。MCP 提供了一种标准方法,让 AI 模型能够发现和调用您环境中的功能,而无需为每个工具或 API 编写自定义集成代码。
当配置为 MCP 服务器时,API Gateway 会充当代理。它会将从代理系统发送的标准 MCP JSON-RPC 协议消息转换为针对现有后端的标准 HTTP REST 请求。
支持的功能
在公开预览版阶段,API Gateway 支持以下 MCP 功能:
- 远程 MCP 服务器:API 网关充当远程服务器,通过 HTTP (POST) 接收 MCP 请求。
- OpenAPI 3.x 集成:MCP 配置直接通过自定义扩展程序从 OpenAPI 3.x 规范派生而来。
- 支持的 MCP 生命周期方法:
initialize:确定协议版本和功能。notifications/initialized:确认握手。tools/list:允许客户端发现可用的工具及其架构。tools/call:允许客户端使用参数调用工具。
限制
API Gateway 中的 MCP 支持存在以下限制:
- 不支持资源 (
resources/*) 和提示 (prompts/*)。 - 不支持 stdio 传输。
- 不支持 OpenAPI 2.0。
- 不支持流式或长时间运行的工具调用。
- 模型路由互斥:您无法在同一 API 配置中同时启用 MCP 和模型路由。如果启用了
x-google-api-management.mcp,则无法使用x-google-model-router。
如需查看技术限制的完整列表,请参阅 OpenAPI 3.x 功能限制。
使用场景
- 将现有 REST API 作为 MCP 工具公开:将现有 API 转换为可用于 AI 的工具,而无需更改后端代码。
- 按操作选择工具:明确选择向代理公开哪些 API 路径和方法。
- 保护工具界面:将现有的 API Gateway 安全政策(例如 API 密钥或 OAuth)应用于 MCP 端点。
请求流程
MCP 请求的规范路径为 <basepath>/mcp,其中 <basepath> 派生自网关的网址或 x-google-endpoint 配置。
下图显示了 MCP tools/call 请求的请求流程:
- MCP 客户端(例如 AI 智能体)向网关的 MCP 端点(例如
POST /mcp或POST /v1/mcp,如果使用版本前缀)发送 JSON-RPC 请求。 - 网关验证请求并检查身份验证。
- 网关会检查载荷,以确定正在调用哪个工具。
- 网关会根据 API 配置中定义的映射,将 MCP 载荷转换为标准 HTTP 请求(路径、参数、正文)。
- 网关将请求转发到后端服务。
- 后端会返回标准 HTTP 响应。
- 网关将 HTTP 响应转换回 MCP JSON-RPC 响应,并将其返回给客户端。
通过 API Hub 和 Agent Registry 进行发现
如果您将网关与 API Hub 集成,则启用 MCP 的网关会作为 MCP 服务器发布到 API Hub,并附带额外的 MCP 特定元数据,同时还会自动显示在 Agent Registry 中。
对于未启用 MCP 的网关,系统会发布标准 API 元数据。只有启用了 MCP 的网关才会在 API Hub 中显示这些额外的 MCP 配置。
无需单独的注册步骤。然后,代理可以通过任一目录发现服务器及其工具。
如需查询 Agent Registry,请在项目中启用其 API:
gcloud services enable agentregistry.googleapis.com