Developer’s guide to implementing MCP apps in Gemini Google published a developer guide for building MCP Apps (SEP-1865) in Gemini Enterprise, an open Model Context Protocol extension that pairs a tool with a live UI rendered in a sandboxed iframe inside the chat flow. The guide describes a three-tier architecture — the client browser, Gemini Enterprise (Default Assistant, AppBridge proxy, OAuth connector), and the developer's MCP server hosted on a private Cloud Run service exposing a single JSON-RPC endpoint at /mcp — with two required auth layers: Cloud Run IAM returning HTTP 403 for unauthorized service callers and in-app OAuth 2.0 returning HTTP 401 for failed user verification. Google says the approach lets adjustments happen in the widget without a model turn while the assistant stays in sync, with automatic text fallback and portability across compatible hosts. Enterprise assistants still respond mostly in text. However, that can break down for visual, multi-step work, where every adjustment costs another slow chat turn. MCP Apps https://github.com/modelcontextprotocol/ext-apps SEP-1865 solves this. This open Model Context Protocol MCP extension pairs a tool with a live UI. In Gemini Enterprise https://business.gemini.google/?utm source=cloud.google.com/blog , that UI renders directly in the chat flow inside a sandboxed iframe, and can expand to fullscreen or a side panel. Edits run locally while the workspace and assistant stay synchronized. You also avoid rebuilding core foundations: Gemini provides workforce sign-in, governed data access, and the Default Assistant, while you host your MCP server on a private Cloud Run https://cloud.google.com/run service. Enterprise assistants have evolved through three generations: Generation 1 Text chatbots : Returns static markdown with no interactive controls. Generation 2 Standard MCP tools : Invokes live APIs, but outputs static text. Every change requires another model turn. Generation 3 Interactive MCP Apps : Pairs each tool with a live workspace. Adjustments happen in the widget without a model turn, while the assistant stays in sync. Responsive user experience: Single-click actions execute directly in the panel without round-tripping through the chat. Purpose-built workflows: Deliver visual redaction views for legal review, 3D viewers for CAD, or sensitivity models for finance. Enterprise security: Workforce OAuth sign-in, private Cloud Run ingress, and a sandboxed iframe protect every layer. Human-in-the-loop governance: Experts inspect and approve high-stakes actions before execution. Open standard: Portable across compatible hosts, with automatic text fallback. Broad connectivity: Connect to BigQuery, Agent Platform, Cloud Storage, or internal ERP and CRM systems. Three decoupled tiers work together: Client browser: Shows the chat alongside the MCP App widget in the side panel. Gemini Enterprise: The default assistant calls tools, the AppBridge proxy relays widget messages, and the connector manages OAuth. Google Cloud your project : You deploy and host the MCP server on Cloud Run, which exposes one JSON-RPC endpoint /mcp , runs background jobs, and serves the single-file HTML widget. Each tier talks only to its neighbor, letting Gemini Enterprise enforce security and routing. Each user signs in through OAuth 2.0. On every call, Gemini Enterprise sends its service agent token alongside the user's OAuth token: Layer 1 Cloud Run IAM : Enforced at Google's edge, this answers "which service may call?" Public access is disabled; unauthorized callers receive HTTP 403. Layer 2 In-App OAuth : Enforced inside the application, this answers "which user is calling?" Failed verification returns HTTP 401, prompting the user to sign in again. Cloud Run IAM cannot distinguish end users, so both layers are required. Outbound calls use a least-privilege service account. First, build your custom MCP server exposing POST /mcp and a bundled ui:// HTML widget using the MCP Apps SDK https://github.com/modelcontextprotocol/ext-apps , or use Google Antigravity https://antigravity.google/ to scaffold and deploy your MCP App with this starter prompt: Build an MCP App for Gemini Enterprise using the create-mcp-app skill https://github.com/modelcontextprotocol/ext-apps/tree/main/plugins/mcp-apps/skills/create-mcp-app . Workflow: describe your input data, side-panel UI controls, and approval or export actions . Generate a single-file HTML widget, a Streamable HTTP backend POST /mcp with <2s async tool responses and get app state polling, and Cloud Run deployment commands --no-allow-unauthenticated, --no-cpu-throttling, --min-instances=1 . Once your MCP server code is ready, deploy it to Cloud Run and connect it to Gemini Enterprise: Step 1: Enable APIs for Cloud Run, Discovery Engine, Agent Platform, and Organization Policy. Step 2: Deploy your MCP server container to Cloud Run from source gcloud run deploy