Context Layer
Context Layer это компонент Renta MCP Server, предназначенный для взаимодействия с данными. Он предоставляет модели данных Google BigQuery в виде структурированных измерений (dimensions) и мер (measures), позволяя AI-ассистентам программно выбирать поля вместо генерации сырых SQL-запросов.
Renta компилирует этот выбор в SQL-запросы для BigQuery, выполняет их в вашем проекте с использованием сервисного аккаунта подключения и возвращает результирующие строки вместе с подробными метаданными об объеме сканирования и стоимости.
В клиенте MCP Context Layer представлен как единый инструмент context_layer, включающий четыре действия. В последующих разделах подробно описаны функциональность и ожидаемые ответы для каждого из них.
Архитектура энтерпрайз-уровня
Context Layer спроектирован с упором на безопасность, контроль затрат и производительность, выступая в роли защищенного шлюза между вашим хранилищем данных и AI-ассистентами.
- Безопасность (Security by Design) и дата-контракты.
Архитектура опирается на строгие дата-контракты (data contracts). AI получает доступ исключительно к тем данным, которые вы явно разрешили. Интерфейс строго ограничен операциями чтения: генерируются только оптимизированныеSELECT-запросы, что полностью исключает возможность удаления, модификации или несанкционированного доступа к конфиденциальным данным. - Контроль затрат и оптимизация.
В случае с BigQuery Context Layer жестко ограничивает количество и объем запросов, не позволяя AI инициировать неконтролируемые расходы. Запросы максимально оптимизированы, обеспечивая высокую эффективность работы даже с миллиардами строк. - Оптимизация контекста AI.
Изолируя обработку сырых данных на стороне хранилища и возвращая только агрегированные результаты, Renta предотвращает засорение кон текстного окна AI. Это значительно повышает эффективность и качество работы AI с данными. - Синергия с дата-инженерами.
Renta не заменяет проектировщиков данных. Наоборот, дата-инженеры продолжают создавать эффективные, заранее рассчитанные витрины данных (datamarts), а Renta берет на себя роль шлюза, который обеспечивает безопасность, производительность и контролируемый доступ AI к этим данным.
Как это работает
Агенты функционируют без предварительных знаний о топологии вашего хранилища, последовательно формируя контекст за четыре шага.
- Список моделей.
Агент запрашивает доступные в рабочей области (workspace) модели и выбирает необходимую по ее идентификатору. - Описание модели.
Renta возвращает все измерения и меры, связанные с указанной моделью, включая их типы и описания. Агент ограничен использованием только тех полей, которые присутствуют в этом ответе. - Сэмплирование поля.
Renta извлекает фактические значения, диапазоны или статистические распределения для указанного поля, гарантируя, что агенты строят фильтры на основе эмпирических данных, а не предположений. - Выполнение запроса.
Renta компилирует выбранные поля, фильтры и временные границы в SQL-запрос, выполняет его и возвращает результирующие строки, метаданные колонок и статистику выполнения.
Все запросы строго ограничены рабочей областью, для которой был выпущен токен. Renta валидирует членство при каждом вызове. Следовательно, отозванный доступ вступает в силу немедленно.
Что нужно заранее
Context Layer взаимодействует с предварительно настроенными моделями. Перед началом использования убедитесь в выполнении следующих предварительных требований.
- Модель данных с областью видимости для AI.
Управление моделями осуществляется в разделе Tools > Data models. Инструкции по их созданию приведены в документации Google BigQuery reverse ETL. - Подключённый MCP-сервер.
Процесс авторизации, выполняемый при добавлении сервера, по умолчанию включает доступ к Context Layer. Запрос дополнительных прав не требуется.
Context Layer предоставляет доступ только к моделям с явно заданным scope AI agents only или AI agents & Reverse ETL. Модели со scope Reverse ETL only остаются недоступными для агентов.
Что агент видит в модели
Агенты используют нативную конфигурацию модели. Поддерживать отдельные описания, специфичные для AI, не требуется.
Колонки модели транслируются в измерения, типизированные как string, number, boolean или time. Структурированные колонки, такие как массивы (arrays) и записи (records), преобразуются в строковый тип (string). Имя и описание модели обеспечивают базовый контекст, используемый агентами для интерпретации семантики строк.
Меры формируются на основе конфигураций столбцов на вкладке Measures. Активация переключателя создает соответствующую меру, имя которой состоит из названия колонки и примененной агрегации.

Числовые колонки поддерживают все восемь функций агрегации. Для нечисловых типов доступны только COUNT и DISTINCT, поскольку арифметические операции (сумма, среднее) неприменимы к строковым или временным данным.
| Переключатель | Имя меры | Что возвращает |
|---|---|---|
| SUM | revenue_sum | Сумма по колонке. Только числовые колонки. |
| AVG | revenue_avg | Среднее по колонке. Только числовые колонки. |
| MIN | revenue_min | Минимальное значение. Только числовые колонки. |
| MAX | revenue_max | Максимальное значение. Только числовые колонки. |
| MEDIAN | revenue_median | Приблизительная медиана. Только числовые колонки. |
| P95 | revenue_p95 | Приблизительный 95-й процентиль. Только числовые колонки. |
| COUNT | order_id_count | Количество непустых значений колонки. Любой тип колонки. |
| DISTINCT | order_id_distinct | Количество различных значений колонки. Любой тип колонки. |
Две меры доступны по умолчанию: count, возвращающая общее количество строк, и unique_count, возвращающая количество различных значений уникального ключа (если он задан в модели).
Колонка без включённых переключателей всё равно доступна как измерение. Агент может по ней группировать, но агрегировать по ней нечего.
Назначение агрегаций сразу нескольким колонкам
Индивидуальное переключение подходит для узких схем. В моделях с большим количеством столбцов целесообразно использовать массовые операции: выберите целевые колонки для глобального применения агрегаций одним действием.