OpenAI
Questa pagina è stata tradotta automaticamente. Visualizza l'articolo originale in inglese.

Configurare il modello di app Snowflake in ChatGPT

Scopri come gli amministratori di un'area di lavoro ChatGPT e gli utenti ChatGPT Plus o ChatGPT Pro possono collegare ChatGPT a un server MCP gestito da Snowflake.

Aggiornato: 4 days ago

Usa questa guida se sei un amministratore di un'area di lavoro ChatGPT o un utente ChatGPT Plus o Pro e vuoi collegare ChatGPT a Snowflake tramite un server MCP gestito da Snowflake.

La maggior parte della configurazione avviene in Snowflake. Una volta pronto Snowflake, completa la connessione del modello Snowflake in ChatGPT, quindi abilita il plugin Snowflake che usa quel modello.

  • OAuth integrato: se disponibile per il tuo account Snowflake e in ChatGPT, usa l'applicazione partner ChatGPT abilitata da un amministratore Snowflake. Accedi a Snowflake usando l'SSO della tua organizzazione, se configurato. Non è necessario inserire un ID client o un segreto client in ChatGPT. Segui la sezione OAuth integrato qui sotto.

  • Client OAuth personalizzato: usa questa opzione se la tua organizzazione richiede un proprio client OAuth o se OAuth integrato non è disponibile. Segui la sezione Client OAuth personalizzato qui sotto.

Entrambe le opzioni OAuth richiedono la configurazione comune del server MCP, le autorizzazioni sugli oggetti sottostanti e l'accesso alla rete descritti qui sotto. Prima di configurare OAuth, completa la configurazione comune fino alla sezione Inserisci i dettagli del server Snowflake in ChatGPT inclusa.

Cosa stai configurando

Stai creando un server MCP gestito da Snowflake che funge da endpoint MCP per ChatGPT. Il server MCP definisce:

  • Quali azioni può usare ChatGPT.

  • A quali dati o oggetti di Snowflake possono accedere questi strumenti.

  • Quale ruolo Snowflake usa ciascun utente per concedere l'autorizzazione.

  • Quali database, schema e nome del server MCP di Snowflake identificano l'endpoint.

Configura quindi Snowflake - Modello ufficiale in ChatGPT con l'URL completo del server MCP gestito. La schermata di configurazione del modello potrebbe mostrare l'URL suddiviso in quattro campi:

  • Prefisso dell'host Snowflake.

  • Database.

  • Schema.

  • Nome del server MCP.

ChatGPT può individuare e usare solo gli strumenti esposti dal server MCP e consentiti dal ruolo Snowflake con cui l'utente concede l'autorizzazione.

Prima di iniziare

Ti servono:

  • Accesso come amministratore o proprietario di un'area di lavoro ChatGPT, oppure accesso a ChatGPT Plus o Pro.

  • Accesso a Snowflake con la possibilità di creare oggetti server MCP e concedere autorizzazioni.

  • Il database e lo schema di Snowflake che ospiteranno il server MCP.

  • Una decisione su cosa consentire a ChatGPT di usare, ad esempio Cortex Search, Cortex Analyst, SQL in sola lettura o una procedura o funzione specifica.

  • Un ruolo Snowflake con i soli privilegi necessari, che gli utenti useranno per autorizzare l'app.

  • Il prefisso dell'host dell'account Snowflake, inclusi eventuali suffissi relativi alla regione o al cloud.

Se il tuo account Snowflake limita l'accesso tramite criteri di rete o un elenco di indirizzi IP consentiti, chiedi a un amministratore Snowflake di consentire le connessioni in ingresso dagli attuali intervalli di indirizzi IP in uscita delle app di ChatGPT. L'elenco è dinamico e va mantenuto aggiornato.

Valori da preparare

  • Prefisso host Snowflake: tutto ciò che precede .snowflakecomputing.com nell'URL dell'account Snowflake.

  • Database: il database che contiene il server MCP.

  • Schema: lo schema che contiene il server MCP.

  • Nome del server MCP: il nome dell'oggetto server MCP Snowflake.

  • URL completo del server MCP gestito, se la schermata di configurazione di ChatGPT richiede un URL.

  • Ruolo Snowflake: il ruolo che gli utenti devono usare per autorizzare l'app.

  • Elenco degli strumenti: gli oggetti e le azioni Snowflake che vuoi far usare a ChatGPT.

Decidi cosa può fare ChatGPT

Seleziona solo le funzionalità che vuoi esporre. Le opzioni più comuni includono:

  • Ricerca con Cortex Search per trovare risposte nei dati o nei contenuti indicizzati di Snowflake.

  • Domande e risposte con Cortex Analyst tramite una vista semantica approvata.

  • SQL in sola lettura per un accesso controllato tramite query.

  • Un agente Snowflake, una stored procedure o una UDF per un flusso di lavoro specifico.

