Это руководство предназначено для администраторов рабочих областей ChatGPT и пользователей ChatGPT Plus или Pro, которые хотят подключить ChatGPT к Snowflake через MCP-сервер под управлением Snowflake.
Большая часть настройки выполняется в Snowflake. Подготовив Snowflake, завершите подключение шаблона Snowflake в ChatGPT, а затем включите плагин Snowflake, который использует этот шаблон.
Встроенный OAuth: если этот вариант доступен для вашего аккаунта Snowflake и в ChatGPT, используйте партнёрское приложение ChatGPT, включённое администратором Snowflake. Войдите в Snowflake, используя единую аутентификацию (SSO) вашей организации, если она настроена. Вводить идентификатор и секрет клиента в ChatGPT не нужно. Следуйте инструкциям в разделе «Встроенный OAuth» ниже.
Собственный клиент OAuth: используйте этот вариант, если ваша организация требует использовать собственный клиент OAuth или встроенный OAuth недоступен. Следуйте инструкциям в разделе «Собственный клиент OAuth» ниже.
Для обоих вариантов OAuth необходимо выполнить описанные ниже общие шаги: настроить MCP-сервер, предоставить права на используемые объекты и обеспечить сетевой доступ. Перед настройкой OAuth выполните общие шаги вплоть до раздела «Введите данные сервера Snowflake в ChatGPT» включительно.
Что вы настраиваете
Вы создаёте MCP-сервер под управлением Snowflake, который служит конечной точкой коннектора для ChatGPT. MCP-сервер определяет:
Какие действия доступны ChatGPT.
К каким данным или объектам Snowflake имеют доступ эти инструменты.
Какую роль Snowflake каждый пользователь использует для авторизации.
Какие база данных, схема и имя MCP-сервера Snowflake определяют конечную точку.
Затем вы настраиваете Snowflake — Официальный шаблон в ChatGPT, указав полный URL управляемого MCP-сервера. На экране настройки шаблона URL может быть представлен четырьмя отдельными полями:
Префикс хоста Snowflake.
База данных.
Схема.
Имя MCP-сервера.
ChatGPT может обнаруживать и использовать только те инструменты, которые доступны через MCP-сервер и разрешены ролью Snowflake, используемой пользователем для авторизации.
Перед началом
Вам понадобятся:
Права администратора или владельца рабочей области ChatGPT либо доступ к ChatGPT Plus или 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 запрашивает URL.
Роль Snowflake: роль, которую пользователи должны использовать при авторизации приложения.
Список инструментов: объекты и действия Snowflake, которые вы хотите сделать доступными для ChatGPT.
Определите, что сможет делать ChatGPT
Выберите только те возможности, к которым хотите предоставить доступ. Типичные варианты:
Поиск ответов в проиндексированных данных или материалах Snowflake с помощью Cortex Search.
Ответы на вопросы с помощью 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.
Дополнительные параметры спецификации описаны в разделе «Создание MCP-сервера под управлением Snowflake».
Предоставьте необходимые разрешения в 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
Для настройки рабочей области откройте admin.openai.com, выберите нужную рабочую область 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
Используйте часть имени хоста перед .snowflakecomputing.com в URL вашего аккаунта Snowflake, включая суффиксы региона или облачной платформы, если они есть.
Например, если URL аккаунта начинается с:
https://myorg-myaccount.azure.snowflakecomputing.com
Префикс хоста:
myorg-myaccount.azure
База данных
Введите имя базы данных, содержащей MCP-сервер, например:
CHATGPT_APPS
Схема
Введите имя схемы, содержащей MCP-сервер, например:
TOOLS
Имя MCP-сервера
Введите имя объекта MCP-сервера Snowflake, например:
CHATGPT_SNOWFLAKE_MCP
Настройте OAuth
Выберите вариант OAuth, доступный для вашего аккаунта и соответствующий требованиям вашей организации. Для обоих вариантов нужно выполнить общую настройку MCP-сервера, описанную выше, а также проверить подключение и настроить доступ по инструкциям ниже.
В обоих вариантах OAuth при использовании session:role:all Snowflake выбирает роль каждого пользователя по умолчанию. Роль по умолчанию должна входить в список разрешённых ролей интеграции OAuth, если он настроен, и не должна быть заблокирована. Если у вас есть другая одобренная роль, она не выбирается автоматически.
Встроенный OAuth
Прежде чем продолжить, выполните общие шаги из разделов выше: создайте MCP-сервер, предоставьте разрешения, проверьте сервер и введите его данные в ChatGPT. Это необходимо, даже если вы перешли сразу к этому разделу.
Используйте этот вариант, только если партнёрское приложение ChatGPT доступно для вашего аккаунта Snowflake, а встроенный OAuth доступен в окне настройки ChatGPT.
Попросите администратора Snowflake включить партнёрскую интеграцию ChatGPT в том же аккаунте Snowflake, где размещён MCP-сервер. Используйте уже существующую включённую партнёрскую интеграцию ChatGPT.
В окне настройки ChatGPT выберите встроенный OAuth. Вводить идентификатор или секрет клиента и регистрировать URL обратного вызова не нужно.
Перейдите к разделу «Подключите Snowflake и настройте доступ» ниже, чтобы войти в аккаунт, предоставить согласие и настроить доступ. Затем выполните шаги из раздела «Проверьте приложение», в том числе проверки с участниками без прав администратора, которым разрешён доступ.
Описанные выше правила для роли по умолчанию, списка разрешённых ролей и заблокированных ролей действуют и для этого варианта.
Собственный клиент OAuth
Прежде чем продолжить, выполните общие шаги из разделов выше: создайте MCP-сервер, предоставьте разрешения, проверьте сервер и введите его данные в ChatGPT. Это необходимо, даже если вы перешли сразу к этому разделу.
Для собственного клиента OAuth вам понадобятся идентификатор и секрет клиента из Snowflake. Описанные выше правила для роли по умолчанию, списка разрешённых ролей и заблокированных ролей действуют и для этого варианта.
В окне настройки 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 и настройте доступ» и «Проверьте приложение» ниже.
Подключите Snowflake и настройте доступ
Для любого из вариантов OAuth в том же окне настройки ChatGPT выберите Продолжить, войдите в Snowflake и разрешите подключение. Вы можете использовать единую аутентификацию (SSO) вашей организации, если она настроена.
Для рабочей области настройте политику установки плагинов и доступ по ролям или группам для участников, которым нужен этот плагин. Убедитесь, что включены и Snowflake, и Snowflake — Официальный шаблон.
Администраторы рабочей области отвечают за настройку раздела Доступ пользователей для ролей, которым нужен Snowflake.
Администраторы рабочей области отвечают за проверку настроек в разделе Управление действиями для доступных инструментов.
Администраторы рабочей области отвечают за проверку раздела Разрешения приложения и выбор случаев, когда ChatGPT запрашивает согласие участников перед использованием приложения.
Эти разрешения приложения применяются к разговорам в ChatGPT. Для агентов рабочей области действуют индивидуальные настройки, заданные создателем каждого агента. Они определяют, какие действия приложения доступны и когда у конечных пользователей запрашивается подтверждение. Подробнее о работе агентов см. в статье «Агенты рабочей области ChatGPT для Enterprise и Business».
Проверьте приложение
Откройте чат, выберите Snowflake и проверьте подключение.
Убедитесь, что ChatGPT обнаруживает настроенные вами инструменты.
Сначала выполните операцию чтения с низким риском — например, поиск или запрос только для чтения к разрешённым данным.
Убедитесь, что разрешения Snowflake не допускают доступа за пределами одобренной роли и объектов.
Если вы настраиваете рабочую область, проведите проверку с участниками без прав администратора, которым разрешён доступ и у которых разные роли Snowflake по умолчанию. Успешное подключение администратора не означает, что подключиться смогут все участники.
Администраторам рабочей области недостаточно включить только Snowflake. Если Snowflake — Официальный шаблон не включён и не подключён, плагин может отображаться у участников как отключённый.
URL MCP-сервера и работа OAuth
ChatGPT подключается по полному URL MCP-сервера под управлением Snowflake:
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 для MCP-сервера под управлением Snowflake.
Если вы используете собственный клиент OAuth, убедитесь, что Идентификатор клиента и Секрет клиента соответствуют интеграции OAuth в Snowflake, а её URI перенаправления в точности совпадает с URL обратного вызова, указанным в ChatGPT.
Если вы используете встроенный OAuth, попросите администратора Snowflake проверить, что партнёрская интеграция ChatGPT доступна и включена в аккаунте, где размещён MCP-сервер.
Сетевая политика или список разрешённых IP-адресов Snowflake блокирует коннектор
Попросите администратора Snowflake обновить сетевую политику или правила доступа Snowflake.
Разрешите входящие подключения из актуальных диапазонов исходящих IP-адресов коннекторов ChatGPT.
Настройте этот список разрешённых адресов в Snowflake. Он не связан со списком разрешённых IP-адресов рабочей области ChatGPT.
По возможности автоматизируйте обновление списка на основе опубликованного JSON, поскольку диапазоны могут меняться.
Проблема подключения из-за имени хоста
Используйте правильный префикс хоста Snowflake. Имена хостов Snowflake с подчёркиваниями могут вызывать проблемы; предпочтительнее использовать дефисы.
