OpenAI
Esta página se tradujo automáticamente. Ver el artículo original en inglés.

Configurar la plantilla de app de Snowflake en ChatGPT

Descubre cómo los administradores del Espacio de trabajo de ChatGPT y los usuarios de ChatGPT Plus o ChatGPT Pro pueden conectar ChatGPT a un servidor MCP administrado por Snowflake.

Última actualización: 4 hours ago

Usa esta guía si eres administrador de un Espacio de trabajo de ChatGPT o usuario de ChatGPT Plus o Pro y quieres conectar ChatGPT a Snowflake mediante un servidor MCP administrado por Snowflake.

La mayor parte de la configuración se realiza en Snowflake. Una vez que Snowflake esté listo, completa la conexión de la plantilla de Snowflake en ChatGPT y luego habilita el complemento de Snowflake que usa esa plantilla.

  • OAuth integrado: cuando esté disponible para tu cuenta de Snowflake y en ChatGPT, usa la aplicación asociada de ChatGPT habilitada por un administrador de Snowflake. Inicia sesión en Snowflake con el SSO de tu organización, si está configurado. No necesitas ingresar un ID de cliente ni un secreto de cliente en ChatGPT. Sigue las instrucciones de la sección “OAuth integrado” más abajo.

  • Cliente OAuth personalizado: usa esta opción si tu organización requiere su propio cliente OAuth o si OAuth integrado no está disponible. Sigue las instrucciones de la sección “Cliente OAuth personalizado” más abajo.

Ambas opciones de OAuth requieren la configuración común del servidor MCP, los permisos sobre los objetos subyacentes y el acceso de red que se describen a continuación. Antes de configurar OAuth, completa la configuración común hasta la sección “Ingresa los datos del servidor de Snowflake en ChatGPT”, incluida.

Qué vas a configurar

Vas a crear un servidor MCP administrado por Snowflake que funciona como punto de acceso del conector para ChatGPT. El servidor MCP define:

  • Qué acciones puede usar ChatGPT.

  • A qué datos u objetos de Snowflake pueden acceder esas herramientas.

  • Con qué rol de Snowflake autoriza la conexión cada usuario.

  • Qué base de datos, esquema y nombre de servidor MCP de Snowflake identifican el punto de acceso.

Luego, configura Snowflake - Plantilla oficial en ChatGPT con la URL completa del servidor MCP administrado. La pantalla de configuración de la plantilla puede mostrar la URL en cuatro campos separados:

  • Prefijo de host de Snowflake.

  • Base de datos.

  • Esquema.

  • Nombre del servidor MCP.

ChatGPT solo puede detectar y usar las herramientas expuestas por el servidor MCP y permitidas por el rol de Snowflake con el que el usuario autoriza la conexión.

Antes de empezar

Necesitas:

  • Acceso de administrador o propietario de un Espacio de trabajo de ChatGPT, o acceso a ChatGPT Plus o Pro.

  • Acceso a Snowflake que permita crear objetos de servidor MCP y otorgar permisos.

  • La base de datos y el esquema de Snowflake donde se alojará el servidor MCP.

  • Una decisión sobre lo que ChatGPT podrá hacer, como usar Cortex Search, Cortex Analyst, SQL de solo lectura o un procedimiento o una función específicos.

  • Un rol de Snowflake con los privilegios mínimos necesarios que los usuarios usarán al autorizar la aplicación.

  • El prefijo de host de la cuenta de Snowflake, incluido cualquier sufijo de región o nube.

Si tu cuenta de Snowflake restringe el acceso mediante una política de red o una lista de IP permitidas, pide a un administrador de Snowflake que permita las conexiones entrantes desde los rangos de IP de salida de los conectores de ChatGPT vigentes. La lista es dinámica y debe mantenerse actualizada.

Valores que debes preparar

  • Prefijo de host de Snowflake: todo lo que aparece antes de .snowflakecomputing.com en la URL de la cuenta de Snowflake.

  • Base de datos: la base de datos que contiene el servidor MCP.

  • Esquema: el esquema que contiene el servidor MCP.

  • Nombre del servidor MCP: el nombre del objeto de servidor MCP de Snowflake.

  • URL completa del servidor MCP administrado, si la pantalla de configuración de ChatGPT solicita una URL.

  • Rol de Snowflake: el rol que los usuarios deben usar al autorizar la aplicación.

  • Lista de herramientas: los objetos y las acciones de Snowflake que quieres que ChatGPT use.

Decide qué puede hacer ChatGPT

Selecciona solo las capacidades que quieras poner a disposición. Algunas opciones habituales son:

  • Búsquedas con Cortex Search para encontrar respuestas en datos o contenido indexados de Snowflake.

  • Preguntas y respuestas con Cortex Analyst mediante una vista semántica aprobada.

  • SQL de solo lectura para un acceso controlado a las consultas.

  • Un agente de Snowflake, un procedimiento almacenado o una UDF para un flujo de trabajo específico.

