Руководство разработчика по MCP Apps в Gemini

Источник: Google Cloud Blog•

Руководство разработчика по MCP Apps в Gemini

Узнайте, как внедрять MCP Apps в Gemini.

Корпоративные ассистенты по-прежнему отвечают в основном текстом. Однако это может быть неэффективно для визуальных, многоэтапных задач, где каждое изменение требует еще одного медленного цикла общения в чате.

MCP Apps (SEP-1865) решают эту проблему. Это расширение открытого протокола Model Context Protocol (MCP) объединяет инструмент с интерактивным пользовательским интерфейсом. В Gemini Enterprise этот интерфейс отображается непосредственно в потоке чата внутри изолированного iframe и может быть развернут на весь экран или в боковую панель. Редактирование выполняется локально, при этом рабочее пространство и ассистент остаются синхронизированными.

Вы также избегаете необходимости перестраивать базовые компоненты: Gemini предоставляет корпоративный вход в систему, контролируемый доступ к данным и ассистента по умолчанию, в то время как вы размещаете свой MCP-сервер на частном сервисе Cloud Run.

Почему нам нужны MCP Apps

Корпоративные ассистенты прошли через три поколения развития:

  • Поколение 1 (Текстовые чат-боты): Возвращают статический markdown без интерактивных элементов управления.

Поколение 1 (Текстовые чат-боты): Возвращают статический markdown без интерактивных элементов управления.

  • Поколение 2 (Стандартные инструменты MCP): Вызывают активные API, но выводят статический текст. Каждое изменение требует нового обращения к модели.

Поколение 2 (Стандартные инструменты MCP): Вызывают активные API, но выводят статический текст. Каждое изменение требует нового обращения к модели.

  • Поколение 3 (Интерактивные MCP Apps): Соединяют каждый инструмент с активным рабочим пространством. Корректировки происходят в виджете без обращения к модели, при этом ассистент остается синхронизированным.

Поколение 3 (Интерактивные MCP Apps): Соединяют каждый инструмент с активным рабочим пространством. Корректировки происходят в виджете без обращения к модели, при этом ассистент остается синхронизированным.

Создание MCP Apps в Gemini дает шесть преимуществ:

  • Отзывчивый пользовательский интерфейс: Действия в один клик выполняются непосредственно в панели без необходимости обмена данными с чатом.

Отзывчивый пользовательский интерфейс: Действия в один клик выполняются непосредственно в панели без необходимости обмена данными с чатом.

  • Специализированные рабочие процессы: Предоставление визуальных представлений для юридической проверки, 3D-просмотрщиков для CAD или моделей чувствительности для финансов.

Специализированные рабочие процессы: Предоставление визуальных представлений для юридической проверки, 3D-просмотрщиков для CAD или моделей чувствительности для финансов.

  • Корпоративная безопасность: Корпоративный вход через OAuth, частный вход в Cloud Run и изолированный iframe защищают каждый уровень.

Корпоративная безопасность: Корпоративный вход через OAuth, частный вход в Cloud Run и изолированный iframe защищают каждый уровень.

  • Управление с участием человека: Эксперты проверяют и одобряют важные действия перед их выполнением.

Управление с участием человека: Эксперты проверяют и одобряют важные действия перед их выполнением.

  • Открытый стандарт: Переносимость между совместимыми хостами с автоматическим резервным текстовым представлением.

Открытый стандарт: Переносимость между совместимыми хостами с автоматическим резервным текстовым представлением.

  • Широкие возможности подключения: Подключение к BigQuery, Agent Platform, Cloud Storage или внутренним системам ERP и CRM.

Широкие возможности подключения: Подключение к BigQuery, Agent Platform, Cloud Storage или внутренним системам ERP и CRM.

Архитектура высокого уровня

Три независимых уровня работают вместе:

  • Браузер клиента: Отображает чат рядом с виджетом MCP App в боковой панели.

Браузер клиента: Отображает чат рядом с виджетом MCP App в боковой панели.

  • Gemini Enterprise: Ассистент по умолчанию вызывает инструменты, прокси-сервер AppBridge передает сообщения виджета, а коннектор управляет OAuth.

Gemini Enterprise: Ассистент по умолчанию вызывает инструменты, прокси-сервер AppBridge передает сообщения виджета, а коннектор управляет OAuth.

  • Google Cloud (ваш проект): Вы развертываете и размещаете MCP-сервер на Cloud Run, который предоставляет одну конечную точку JSON-RPC (/mcp), выполняет фоновые задания и обслуживает однофайловый HTML-виджет.

