← 返回 2026-09-25 简报

通过 Google Cloud API Gateway 将您的 REST API 转化为 MCP 工具

Turn your REST APIs into MCP tools with Google Cloud API Gateway

语音播报
摘要
事件:Google Cloud API Gateway 在公共预览中支持将 REST API 直接转化为 MCP 工具,无需搭建独立服务器。 要点:通过 OpenAPI 3.x 注解启用,共享现有认证与配额策略,单网关最多暴露一千个工具。 影响:开发者可快速让智能体调用企业级 API,大幅降低集成复杂度并减少额外运维基础设施成本。

大多数企业级功能都隐藏在代理(agent)无法访问的 REST API 背后。要让某个功能如今能被代理调用,团队通常需要搭建并运维一个独立的 MCP 服务器,重新实现其网关已经处理的路由、身份验证和配额逻辑。模型上下文协议(MCP)已成为代理发现和调用工具的标准方式,而 Agent Development Kit(ADK)和 Gemini Enterprise 等框架原生支持该协议。

Google Cloud API Gateway 现在填补了这一空白。在公共预览阶段,API Gateway 可以充当远程 MCP 服务器:对您已部署的 OpenAPI 规范进行注解,然后部署它,您现有的 REST 操作即可作为面向代理的 MCP 工具使用——无需构建、托管或维护单独的服务器。

API Gateway 是 Google Cloud 网关产品线中的轻量级入口。如果您在 Cloud Run 上有一个服务,并希望其 API 能在几分钟内得到保护、管理和向代理暴露,这是快速路径。若要构建完整的企业级 API 和 MCP 平台——包括生命周期管理、高级流量策略和货币化功能——请使用 Apigee。若要管控您的代理向外调用的内容(包括此类 MCP 服务器),请使用 Agent Gateway。模型路由(Model routing)为 AI 流量的另一个方向提供了配套能力,它为您提供一个稳定的出站 LLM 调用端点。

工作原理

API Gateway 在单一端点上接受标准的 MCP JSON-RPC 请求,将每个 tools/call 转码为相应的 REST 请求,应用您现有的策略,并将响应转换回来。由于转码后的请求与普通的 REST 调用无法区分,您已为该操作配置的 JWT 或 API 密钥身份验证、配额和日志记录将继续正常工作——MCP 和 REST 流量共享完全相同的策略路径,且给定操作无论通过何种方式调用,都使用同一份配额分配。

  1. 注解您的 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 # 将此规范的操作作为 MCP 工具暴露
backends:
orders-backend:
address: https://orders-a1b2c3-uc.a.run.app

paths:
/orders/{orderId}:
get:
operationId: getOrderStatus
description: 返回订单的当前状态、承运商和预计到达时间。
x-google-backend: orders-backend
x-google-mcp-tool:
name: get_order_status
description: "查找客户订单的配送状态和预计到达时间。
当用户询问订单位置或何时到达时使用此工具。"
parameters:
- name: orderId
in: path
required: true
schema:
type: string

工具的描述是 LLM 决定何时调用该工具的主要信号,因此请编写何时以及为何使用该工具,而不仅仅是它返回什么。

  1. 部署网关。像往常一样部署 API 配置。API Gateway 生成支持 MCP 的配置并开始通过 /mcp 基础路径提供 MCP 服务,无需配置额外的基础设施。

  2. 决定谁可以发现您的工具。默认情况下,tools/list 是无认证的,这对开发很方便,但会将您的工具名称和输入模式发布给任何询问者。对于生产环境,请要求 JWT——请注意,API 密钥无法保护此方法:

x-google-api-management:
mcp:
tools-list:
security:
- orderServiceJwt: [] # 对象形式也全局启用 MCP

无论是否保护发现功能,tools/call 始终强制执行底层 REST 操作所需的任何身份验证。

  1. 连接您的代理。将任何 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 中,以便代理和开发人员能够找到它暴露的工具。

无需运营新事物。您现有的规范、网关、身份验证、配额和日志记录即可完成任务——MCP 和 REST 流量保持一致,因为它们共享同一个策略路径。

公共预览版支持使用当前身份验证的 REST 和 OpenAPI 3.x 后端。MCP 资源和提示、响应流式传输以及 Model Armor 负载检查已在路线图规划中。有几个限制值得提前了解:返回空主体(如 HTTP 204)的操作不会暴露,深度嵌套的对象模式在 tools/list 中可能无法完全渲染,网关最多支持 1,000 个工具,且 MCP 和模型路由不能在同一 API 配置中同时启用。请参阅文档以了解当前范围。

开始使用

MCP 支持现已在公共预览版中提供。查看文档,今天就将您的第一个 API 转变为面向代理的工具。

本条评分 8.4 score-v1
  • 来源权威 8
    注册表 priority=8(Google Developers Blog)
  • 时效 0.4
    没有发布日期(nodate 源),给地板分 0.4(证明不了它新,不按新的加分)
  • 多源印证 0
    只有 1 家在报(无旁证)
  • 社区信号 0
    无社区数据(本管线走 RSS,HN 的 hn_fetcher 未接入)
历史
刊期得分排名结果
2026-10-03 8.4 43 入选
2026-09-25 8.4 51 入选
原文链接:https://developers.googleblog.com/turn-your-rest-apis-into-mcp-tools-with-google-cloud-api-gateway/
来源:Google Developers Blog
以上内容由 AI 自动翻译,仅供参考。
← 返回简报