Si habilitas SQL, mantenlo en modo de solo lectura, a menos que tu organización haya revisado y aprobado el acceso de escritura.

Abre una hoja de trabajo de Snowflake

  1. Inicia sesión en la aplicación de Snowflake.

  2. Cambia a un rol que permita crear el servidor MCP y otorgar acceso.

  3. Ve a Espacios de trabajo.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Crea un espacio de trabajo con un archivo SQL.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Establece como contexto del espacio de trabajo la base de datos y el esquema donde se creará el servidor MCP.

    Snowflake worksheet context picker showing the role, warehouse, database, and schema.

Crea el servidor MCP de Snowflake

Inicia sesión en Snowflake con un rol que permita crear el servidor MCP y otorgar acceso. Abre una hoja de trabajo en la base de datos y el esquema donde se deba crear el servidor MCP.

Ejecuta una instrucción como la del siguiente ejemplo. Reemplaza los nombres por los de tu base de datos, esquema, servicios, vistas, almacén y servidor de 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 result confirming that the MCP server was successfully created.

Los nombres de las herramientas y los objetos de Snowflake en esta instrucción son ejemplos:

  • support-search permite acceder al servicio de Cortex Search especificado.

  • revenue-analyst permite acceder a la vista semántica especificada. Agrega herramientas para otras vistas según lo necesites.

  • sql-readonly permite usar SQL de solo lectura con el almacén especificado.

Usa nombres estables y descriptivos para las herramientas, de modo que ChatGPT pueda elegir la adecuada. Crear el servidor MCP no otorga acceso automático a los objetos subyacentes de Snowflake.

Para conocer más opciones de especificación, consulta Crear un servidor MCP administrado por Snowflake.

Otorga los permisos adecuados de Snowflake

Elige el rol de Snowflake con el que los usuarios autorizarán la conexión y luego otórgale acceso a:

  1. La base de datos y el esquema.

  2. El servidor MCP.

  3. Todos los objetos subyacentes que usan las herramientas, como un servicio de búsqueda, una vista semántica o un almacén.

Ejemplo:

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;

Si el servidor MCP expone una UDF, un procedimiento almacenado o un agente de Cortex, otorga también los permisos necesarios para ese objeto.

Verifica que Snowflake esté listo

Ejecuta:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Luego ejecuta:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Confirma lo siguiente:

  • El servidor existe en la base de datos y el esquema previstos.

  • La lista de herramientas coincide con la que querías configurar.

  • El campo identifier de cada herramienta apunta al objeto correcto de Snowflake.

  • El rol usado para conectarse tiene el permiso USAGE sobre el servidor MCP.

  • El rol usado para conectarse tiene los permisos necesarios sobre cada objeto subyacente.

Ingresa los datos del servidor de Snowflake en ChatGPT

Para configurar un Espacio de trabajo, abre admin.openai.com, selecciona el Espacio de trabajo de ChatGPT correspondiente y abre Complementos. Para obtener información sobre la navegación en el Espacio de trabajo y el acceso a aplicaciones heredadas, consulta Controles de administración, seguridad y cumplimiento para complementos y aplicaciones.

  1. En ChatGPT, cambia a la cuenta o al Espacio de trabajo donde deba estar disponible la aplicación.

  2. Ve a Configuración > Complementos para una configuración personal o a Consola de administración > Complementos como administrador para configurar un Espacio de trabajo.

  3. Busca Snowflake.

  4. Habilita Snowflake - Plantilla oficial.

  5. Abre Snowflake - Plantilla oficial, ingresa un nombre claro para la conexión y selecciona Conectar.

  6. Ingresa la URL completa del servidor MCP administrado:

https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}

Ejemplo:

https://myorg-myaccount.azure.snowflakecomputing.com/api/v2/databases/CHATGPT_APPS/schemas/TOOLS/mcp-servers/CHATGPT_SNOWFLAKE_MCP

ChatGPT Snowflake Template connection form with name, managed MCP server URL, and OAuth settings.

Si la pantalla de configuración muestra la configuración de Snowflake en campos separados, usa los mismos valores de la URL:

Prefijo de host de Snowflake

Usa todo lo que aparece antes de .snowflakecomputing.com en la URL de tu cuenta de Snowflake, incluido cualquier sufijo de región o nube.

Por ejemplo, si la URL de la cuenta comienza con:

https://myorg-myaccount.azure.snowflakecomputing.com

El prefijo de host es:

myorg-myaccount.azure

Base de datos

Ingresa la base de datos que contiene el servidor MCP, por ejemplo:

CHATGPT_APPS

Esquema

Ingresa el esquema que contiene el servidor MCP, por ejemplo:

