Это руководство предназначено для администраторов рабочей области ChatGPT и пользователей ChatGPT Plus или ChatGPT Pro, которые хотят подключить ChatGPT к Snowflake через управляемый Snowflake сервер MCP.
Основная часть настройки выполняется в Snowflake. После настройки Snowflake завершите подключение шаблона Snowflake в ChatGPT, а затем включите использующий этот шаблон плагин Snowflake.
Что вы настраиваете
Вы создаете управляемый Snowflake сервер MCP, который служит конечной точкой подключения для ChatGPT. Сервер MCP определяет:
Какие действия доступны ChatGPT.
К каким данным и объектам Snowflake могут обращаться эти инструменты.
С какой ролью Snowflake авторизуется каждый пользователь.
Какие база данных, схема и имя сервера MCP в Snowflake идентифицируют конечную точку.
Затем настройте в ChatGPT Snowflake — официальный шаблон, указав полный URL управляемого сервера MCP. На экране настройки шаблона URL может быть представлен четырьмя отдельными полями:
Префикс хоста Snowflake.
База данных.
Схема.
Имя сервера MCP.
ChatGPT может находить и использовать только те инструменты, которые предоставляет сервер MCP и к которым разрешен доступ для роли Snowflake, используемой при авторизации.
Перед началом
Вам потребуется:
Доступ администратора или владельца рабочей области ChatGPT либо подписка ChatGPT Plus или ChatGPT Pro.
Доступ к Snowflake с возможностью создавать объекты сервера MCP и предоставлять разрешения.
База данных и схема Snowflake, в которых будет размещен сервер MCP.
Решение о том, какие действия разрешить ChatGPT: например, Cortex Search, Cortex Analyst, SQL только для чтения либо определенную процедуру или функцию.
Роль Snowflake с минимальными привилегиями, которую пользователи будут применять при авторизации приложения.
Префикс хоста учетной записи Snowflake, включая суффикс региона или облака, если он есть.
Если доступ к учетной записи Snowflake ограничен сетевой политикой или списком разрешенных IP-адресов, попросите администратора Snowflake разрешить входящие подключения из актуальных диапазонов исходящих IP-адресов коннектора ChatGPT. Этот список меняется, поэтому его необходимо регулярно обновлять.
Необходимые значения
Префикс хоста Snowflake: все, что находится перед .snowflakecomputing.com в URL учетной записи Snowflake.
База данных: база данных, содержащая сервер MCP.
Схема: схема, содержащая сервер MCP.
Имя сервера MCP: имя объекта сервера MCP в Snowflake.
Полный URL управляемого сервера MCP, если он запрашивается на экране настройки ChatGPT.
Роль Snowflake: роль, которую пользователи должны применять при авторизации приложения.
Список инструментов: объекты и действия Snowflake, которые должен использовать ChatGPT.
Определите возможности ChatGPT
Предоставьте доступ только к нужным возможностям. Распространенные варианты:
Поиск с помощью Cortex Search для получения ответов из индексированных данных или содержимого Snowflake.
Вопросы и ответы с Cortex Analyst через одобренное семантическое представление.
SQL только для чтения, обеспечивающий контролируемый доступ к запросам.
Агент Snowflake, хранимая процедура или UDF для определенного рабочего процесса.
Если вы включаете SQL, оставьте доступ только для чтения, если ваша организация не проверила и не одобрила доступ на запись.
Откройте рабочий лист Snowflake
Войдите в приложение Snowflake.
Переключитесь на роль, позволяющую создать сервер MCP и предоставить доступ.
Перейдите в раздел Рабочие области.

Создайте рабочую область с SQL-файлом.

В качестве контекста рабочей области задайте базу данных и схему, в которых будет создан сервер MCP.

Создайте сервер MCP в Snowflake
Войдите в Snowflake с ролью, позволяющей создать сервер MCP и предоставить доступ. Откройте рабочий лист в базе данных и схеме, где нужно создать сервер MCP.
Выполните инструкцию, подобную приведенному ниже примеру. Замените имена именами своих базы данных, схемы, служб, представлений, виртуального склада и сервера Snowflake.
CREATE MCP SERVER CHATGPT_SNOWFLAKE_MCP FROM SPECIFICATION $$ tools: - name: "support-search" type: "CORTEX_SEARCH_SERVICE_QUERY" identifier: "CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE" title: "Support Search" description: "Search support content for relevant customer issues." - name: "revenue-analyst" type: "CORTEX_ANALYST_MESSAGE" identifier: "CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW" title: "Revenue Analyst" description: "Answer revenue questions using the approved semantic view." - name: "sql-readonly" type: "SYSTEM_EXECUTE_SQL" title: "Read-only SQL" description: "Run read-only SQL queries against approved Snowflake data." config: read_only: true query_timeout: 600 warehouse: "CHATGPT_WH" $$;

