在OpenAPI 3.x规范中加注解即可将REST API暴露为MCP Server,JSON-RPC转REST自动完成,现有的认证/配额/日志策略对Agent流量无缝生效。
大多数企业能力都藏在 REST API 背后,agent 无法直接访问。要让一个 API 能被 agent 调用,团队通常需要另外搭建并维护一个 MCP server,重新实现网关已经处理的路由、认证和配额逻辑。Model Context Protocol(MCP)已成为 agent 发现和调用工具的标准方式,Agent Development Kit(ADK)和 Gemini Enterprise 等框架原生支持该协议。
Google Cloud API Gateway 现在填补了这个空白。在公开预览阶段,API Gateway 可以充当远程 MCP server:对你已经部署的 OpenAPI 规范做注解,部署它,你现有的 REST 操作就会以 agent 就绪的 MCP tools 的形式提供——无需另行构建、托管或维护任何 server。
API Gateway 是 Google Cloud 网关系列中的轻量级入口。如果你有一个运行在 Cloud Run 上的服务,想要在几分钟内为其 API 获得安全保障、托管并暴露给 agent,这是最快的路径。对于完整的企业级 API 和 MCP 平台——包括生命周期管理、高级流量策略、货币化——请使用 Apigee。要治理 agent 向外调用了什么(包括此类 MCP server),请使用 Agent Gateway。Model routing 让你拥有一个稳定的端点来处理出站 LLM 调用,是另一个方向 AI 流量的配套能力。
API Gateway 在单一端点上接收标准 MCP JSON-RPC 请求,将每个 tools/call 转码为对应的 REST 请求,应用你已有的策略,再将响应转译回来。因为转码后的请求与普通 REST 调用无区别,所以你已为该操作配置的 JWT 或 API 密钥认证、配额和日志记录完全保持不变——MCP 和 REST 流量共用一条策略路径,一个操作无论以何种方式调用都从同一配额中扣除。
MCP 要求 OpenAPI 3.0.x 或 3.1.x;OpenAPI 2.0 不支持,因此如果你的网关仍在运行 2.0 规范,请先迁移。在文档级别通过 x-google-api-management.mcp 选择加入,并通过 x-google-mcp-tool 自定义或跳过单个操作。每个暴露的操作需要指定一个 backend 和非空描述。
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
Tool 的描述是 LLM 判断何时调用它的主要依据,所以要写"何时"和"为何"使用这个 tool,而不仅仅是它返回什么。
照常部署 API 配置。API Gateway 生成一份支持 MCP 的配置,并开始在 /mcp 基础路径上提供 MCP 服务,无需配置任何额外基础设施。
默认情况下 tools/list 是未认证的,这对开发来说很方便,但会将你的工具名称和输入 schema 暴露给任何请求者。对于生产环境,需要要求 JWT——注意 API 密钥无法保护此方法:
x-google-api-management:
mcp:
tools-list:
security:
orderServiceJwt: [] # the object form also enables MCP globally
tools/call 始终强制执行底层 REST 操作所需的任何认证,无论你是否保护了发现端点。
将任何 MCP client 指向网关的 /mcp 端点。在 ADK 中,那就是 toolset 加上网关已期望的凭证:
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],
)
网关将 tool 的参数映射回你的操作的 REST 路径、查询、body 和 header,通过你现有的策略运行请求,并将后端的响应作为 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"}}}'
{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text",
"text":"{\"orderId\":\"A-1042\",\"status\":\"IN_TRANSIT\",\"eta\":\"2026-09-24\"}"}],
"isError":false}}
可被发现:将你的网关连接到 API Hub,其 MCP server 就会带着 MCP 特有的元数据在那里发布,并自动出现在 Agent Registry 中,agent 和开发者可以找到它暴露的工具。
无需运维新组件:你现有的规范、网关、认证、配额和日志记录在工作——MCP 和 REST 流量保持一致,因为它们共用一条策略路径。
公开预览版涵盖 REST 和 OpenAPI 3.x 后端,支持你现有的认证方式。MCP resources 和 prompts、响应流式传输以及 Model Armor 负载检查已在路线规划中。有几个限制值得提前了解:返回空 body 的操作(如 HTTP 204)不会暴露,深层嵌套的对象 schema 可能无法在 tools/list 中完整呈现,一个网关最多服务 1,000 个工具,且 MCP 和 model routing 无法在同一 API 配置中启用。参见文档了解当前范围。
MCP 支持现已提供公开预览版。查看文档,今天就把你的第一个 API 变成 agent 就绪的工具。