Se abiliti SQL, mantienilo in sola lettura, a meno che la tua organizzazione non abbia esaminato e approvato l'accesso in scrittura.

Apri un foglio di lavoro Snowflake

  1. Accedi all'app Snowflake.

  2. Passa a un ruolo che possa creare il server MCP e concedere l'accesso.

  3. Vai su Aree di lavoro.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Crea un'area di lavoro con un file SQL.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Imposta come contesto dell'area di lavoro il database e lo schema in cui verrà creato il server MCP.

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

Crea il server MCP Snowflake

In Snowflake, accedi con un ruolo che possa creare il server MCP e concedere l'accesso. Apri un foglio di lavoro nel database e nello schema in cui deve essere creato il server MCP.

Esegui un'istruzione come quella dell'esempio seguente. Sostituisci i nomi con quelli del tuo database Snowflake, dello schema, dei servizi, delle viste, del warehouse e del server.

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.

I nomi degli strumenti e gli oggetti Snowflake in questa istruzione sono esempi:

  • support-search espone il servizio Cortex Search specificato.

  • revenue-analyst espone la vista semantica specificata. Aggiungi strumenti per altre viste, se necessario.

  • sql-readonly espone SQL in sola lettura con il warehouse specificato.

Usa nomi stabili e descrittivi per gli strumenti, così ChatGPT potrà scegliere quello giusto. La creazione del server MCP non concede automaticamente l'accesso agli oggetti Snowflake sottostanti.

Per ulteriori opzioni di specifica, consulta: Creare un server MCP gestito da Snowflake.

Concedi le autorizzazioni Snowflake appropriate

Scegli il ruolo Snowflake con cui gli utenti concederanno l'autorizzazione, quindi concedi a quel ruolo l'accesso a:

  1. Il database e lo schema.

  2. Il server MCP.

  3. Ogni oggetto sottostante usato dagli strumenti, come un servizio di ricerca, una vista semantica o un warehouse.

Esempio:

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;

Se il server MCP espone una UDF, una stored procedure o un agente Cortex, concedi le autorizzazioni necessarie anche per quell'oggetto.

Verifica che Snowflake sia pronto

Esegui:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Poi esegui:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Verifica che:

  • Il server esista nel database e nello schema previsti.

  • L'elenco degli strumenti corrisponda a quello desiderato.

  • L'identifier di ogni strumento punti all'oggetto Snowflake corretto.

  • Il ruolo usato per la connessione disponga del privilegio USAGE sul server MCP.

  • Il ruolo usato per la connessione disponga delle autorizzazioni necessarie su ogni oggetto sottostante.

Inserisci i dettagli del server Snowflake in ChatGPT

Per configurare un'area di lavoro, apri admin.openai.com, seleziona l'area di lavoro ChatGPT desiderata e apri Plugin. Per informazioni sulla navigazione nell'area di lavoro e sull'accesso alle app legacy, consulta Controlli di amministrazione, sicurezza e conformità per plugin e app.

  1. In ChatGPT, passa all'account o all'area di lavoro in cui l'app deve essere disponibile.

  2. Vai su Impostazioni > Plugin per una configurazione personale oppure, come amministratore di un'area di lavoro, su Console di amministrazione > Plugin per configurare l'area di lavoro.

  3. Cerca Snowflake.

  4. Abilita Snowflake - Modello ufficiale.

  5. Apri Snowflake - Modello ufficiale, inserisci un nome chiaro per la connessione e seleziona Connetti.

  6. Inserisci l'URL completo del server MCP gestito:

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

Esempio:

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.

Se la schermata di configurazione mostra la configurazione di Snowflake in campi separati, usa gli stessi valori dell'URL:

Prefisso host Snowflake

Usa tutto ciò che precede .snowflakecomputing.com nell'URL del tuo account Snowflake, incluso l'eventuale suffisso della regione o del cloud.

Ad esempio, se l'URL dell'account inizia con:

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

Il prefisso host è:

myorg-myaccount.azure

Database

Inserisci il database che contiene il server MCP, ad esempio:

CHATGPT_APPS

Schema

Inserisci lo schema che contiene il server MCP, ad esempio:

TOOLS

Nome del server MCP

Inserisci il nome dell'oggetto server MCP Snowflake, ad esempio:

CHATGPT_SNOWFLAKE_MCP

Configura OAuth

Scegli l'opzione OAuth disponibile per il tuo account che soddisfa i requisiti della tua organizzazione. Entrambe le opzioni usano la configurazione comune del server MCP descritta sopra e i test di connessione e i controlli di accesso descritti sotto.