TOOLS

Nombre del servidor MCP

Ingresa el nombre del objeto de servidor MCP de Snowflake, por ejemplo:

CHATGPT_SNOWFLAKE_MCP

Configura OAuth

Elige la opción de OAuth que esté disponible para tu cuenta y cumpla los requisitos de tu organización. Ambas opciones usan la configuración común del servidor MCP descrita arriba, así como las pruebas de conexión y los controles de acceso que se describen a continuación.

En cualquiera de las opciones de OAuth, cuando usas session:role:all, Snowflake usa el rol predeterminado de cada usuario. El rol predeterminado debe estar incluido en la lista de roles permitidos de la integración OAuth, si está configurada, y no debe estar bloqueado. Tener otro rol aprobado no hace que se seleccione automáticamente.

OAuth integrado

Antes de continuar, completa las secciones comunes anteriores para crear el servidor MCP, otorgar permisos, verificar el servidor e ingresar sus datos en ChatGPT. Este paso es obligatorio, incluso si llegaste directamente a esta sección.

Usa esta opción solo si la aplicación asociada de ChatGPT está disponible para tu cuenta de Snowflake y OAuth integrado está disponible en el cuadro de configuración de ChatGPT.

  1. Pide a un administrador de Snowflake que habilite la integración asociada de ChatGPT en la misma cuenta de Snowflake que aloja el servidor MCP. Reutiliza una integración asociada de ChatGPT que ya esté habilitada.

  2. En el cuadro de configuración de ChatGPT, usa OAuth integrado. No necesitas ingresar un ID de cliente ni un secreto de cliente, ni registrar una URL de devolución de llamada.

  3. Continúa con la sección “Conecta y administra Snowflake” más abajo para iniciar sesión, dar tu consentimiento y configurar el acceso. Luego, completa la sección “Prueba la aplicación”, incluidas las pruebas con miembros autorizados que no sean administradores.

El funcionamiento del rol predeterminado, la lista de roles permitidos y los roles bloqueados que se describe arriba también se aplica a esta opción.

Cliente OAuth personalizado

Antes de continuar, completa las secciones comunes anteriores para crear el servidor MCP, otorgar permisos, verificar el servidor e ingresar sus datos en ChatGPT. Este paso es obligatorio, incluso si llegaste directamente a esta sección.

Para un cliente OAuth personalizado, necesitas un ID de cliente y un secreto de cliente de Snowflake. El funcionamiento del rol predeterminado, la lista de roles permitidos y los roles bloqueados que se describe arriba también se aplica a esta opción.

  1. En el cuadro de configuración de ChatGPT, selecciona Configuración avanzada de OAuth > Cliente OAuth definido por el usuario y copia exactamente la URL de devolución de llamada que aparece en ChatGPT.

  2. Crea una integración de seguridad OAuth personalizada con OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' y configura OAUTH_REDIRECT_URI con esa URL exacta de devolución de llamada.

  3. Ejecuta la siguiente instrucción en Snowflake con el nombre de la integración en mayúsculas:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Del resultado JSON, pega oauth_client_id en ID de cliente OAuth y oauth_client_secret en Secreto de cliente OAuth en ChatGPT.

  5. Configura el Método de autenticación del punto de acceso de tokens como client_secret_basic.

Después de ingresar las credenciales del cliente personalizado, continúa con las secciones “Conecta y administra Snowflake” y “Prueba la aplicación” más abajo.

Conecta y administra Snowflake

  1. Para cualquiera de las opciones de OAuth, en el mismo cuadro de configuración de ChatGPT, selecciona Continuar, inicia sesión en Snowflake y autoriza la conexión. Puedes usar el SSO de tu organización si está configurado.

  2. Para configurar un Espacio de trabajo, define la política de instalación del complemento y el acceso por rol o grupo para los miembros que deban usarlo. Verifica que tanto Snowflake como Snowflake - Plantilla oficial estén habilitados.

  3. Los administradores del Espacio de trabajo son responsables de configurar el Acceso de usuarios para los roles que deban usar Snowflake.

  4. Los administradores del Espacio de trabajo son responsables de revisar el Control de acciones para las herramientas expuestas.

  5. Los administradores del Espacio de trabajo son responsables de revisar los Permisos de la aplicación para elegir cuándo ChatGPT debe pedir autorización a los miembros antes de usarla.

Estos permisos de la aplicación se aplican a las conversaciones de ChatGPT. Los agentes del Espacio de trabajo usan controles individuales definidos por el creador de cada agente para determinar qué acciones de la aplicación están disponibles y cuándo se pide a los usuarios finales que las aprueben. Para obtener información sobre el comportamiento de los agentes, consulta Agentes del Espacio de trabajo de ChatGPT para Enterprise y Business.

