跳到正文
北京时间
原文
Google Developers Blog(RSS)· Sanjay Pujare·· 5 天前精选AI 评分61

Google Cloud API Gateway 推出 MCP 支持,可将现有 REST API 直接暴露为智能体工具

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

AI 导读

Google Cloud API Gateway 在 Public Preview 中可充当远程 MCP 服务器,无需单独搭建 MCP 服务器,即可把已有 REST API 暴露为智能体可调用的工具。

推荐理由

原文说明了通过注解 OpenAPI 规格让网关直接充当远程 MCP 服务器的做法,并给出配置示例、安全注意事项和当前限制。

正文 · AI 翻译

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 流量共享完全相同的策略路径,且给定操作无论以何种方式调用,都使用同一份配额分配。

  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                 # 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