Имена инструментов и объекты Snowflake в этой инструкции приведены в качестве примера:
support-searchпредоставляет доступ к указанной службе Cortex Search.revenue-analystпредоставляет доступ к указанному семантическому представлению. При необходимости добавьте инструменты для других представлений.sql-readonlyпредоставляет доступ к SQL только для чтения через указанный виртуальный склад.
Используйте стабильные и понятные имена инструментов, чтобы ChatGPT мог выбрать подходящий инструмент. Создание сервера MCP не предоставляет доступ к базовым объектам Snowflake автоматически.
Дополнительные параметры спецификации см. в разделе Создание управляемого Snowflake сервера MCP.
Предоставьте необходимые разрешения Snowflake
Выберите роль Snowflake, с которой будут авторизоваться пользователи, а затем предоставьте ей доступ к следующим ресурсам:
База данных и схема.
Сервер MCP.
Все базовые объекты, используемые инструментами, например служба поиска, семантическое представление или виртуальный склад.
Пример:
GRANT USAGE ON DATABASE CHATGPT_APPS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON SCHEMA CHATGPT_APPS.TOOLS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP TO ROLE CHATGPT_CONNECTOR_ROLE;
GRANT USAGE ON CORTEX SEARCH SERVICE CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT SELECT ON SEMANTIC VIEW CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON WAREHOUSE CHATGPT_WH TO ROLE CHATGPT_CONNECTOR_ROLE;
Если сервер MCP предоставляет доступ к UDF, хранимой процедуре или агенту Cortex, также предоставьте необходимые разрешения для этого объекта.
Убедитесь, что Snowflake готов
Выполните:
SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;
Затем выполните:
DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;
Проверьте следующее:
Сервер существует в нужной базе данных и схеме.
Список инструментов соответствует вашим намерениям.
Поле
identifierкаждого инструмента указывает на нужный объект Snowflake.У подключаемой роли есть разрешение
USAGEдля сервера MCP.У подключаемой роли есть необходимые разрешения для каждого базового объекта.
Введите сведения о сервере Snowflake в ChatGPT
В ChatGPT переключитесь на учетную запись или рабочую область, в которой должно быть доступно приложение.
Откройте Настройки. Чтобы выполнить настройку для всей рабочей области, откройте Настройки рабочей области с правами администратора.
Перейдите в раздел Плагины.
Найдите Snowflake.
Включите Snowflake — официальный шаблон.
Откройте Snowflake — официальный шаблон, введите понятное имя подключения и выберите Подключить.
Введите полный URL управляемого сервера MCP:
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
Пример:
https://myorg-myaccount.azure.snowflakecomputing.com/api/v2/databases/CHATGPT_APPS/schemas/TOOLS/mcp-servers/CHATGPT_SNOWFLAKE_MCP