Google Cloud (ваш проект): Вы развертываете и размещаете MCP-сервер на Cloud Run, который предоставляет одну конечную точку JSON-RPC (/mcp), выполняет фоновые задания и обслуживает однофайловый HTML-виджет.

Каждый уровень взаимодействует только со своим соседом, позволяя Gemini Enterprise обеспечивать безопасность и маршрутизацию.

Аутентификация с двумя независимыми уровнями

Каждый пользователь входит в систему через OAuth 2.0. При каждом вызове Gemini Enterprise отправляет токен своего сервисного агента вместе с токеном OAuth пользователя:

  • Уровень 1 (Cloud Run IAM): Применяется на границе сети Google и отвечает на вопрос «какой сервис может совершить вызов?». Публичный доступ отключен; неавторизованные вызовы получают HTTP 403.

Уровень 1 (Cloud Run IAM): Применяется на границе сети Google и отвечает на вопрос «какой сервис может совершить вызов?». Публичный доступ отключен; неавторизованные вызовы получают HTTP 403.

  • Уровень 2 (In-App OAuth): Применяется внутри приложения и отвечает на вопрос «какой пользователь совершает вызов?». Ошибка проверки возвращает HTTP 401, предлагая пользователю войти снова.

Уровень 2 (In-App OAuth): Применяется внутри приложения и отвечает на вопрос «какой пользователь совершает вызов?». Ошибка проверки возвращает HTTP 401, предлагая пользователю войти снова.

Cloud Run IAM не может различать конечных пользователей, поэтому требуются оба уровня. Исходящие вызовы используют сервисную учетную запись с минимальными привилегиями.

Сборка, развертывание в Google Cloud и регистрация в Gemini Enterprise