Con entrambe le opzioni OAuth, quando usi session:role:all, Snowflake usa il ruolo predefinito di ciascun utente. Il ruolo predefinito deve essere incluso nell'elenco di ruoli consentiti dell'integrazione OAuth, se configurato, e non deve essere bloccato. Il fatto di avere un altro ruolo approvato non comporta la sua selezione automatica.

OAuth integrato

Prima di continuare, completa le sezioni comuni qui sopra per creare il server MCP, concedere le autorizzazioni, verificare il server e inserirne i dettagli in ChatGPT. Questo passaggio è necessario anche se hai aperto direttamente questa sezione.

Usa questa opzione solo quando l'applicazione partner ChatGPT è disponibile per il tuo account Snowflake e OAuth integrato è disponibile nella finestra di configurazione di ChatGPT.

  1. Chiedi a un amministratore Snowflake di abilitare l'integrazione partner ChatGPT nello stesso account Snowflake che ospita il server MCP. Riutilizza un'integrazione partner ChatGPT già esistente e abilitata.

  2. Nella finestra di configurazione di ChatGPT, usa OAuth integrato. Non è necessario inserire un ID client o un segreto client né registrare un URL di callback.

  3. Prosegui con la sezione Connetti e gestisci Snowflake qui sotto per accedere, concedere il consenso e configurare l'accesso. Completa quindi la sezione Testa l'app, inclusi i test con membri autorizzati non amministratori.

Il comportamento descritto sopra per il ruolo predefinito, l'elenco di ruoli consentiti e i ruoli bloccati si applica anche a questa opzione.

Client OAuth personalizzato

Prima di continuare, completa le sezioni comuni qui sopra per creare il server MCP, concedere le autorizzazioni, verificare il server e inserirne i dettagli in ChatGPT. Questo passaggio è necessario anche se hai aperto direttamente questa sezione.

Per un client OAuth personalizzato, ti servono un ID client e un segreto client forniti da Snowflake. Il comportamento descritto sopra per il ruolo predefinito, l'elenco di ruoli consentiti e i ruoli bloccati si applica anche a questa opzione.

  1. Nella finestra di configurazione di ChatGPT, seleziona Impostazioni OAuth avanzate > Client OAuth definito dall'utente e copia esattamente l'URL di callback mostrato in ChatGPT.

  2. Crea un'integrazione di sicurezza OAuth personalizzata con OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' e OAUTH_REDIRECT_URI impostato esattamente su quell'URL di callback.

  3. Esegui la seguente istruzione in Snowflake, usando il nome dell'integrazione in maiuscolo:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Dal risultato JSON, incolla oauth_client_id in ID client OAuth e oauth_client_secret in Segreto client OAuth in ChatGPT.

  5. Imposta Metodo di autenticazione dell'endpoint del token su client_secret_basic.

Dopo aver inserito le credenziali del client personalizzato, prosegui con le sezioni Connetti e gestisci Snowflake e Testa l'app qui sotto.

Collegare e gestire Snowflake

  1. Per entrambe le modalità OAuth, nella stessa finestra di configurazione di ChatGPT, seleziona Continua, accedi a Snowflake e autorizza la connessione. Puoi usare l'SSO della tua organizzazione, se configurato.

  2. Se stai configurando un'area di lavoro, verifica che siano abilitati sia Snowflake sia Snowflake - Modello ufficiale. In Enterprise ed Edu, configura i criteri di installazione del plugin e l'Accesso utente di ogni app inclusa per i ruoli assegnati ai membri o ai gruppi interessati. In Business, gestisci i criteri di installazione del plugin e la disponibilità delle app in tutta l'area di lavoro.

  3. Gli amministratori dell'area di lavoro sono responsabili della verifica del Controllo delle azioni per gli strumenti esposti.

  4. Gli amministratori dell'area di lavoro sono responsabili della verifica delle Autorizzazioni dell'app per scegliere quando ChatGPT chiede conferma ai membri prima di usare l'app.

Queste autorizzazioni dell'app si applicano alle conversazioni di ChatGPT. Gli agenti dell'area di lavoro usano controlli specifici impostati da chi ha creato ciascun agente per determinare quali azioni delle app sono disponibili e quando viene chiesto agli utenti finali di approvarle. Per informazioni sul comportamento degli agenti, consulta: Agenti dell'area di lavoro di ChatGPT per Enterprise e Business.

