Google Cloud API Gateway 推出 MCP 支持,可将现有 REST API 直接暴露为智能体工具
Turn your REST APIs into MCP tools with Google Cloud API Gateway
Google Cloud API Gateway 在 Public Preview 中可充当远程 MCP 服务器,无需单独搭建 MCP 服务器,即可把已有 REST API 暴露为智能体可调用的工具。
原文说明了通过注解 OpenAPI 规格让网关直接充当远程 MCP 服务器的做法,并给出配置示例、安全注意事项和当前限制。
2026年9月24日
大多数企业能力都隐藏在 REST API 之后,而 agent 无法看到它们。要让某个 API 如今能被 agent 调用,团队通常需要搭建并运维一个独立的 MCP 服务器,重新实现其网关已经处理的路由、身份验证和配额逻辑。Model Context Protocol (MCP) 已成为 agent 发现和调用工具的标准方式,而 Agent Development Kit (ADK) 和 Gemini Enterprise 等框架原生支持它。
Google Cloud API Gateway 现在填补了这一空白。在 Public Preview 中,API Gateway 可以充当远程 MCP 服务器:为你已经部署的 OpenAPI 规范添加注解,部署它,你现有的 REST 操作即可作为 agent 就绪的 MCP 工具使用——无需构建、托管或维护单独的服务器。
API Gateway 是 Google Cloud 网关产品线中的轻量级入口。如果你在 Cloud Run 上有一个服务,并希望其 API 在几分钟内得到保护、管理并暴露给 agent,这就是快速路径。如需完整的企业级 API 和 MCP 平台——生命周期管理、高级流量策略、变现——请使用 Apigee。要管控你的 agent 对外调用什么,包括像这样的 MCP 服务器,请使用 Agent Gateway。Model routing 为你提供用于出站 LLM 调用的单一稳定端点,是 AI 流量另一方向的配套能力。
工作原理
API Gateway 在单一端点上接受标准 MCP JSON-RPC 请求,将每个 tools/call 转码为对应的 REST 请求,应用你现有的策略,并将响应转换回来。由于转码后的请求与普通 REST 调用无法区分,你已为该操作配置的 JWT 或 API 密钥身份验证、配额和日志记录将继续保持不变地工作——MCP 和 REST 流量共享完全相同的策略路径,且给定操作无论以何种方式调用,都使用同一份配额分配。
- 为你的 OpenAPI 规范添加注解。 MCP 要求 OpenAPI 3.0.x 或 3.1.x;不支持 OpenAPI 2.0,因此如果你的网关仍运行 2.0 规范,请先迁移它。在文档级别使用
x-google-api-management.mcp选择启用,并使用x-google-mcp-tool自定义或跳过单个操作。每个暴露的操作都需要一个后端和一个非空描述。
openapi: 3.0.4
info:
title: Order Service
version: 1.0.0
x-google-api-management:
mcp: true # expose this spec's operations as MCP tools
backends:
orders-backend:
address: https://orders-a1b2c3-uc.a.run.app
paths:
/orders/{orderId}:
get:
operationId: getOrderStatus
description: Returns the current status, carrier, and ETA for an order.
x-google-backend: orders-backend
x-google-mcp-tool:
name: get_order_status
description: "Look up the delivery status and ETA of a customer order.
Use this when the user asks where an order is or when it will arrive."
parameters:
- name: orderId
in: path
required: true
schema:
type: string纯文本
已复制
工具的描述是 LLM 用来决定何时调用它的主要信号,因此要写明何时以及为何使用该工具,而不仅仅是它返回什么。
2. 部署网关。 照常部署 API 配置。API Gateway 会生成一个支持 MCP 的配置,并开始在 /mcp 基础路径上提供 MCP 服务,无需额外配置基础设施。
3. 决定谁可以发现你的工具。 默认情况下 tools/list 无需身份验证,这对开发来说很方便,但会向任何请求者公开你的工具名称和输入 schema。对于生产环境,请要求 JWT——注意 API 密钥无法保护此方法:
x-google-api-management:
mcp:
tools-list:
security:
orderServiceJwt: [] # the object form also enables MCP globally纯文本
已复制
tools/call 始终会强制执行底层 REST 操作所要求的任何身份验证,无论你是否保护了发现功能。
4. 连接你的 agent。 将任何 MCP 客户端指向网关的 /mcp 端点。在 ADK 中,这就是工具集加上你的网关已经预期的凭据:
from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset, StreamableHTTPConnectionParams
order_tools = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/mcp",
headers={"x-api-key": API_KEY},
)
)
agent = Agent(
model="gemini-2.5-flash",
name="order_support_agent",
instruction="Help the user check on their orders.",
tools=[order_tools],
)Python
已复制
网关会将工具的参数映射回你的操作的 REST 路径、查询、请求体和请求头,让请求经过你现有的策略,并将后端的响应作为 MCP 结果返回。要在网络上检查这一点:
curl -X POST "https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/mcp" \
-H "content-type: application/json" \
-H "MCP-Protocol-Version: 2025-11-25" \
-H "x-api-key: $API_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_order_status","arguments":{"orderId":"A-1042"}}}'Shell
已复制
{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text",
"text":"{\"orderId\":\"A-1042\",\"status\":\"IN_TRANSIT\",\"eta\":\"2026-09-24\"}"}],
"isError":false}}JSON
已复制
为什么从网关提供 MCP
- 可发现。 将你的网关连接到 API hub,其 MCP 服务器就会在那里发布,并带有 MCP 特定的元数据,同时自动出现在 Agent Registry 中,这样 agent 和开发者就能找到它暴露的工具。
- 无需运维新东西。 你现有的规范、网关、身份验证、配额和日志记录会完成这些工作——MCP 和 REST 流量保持一致,因为它们共享同一条策略路径。
Public Preview 覆盖了使用你当前身份验证的 REST 和 OpenAPI 3.x 后端。MCP 资源和提示、响应流式传输以及 Model Armor 载荷检查都在路线图中。有几个限制值得提前了解:返回空响应体的操作(如 HTTP 204)不会被暴露,深度嵌套的对象 schema 可能无法在 tools/list 中完整呈现,一个网关最多提供 1,000 个工具,并且 MCP 和模型路由无法在同一个 API 配置中启用。请参阅文档了解当前范围。
开始使用
MCP 支持现已在 Public Preview 中提供。查看文档,立即将你的第一个 API 变成 agent 就绪的工具。
上一页
下一页
来源:Google Developers Blog(RSS) · developers.googleblog.com