Gemini 中的 MCP Apps 开发者指南

企业级助手仍然大多以文本响应。但在视觉、多步骤的工作场景下,这会出问题:每次调整都意味着再来一轮慢速聊天回合。MCP Apps(SEP-1865)正是为解决这个问题而设计的。它是 Model Context Protocol 的开放扩展,把工具和一个实时 UI 配对。在 Gemini Enterprise 里,这个 UI 直接渲染在聊天流内部的沙箱 iframe 中,可以展开成全屏或侧面板。编辑在本地运行,同时工作区和助手保持同步。Gemini 已经提供员工登录、受治理的数据访问和 Default Assistant,你只需要把自己的 MCP server 托管在私有的 Cloud Run 服务上,不用重建底层基础。

企业助手经历了三代演进:第一代文本聊天机器人只返回静态 markdown;第二代标准 MCP 工具能调用 API,但输出仍是静态文本,每次改动都要再走一轮模型;第三代交互式 MCP Apps 把工具和实时工作区绑在一起,调整在小组件里完成,不再需要模型回合,助手仍保持同步。官方列出了六项收益:响应式体验(面板内直接执行,不用回到聊天等待)、面向特定工作流(法律审查的可视化脱敏视图、CAD 的 3D 查看器、金融的敏感性模型)、企业安全(OAuth 登录、私有 Cloud Run 入口、沙箱 iframe)、人在环路治理(高风险操作由专家检查批准)、开放标准(可移植并自动回退到文本)、广泛连接(可接 BigQuery、Agent Platform、Cloud Storage、内部 ERP/CRM)。

架构上,三层解耦:客户端浏览器显示聊天和侧面板里的 MCP App 组件;Gemini Enterprise 负责默认助手调用工具,AppBridge 代理中继组件消息,连接器管理 OAuth;你的 Google Cloud 项目负责在 Cloud Run 上部署和托管 MCP server,暴露一个 JSON-RPC 端点 /mcp,运行后台任务,并提供单文件 HTML 组件。每层只与相邻层通信,Gemini Enterprise 因此能统一执行安全和路由。

认证分两层,每层独立。用户先通过 OAuth 2.0 登录,每次调用 Gemini Enterprise 都会同时带上服务代理令牌和用户 OAuth 令牌。第一层是 Cloud Run IAM,在 Google 边缘强制执行,回答“哪个服务可以调用?”,公开访问被禁用,未授权调用者收到 HTTP 403。第二层是 In-App OAuth,回答“哪个用户在调用?”,验证失败返回 HTTP 401 并让用户重新登录。Cloud Run IAM 无法区分最终用户,所以两层都必须有。出站调用使用最小权限服务账户。

构建和部署的路径很具体。你可以用 MCP Apps SDK 构建自定义 MCP server(暴露 POST /mcp,并打包 ui:// HTML 组件),也可以用 Google Antigravity 根据提示词脚手架生成。生成物包含单文件 HTML 组件、一个 Streamable HTTP 后端(POST /mcp,异步工具响应需小于 2 秒,并实现 get_app_state 轮询),以及对应的 Cloud Run 部署命令(–no-allow-unauthenticated、–no-cpu-throttling、–min-instances=1)。

连接 Gemini Enterprise 共七步:启用 Cloud Run、Discovery Engine、Agent Platform 和 Organization Policy 的 API;从源码部署容器到 Cloud Run,注意 –no-cpu-throttling 防止后台工作在两轮轮询之间冻结;把 roles/run.invoker 授给 Discovery Engine 服务代理;创建 OAuth 2.0 Web Client,重定向 URI 指向 https://vertexaisearch.cloud.google.com/oauth-redirect;覆盖 discoveryengine.managed.disableCustomMcpServerConnector 约束,并满足前置条件(管理员需 roles/discoveryengine.editor,allowedEgressFqdns 需包含 server 和 OAuth 主机,必要时在 allowedDataSources 中加入 custom_mcp);在 Gemini Enterprise 控制台里创建 Data store,选择 Custom MCP Server 并注册连接器,填写 MCP Server URL、授权 URL、令牌 URL、Client ID/Secret、Scopes,勾选启用 PKCE,不要勾选 HTTP Basic Auth(可避免 invalid_client 错误);然后在 Data store 的 Actions 里重载自定义动作并启用模型可见的工具;最后把 Data store 连接到 App 的 Connected data stores,这样内置 Default Assistant 就能在主聊天中使用 MCP 工具和 UI。特别提醒:不要用 “Add Agent”,那是给外部子代理用的,不是 MCP 数据存储。

MCP Apps 在 Gemini Enterprise 里把后端工具和实时工作区配对,开发人员不需要做聊天前端或身份管道,部署一个 Cloud Run 容器并作为 Data Store 挂上去,Gemini Enterprise 就成了完成企业工作的地方。更多信息:MCP Apps 规范(SEP-1865)、Cloud Run 和 Google Cloud AI。

Devs guide to MCP Apps in Gemini

查看原文