Testa l'app

  1. Apri una chat, seleziona Snowflake e testa la connessione.

  2. Verifica che ChatGPT individui gli strumenti che hai configurato.

  3. Esegui prima un'azione di lettura a basso rischio, come una ricerca o una query in sola lettura sui dati approvati.

  4. Verifica che le autorizzazioni Snowflake impediscano l'accesso al di fuori del ruolo e degli oggetti approvati.

  5. Per la configurazione di un'area di lavoro, esegui test con membri autorizzati non amministratori che abbiano ruoli Snowflake predefiniti diversi. Il successo della connessione di un amministratore non garantisce che tutti i membri possano connettersi.

Per gli amministratori dell'area di lavoro, abilitare solo Snowflake non è sufficiente. Se Snowflake - Modello ufficiale non è stato abilitato e connesso, il plugin potrebbe risultare disabilitato per i membri.

URL del server MCP e funzionamento di OAuth

ChatGPT si connette all'URL completo del server MCP gestito da Snowflake:

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

ChatGPT usa il prefisso host Snowflake di quell'URL per determinare questi endpoint OAuth di Snowflake:

  • Autorizzazione: https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorize

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

Non incollare un URL di Snowsight, il solo URL radice dell'account Snowflake o un URL con segmenti di percorso aggiuntivi. L'URL MCP deve includere /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} e corrispondere esattamente ai tuoi oggetti Snowflake.

Risoluzione dei problemi

Snowflake è abilitato per un amministratore ma disabilitato per un membro

  • Verifica che siano abilitati sia Snowflake sia Snowflake - Modello ufficiale in Console di amministrazione > Plugin.

  • Apri Snowflake - Modello ufficiale e completa la procedura Connetti. Abilitare il modello senza connetterlo non è sufficiente.

  • Apri Snowflake e verifica che il modello compaia come app richiesta.

  • Verifica che il ruolo o il gruppo del membro interessato sia consentito dai criteri di installazione del plugin.

Server MCP non trovato

  • Ricontrolla l'URL completo del server MCP oppure i quattro campi del modello, se richiesti dalla schermata di configurazione.

  • Verifica che il server MCP esista esattamente nel database e nello schema indicati.

In ChatGPT non compare alcuno strumento

  • Verifica che la specifica del server MCP includa degli strumenti.

  • Verifica che il ruolo disponga del privilegio USAGE sul server MCP.

Uno strumento è visibile ma non funziona quando viene usato

  • Verifica che il ruolo disponga dell'autorizzazione richiesta sull'oggetto Snowflake sottostante, come il servizio di ricerca, la vista semantica, il warehouse, la procedura o la UDF.

Lo strumento SQL non funziona

  • Verifica che il nome del warehouse sia corretto e che il warehouse sia in esecuzione.

  • Verifica che il ruolo disponga del privilegio USAGE sul warehouse.

  • Verifica che sia impostato read_only: true se desideri un accesso in sola lettura.

Il ruolo ALL richiesto è stato esplicitamente bloccato

Chiedi al tuo amministratore Snowflake di confrontare il tuo ruolo predefinito con i ruoli consentiti e bloccati dall'integrazione OAuth. Il fatto di avere un altro ruolo consentito non comporta la sua selezione automatica. Se opportuno, imposta come predefinito un ruolo approvato e riconnettiti. La modifica del ruolo predefinito influisce anche sulle tue sessioni Snowflake al di fuori di ChatGPT.

L'autorizzazione non riesce

  • Verifica che l'utente riesca ad accedere a Snowflake.

  • Se usi session:role:all, verifica che il ruolo predefinito dell'utente sia consentito dall'integrazione OAuth.

  • Verifica che la configurazione usi il flusso OAuth per MCP gestito da Snowflake.

  • Se usi un client OAuth personalizzato, verifica che ID client e Segreto client corrispondano all'integrazione OAuth di Snowflake e che il relativo URI di reindirizzamento corrisponda esattamente all'URL di callback mostrato in ChatGPT.

    Se usi OAuth integrato, chiedi a un amministratore Snowflake di verificare che l'integrazione partner ChatGPT sia disponibile e abilitata nell'account che ospita il server MCP.

I criteri di rete o l'elenco di indirizzi IP consentiti di Snowflake bloccano l'app

  • Chiedi a un amministratore Snowflake di aggiornare i criteri di rete o le regole di accesso di Snowflake.

  • Consenti le connessioni in ingresso dagli attuali intervalli di indirizzi IP in uscita delle app di ChatGPT.

  • Configura questo elenco di indirizzi consentiti in Snowflake. È distinto dall'elenco di indirizzi IP consentiti dell'area di lavoro ChatGPT.

  • Quando possibile, automatizza gli aggiornamenti a partire dal JSON pubblicato, perché gli intervalli possono cambiare.

Problema di connessione legato al nome host

Usa il prefisso host Snowflake corretto. I nomi host Snowflake con trattini bassi possono causare problemi; usa preferibilmente trattini.

Questo articolo è stato utile?