Если конфигурация Snowflake представлена на экране настройки отдельными полями, укажите те же значения, что и в URL:
Префикс хоста Snowflake
Используйте всю часть URL учетной записи Snowflake перед .snowflakecomputing.com, включая суффикс региона или облака, если он есть.
Например, если URL учетной записи начинается так:
https://myorg-myaccount.azure.snowflakecomputing.com
Префикс хоста:
myorg-myaccount.azure
База данных
Введите базу данных, содержащую сервер MCP, например:
CHATGPT_APPS
Схема
Введите схему, содержащую сервер MCP, например:
TOOLS
Имя сервера MCP
Введите имя объекта сервера MCP в Snowflake, например:
CHATGPT_SNOWFLAKE_MCP
Настройте клиент OAuth
Для подключения потребуются идентификатор и секрет клиента из Snowflake.
При использовании session:role:all Snowflake применяет роль каждого пользователя по умолчанию. Роль по умолчанию должна быть разрешена списком ролей интеграции OAuth, если он настроен, и не должна быть заблокирована. Наличие другой одобренной роли не приводит к ее автоматическому выбору.
В модальном окне настройки ChatGPT откройте Расширенные настройки OAuth, выберите Пользовательский клиент OAuth и скопируйте указанный в ChatGPT URL обратного вызова.
Создайте пользовательскую интеграцию безопасности OAuth, задав
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'и установив дляOAUTH_REDIRECT_URIточный URL обратного вызова.Выполните в Snowflake следующую инструкцию, указав имя интеграции в верхнем регистре:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');Из результата JSON вставьте
oauth_client_idв поле Идентификатор клиента OAuth, аoauth_client_secret— в поле Секрет клиента OAuth в ChatGPT.Для параметра Метод аутентификации конечной точки токена задайте
client_secret_basic.
Подключение и управление Snowflake
В том же модальном окне настройки ChatGPT выберите Продолжить, войдите в Snowflake и авторизуйте подключение.
Для рабочей области настройте политику установки плагина и доступ по ролям или группам для участников, которые будут его использовать. Убедитесь, что включены и Snowflake, и Snowflake — официальный шаблон.
Администраторы рабочей области отвечают за настройку параметра Доступ пользователей для ролей, которым требуется Snowflake.
Администраторы рабочей области отвечают за проверку параметра Управление действиями для предоставленных инструментов.
Администраторы рабочей области отвечают за проверку Разрешений приложения, определяющих, когда ChatGPT запрашивает согласие участников перед использованием приложения.
Эти разрешения приложения применяются к беседам в ChatGPT. Для агентов рабочей области доступные действия приложения и моменты запроса подтверждения у конечных пользователей определяются настройками каждого агента, заданными его создателем. Подробнее о поведении агентов см. в статье Агенты рабочей области ChatGPT для Enterprise и Business.
Протестируйте приложение
Откройте чат, выберите Snowflake и проверьте подключение.
Убедитесь, что ChatGPT обнаруживает настроенные вами инструменты.
Сначала выполните действие чтения с низким уровнем риска, например поиск или запрос только для чтения к одобренным данным.
Убедитесь, что разрешения Snowflake исключают доступ за пределами одобренной роли и объектов.
При настройке рабочей области проведите тестирование с допущенными участниками без прав администратора, у которых различаются роли Snowflake по умолчанию. Успешное подключение администратора не гарантирует, что подключиться сможет каждый участник.
Администраторам рабочей области недостаточно включить только Snowflake. Если Snowflake — официальный шаблон не включен и не подключен, участники могут видеть плагин отключенным.
URL сервера MCP и работа OAuth
ChatGPT подключается по полному URL управляемого Snowflake сервера MCP:
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
ChatGPT использует префикс хоста Snowflake из этого URL для определения следующих конечных точек OAuth Snowflake:
Авторизация:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorizeТокен:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/token-request
Не вставляйте URL Snowsight, только корневой URL учетной записи Snowflake или URL с дополнительными сегментами пути. URL MCP должен содержать /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} и точно соответствовать объектам Snowflake.
Устранение неполадок
Snowflake включен для администратора, но отключен для участника
Убедитесь, что в разделе Настройки рабочей области > Плагины включены и Snowflake, и Snowflake — официальный шаблон.
Откройте Snowflake — официальный шаблон и завершите процесс Подключить. Недостаточно включить шаблон, не подключив его.
Откройте Snowflake и убедитесь, что шаблон указан как необходимое приложение.
Убедитесь, что роль или группа затронутого участника разрешена политикой установки плагина.
Сервер MCP не найден
Повторно проверьте полный URL сервера MCP или четыре поля шаблона, если они отображаются на экране настройки.
Убедитесь, что сервер MCP существует именно в указанной базе данных и схеме.
Инструменты не отображаются в ChatGPT
Убедитесь, что спецификация сервера MCP содержит инструменты.
Убедитесь, что у роли есть разрешение
USAGEдля сервера MCP.
Инструмент отображается, но при использовании возникает ошибка
Убедитесь, что у роли есть необходимое разрешение для базового объекта Snowflake, например службы поиска, семантического представления, виртуального склада, процедуры или UDF.
Ошибка инструмента SQL
Убедитесь, что имя виртуального склада указано верно и он запущен.
Убедитесь, что у роли есть разрешение
USAGEдля виртуального склада.Если требовался доступ только для чтения, убедитесь, что задано
read_only: true.
Запрошенная роль ALL была явно заблокирована
Попросите администратора Snowflake сопоставить вашу роль по умолчанию со списками разрешенных и заблокированных ролей интеграции OAuth. Наличие другой разрешенной роли не приводит к ее автоматическому выбору. Если это уместно, назначьте одобренную роль ролью по умолчанию и подключитесь повторно. Изменение роли по умолчанию также влияет на сеансы Snowflake вне ChatGPT.
Ошибка авторизации
Убедитесь, что пользователь может войти в Snowflake.
При использовании
session:role:allубедитесь, что роль пользователя по умолчанию разрешена интеграцией OAuth.Убедитесь, что при настройке используется поток OAuth для управляемого Snowflake сервера MCP.
Убедитесь, что идентификатор и секрет клиента соответствуют интеграции OAuth Snowflake, а ее URI перенаправления совпадает с указанным в ChatGPT URL обратного вызова.
Сетевая политика или список разрешенных IP-адресов Snowflake блокирует коннектор
Попросите администратора Snowflake обновить сетевую политику или правила доступа Snowflake.
Разрешите входящие подключения из актуальных диапазонов исходящих IP-адресов коннектора ChatGPT.
Настройте этот список разрешений в Snowflake. Он не связан со списком разрешенных IP-адресов рабочей области ChatGPT.
По возможности автоматизируйте обновления на основе опубликованного JSON, поскольку диапазоны могут меняться.
Проблема с подключением по имени хоста
Используйте правильный префикс хоста Snowflake. Символы подчеркивания в именах хостов Snowflake могут вызывать проблемы; используйте дефисы.