Сначала создайте свой собственный MCP-сервер (предоставляющий POST /mcp и упакованный виджет ui:// HTML), используя MCP Apps SDK, или используйте Google Antigravity для создания каркаса и развертывания вашего MCP App с помощью этой стартовой подсказки:

  • Создайте MCP App для Gemini Enterprise, используя навык create-mcp-app (https://github.com/modelcontextprotocol/ext-apps/tree/main/plugins/mcp-apps/skills/create-mcp-app).

Создайте MCP App для Gemini Enterprise, используя навык create-mcp-app (https://github.com/modelcontextprotocol/ext-apps/tree/main/plugins/mcp-apps/skills/create-mcp-app).

  • Рабочий процесс: [опишите ваши входные данные, элементы управления боковой панели и действия по утверждению или экспорту].

Рабочий процесс: [опишите ваши входные данные, элементы управления боковой панели и действия по утверждению или экспорту].

  • Сгенерируйте однофайловый HTML-виджет, потоковый HTTP-бэкенд (POST /mcp) с асинхронными ответами инструментов менее чем за 2 секунды и опросом get_app_state, а также команды развертывания Cloud Run (--no-allow-unauthenticated, --no-cpu-throttling, --min-instances=1).

Сгенерируйте однофайловый HTML-виджет, потоковый HTTP-бэкенд (POST /mcp) с асинхронными ответами инструментов менее чем за 2 секунды и опросом get_app_state, а также команды развертывания Cloud Run (--no-allow-unauthenticated, --no-cpu-throttling, --min-instances=1).

Как только код вашего MCP-сервера будет готов, разверните его в Cloud Run и подключите к Gemini Enterprise:

  • Шаг 1: Включите API для Cloud Run, Discovery Engine, Agent Platform и Organization Policy.

Шаг 1: Включите API для Cloud Run, Discovery Engine, Agent Platform и Organization Policy.

  • Шаг 2: Разверните контейнер вашего MCP-сервера в Cloud Run из исходного кода (gcloud run deploy <service> --source .) с параметрами --no-allow-unauthenticated, --no-cpu-throttling, чтобы фоновая работа не зависала между опросами, и --min-instances=1.

Шаг 2: Разверните контейнер вашего MCP-сервера в Cloud Run из исходного кода (gcloud run deploy <service> --source .) с параметрами --no-allow-unauthenticated, --no-cpu-throttling, чтобы фоновая работа не зависала между опросами, и --min-instances=1.

  • Шаг 3: Предоставьте роль вызывающего (roles/run.invoker) вашему сервисному агенту Discovery Engine (Уровень 1).

Шаг 3: Предоставьте роль вызывающего (roles/run.invoker) вашему сервисному агенту Discovery Engine (Уровень 1).

  • Шаг 4. Создайте веб-клиент OAuth 2.0 с URI перенаправления https://vertexaisearch.cloud.google.com/oauth-redirect (уровень 2).
  • Шаг 5. Переопределите ограничение discoveryengine.managed.disableCustomMcpServerConnector и выполните предварительные требования из раздела «Перед началом» (roles/discoveryengine.editor для администратора, allowedEgressFqdns для вашего сервера и хостов OAuth, а также custom_mcp в allowedDataSources, если это применимо). Затем в Google Cloud Console перейдите в Gemini Enterprise > Хранилища данных > Создать хранилище данных (Gemini Enterprise > Data stores > Create data store), выберите Пользовательский сервер MCP (Custom MCP Server) и зарегистрируйте коннектор:

Шаг 5. Переопределите ограничение discoveryengine.managed.disableCustomMcpServerConnector и выполните предварительные требования из раздела «Перед началом» (roles/discoveryengine.editor для администратора, allowedEgressFqdns для вашего сервера и хостов OAuth, а также custom_mcp в allowedDataSources, если это применимо). Затем в Google Cloud Console перейдите в Gemini Enterprise > Хранилища данных > Создать хранилище данных (Gemini Enterprise > Data stores > Create data store), выберите Пользовательский сервер MCP (Custom MCP Server) и зарегистрируйте коннектор:

Поле конфигурации

Значение

URL-адрес сервера MCP

https://<your-cloud-run-service>.run.app/mcp

URL-адрес авторизации

https://accounts.google.com/o/oauth2/v2/auth

URL-адрес токена

https://oauth2.googleapis.com/token

Идентификатор клиента и секрет

Ваш идентификатор и секрет веб-клиента OAuth 2.0

Области доступа (Scopes)

openid email profile

Включить поддержку PKCE

Выбрано (рекомендуется)

Использовать базовую аутентификацию HTTP

Не выбрано (позволяет избежать ошибок invalid_client)

  • Шаг 6. Включите действия в хранилище данных. Gemini Enterprise импортирует инструменты вашего сервера MCP в качестве действий и по умолчанию отключает их. В консоли Cloud Console откройте Gemini Enterprise > Хранилища данных > [Ваше хранилище данных MCP] > Действия (Gemini Enterprise > Data stores > [Your MCP Data Store] > Actions), нажмите Перезагрузить пользовательские действия (Reload custom actions, что вызывает tools/list на вашем сервере), выберите инструменты, видимые для модели, и нажмите Включить действия (Enable actions).

Шаг 6. Включите действия в хранилище данных. Gemini Enterprise импортирует инструменты вашего сервера MCP в качестве действий и по умолчанию отключает их. В консоли Cloud Console откройте Gemini Enterprise > Хранилища данных > [Ваше хранилище данных MCP] > Действия (Gemini Enterprise > Data stores > [Your MCP Data Store] > Actions), нажмите Перезагрузить пользовательские действия (Reload custom actions, что вызывает tools/list на вашем сервере), выберите инструменты, видимые для модели, и нажмите Включить действия (Enable actions).

  • Шаг 7. Подключите хранилище данных к вашему приложению. Откройте Gemini Enterprise > Приложения > [Ваше приложение] > Подключенные хранилища данных > Добавить существующие хранилища данных (Gemini Enterprise > Apps > [Your App] > Connected data stores > Add existing data stores) и выберите ваше хранилище данных MCP. Подключение его в качестве хранилища данных предоставляет встроенному помощнику Default Assistant доступ к вашим инструментам MCP и интерфейсному виджету непосредственно в основном чате (не используйте вариант «Добавить агент» (Add Agent), который предназначен для внешних субагентов, а не для хранилищ данных MCP).

Создайте собственное решение

Приложение MCP объединяет внутренние инструменты с рабочей средой реального времени в Gemini Enterprise. Вам не нужно создавать внешний интерфейс чата или конвейер идентификации; вы развертываете один контейнер Cloud Run и подключаете его в качестве хранилища данных, превращая Gemini Enterprise в единую среду для выполнения корпоративных задач.

  • Попробуйте Gemini here

Попробуйте Gemini

  • Создавайте совместно с Google Antigravity

Создавайте совместно с Google Antigravity

  • Создавайте на базе Google Cloud: , Cloud Run и Google Cloud AI.

Создавайте на базе Google Cloud: , Cloud Run и Google Cloud AI.

  • Разработчикам и специалистам

О чём эта статья

Ещё в разделе «Данные и аналитика»

Все →

Ещё от Looker