Prueba la aplicación

  1. Abre un chat, selecciona Snowflake y prueba la conexión.

  2. Confirma que ChatGPT detecte las herramientas que configuraste.

  3. Primero ejecuta una acción de lectura de bajo riesgo, como una búsqueda o una consulta de solo lectura sobre datos aprobados.

  4. Confirma que los permisos de Snowflake impidan el acceso fuera del rol y los objetos aprobados.

  5. Para configurar un Espacio de trabajo, haz pruebas con miembros autorizados que no sean administradores y que tengan distintos roles predeterminados de Snowflake. Que un administrador se conecte correctamente no confirma que todos los miembros puedan conectarse.

Si eres administrador de un Espacio de trabajo, no basta con habilitar solo Snowflake. Si Snowflake - Plantilla oficial no se ha habilitado y conectado, el complemento puede aparecer deshabilitado para los miembros.

URL del servidor MCP y funcionamiento de OAuth

ChatGPT se conecta a la URL completa del servidor MCP administrado por Snowflake:

https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}

ChatGPT usa el prefijo de host de Snowflake de esa URL para resolver estos puntos de acceso de OAuth de Snowflake:

  • Autorización: https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorize

  • Token: https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/token-request

No pegues una URL de Snowsight, solo la URL raíz de la cuenta de Snowflake ni una URL con segmentos de ruta adicionales. La URL de MCP debe incluir /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} y coincidir exactamente con tus objetos de Snowflake.

Solución de problemas

Snowflake está habilitado para un administrador, pero deshabilitado para un miembro

  • Confirma que tanto Snowflake como Snowflake - Plantilla oficial estén habilitados en Consola de administración > Complementos.

  • Abre Snowflake - Plantilla oficial y completa el flujo de Conectar. No basta con habilitar la plantilla sin conectarla.

  • Abre Snowflake y confirma que la plantilla aparezca como su aplicación requerida.

  • Confirma que la política de instalación del complemento permita el rol o grupo del miembro afectado.

No se encuentra el servidor MCP

  • Vuelve a revisar la URL completa del servidor MCP o los cuatro campos de la plantilla, si la pantalla de configuración los solicita.

  • Confirma que el servidor MCP exista exactamente en esa base de datos y ese esquema.

No aparecen herramientas en ChatGPT

  • Confirma que la especificación del servidor MCP incluya herramientas.

  • Confirma que el rol tenga el permiso USAGE sobre el servidor MCP.

Una herramienta aparece, pero falla al usarla

  • Confirma que el rol tenga el permiso necesario sobre el objeto subyacente de Snowflake, como el servicio de búsqueda, la vista semántica, el almacén, el procedimiento o la UDF.

La herramienta SQL falla

  • Confirma que el nombre del almacén sea correcto y que el almacén esté en ejecución.

  • Confirma que el rol tenga el permiso USAGE sobre el almacén.

  • Si buscas un acceso de solo lectura, confirma que esté configurado read_only: true.

El rol ALL solicitado se bloqueó explícitamente

Pide a tu administrador de Snowflake que compare tu rol predeterminado con los roles permitidos y bloqueados de la integración OAuth. Tener otro rol permitido no hace que se seleccione automáticamente. Si corresponde, cambia el rol predeterminado por uno aprobado y vuelve a conectarte. Cambiar tu rol predeterminado también afecta tus sesiones de Snowflake fuera de ChatGPT.

La autorización falla

  • Confirma que el usuario pueda iniciar sesión en Snowflake.

  • Si usas session:role:all, confirma que la integración OAuth permita el rol predeterminado del usuario.

  • Confirma que la configuración use el flujo OAuth para MCP administrado por Snowflake.

  • Si usas un cliente OAuth personalizado, confirma que el ID de cliente y el Secreto de cliente coincidan con los de la integración OAuth de Snowflake y que su URI de redirección coincida exactamente con la URL de devolución de llamada que aparece en ChatGPT.

    Si usas OAuth integrado, pide a un administrador de Snowflake que verifique que la integración asociada de ChatGPT esté disponible y habilitada en la cuenta que aloja el servidor MCP.

La política de red o la lista de IP permitidas de Snowflake bloquea el conector

  • Pide a un administrador de Snowflake que actualice la política de red o las reglas de acceso de Snowflake.

  • Permite las conexiones entrantes desde los rangos de IP de salida de los conectores de ChatGPT vigentes.

  • Configura esta lista de IP permitidas en Snowflake. Es independiente de la lista de IP permitidas del Espacio de trabajo de ChatGPT.

  • Siempre que sea posible, automatiza las actualizaciones a partir del JSON publicado, ya que los rangos pueden cambiar.

Problema de conexión con el nombre de host

Usa el prefijo de host correcto de Snowflake. Los nombres de host de Snowflake con guiones bajos pueden causar problemas; usa guiones en su lugar.

¿Este artículo te fue útil?