OpenAI
Deze pagina is automatisch vertaald. Bekijk het oorspronkelijke Engelstalige artikel.

De Snowflake-appsjabloon instellen in ChatGPT

Lees hoe beheerders van een ChatGPT-werkruimte en gebruikers van ChatGPT Plus of Pro ChatGPT kunnen verbinden met een door Snowflake beheerde MCP-server.

Bijgewerkt: 4 hours ago

Gebruik deze handleiding als je beheerder van een ChatGPT-werkruimte of gebruiker van ChatGPT Plus of Pro bent en ChatGPT wilt verbinden met Snowflake via een door Snowflake beheerde MCP-server.

Het grootste deel van de configuratie vindt plaats in Snowflake. Zodra Snowflake klaar is, voltooi je de verbinding met de Snowflake-sjabloon in ChatGPT. Schakel daarna de Snowflake-plug-in in die deze sjabloon gebruikt.

  • Ingebouwde OAuth: Gebruik de ChatGPT-partnerapplicatie die een Snowflake-beheerder heeft ingeschakeld, als deze beschikbaar is voor je Snowflake-account en in ChatGPT. Meld je aan bij Snowflake en gebruik daarbij de SSO van je organisatie als deze is geconfigureerd. Je hoeft in ChatGPT geen client-ID of clientgeheim in te voeren. Volg de onderstaande sectie Ingebouwde OAuth.

  • Aangepaste OAuth-client: Gebruik deze optie als je organisatie een eigen OAuth-client vereist of als ingebouwde OAuth niet beschikbaar is. Volg de onderstaande sectie Aangepaste OAuth-client.

Beide OAuth-opties vereisen de hieronder beschreven algemene MCP-serverconfiguratie, machtigingen voor onderliggende objecten en netwerktoegang. Voltooi de algemene configuratie tot en met Voer de Snowflake-servergegevens in ChatGPT in voordat je OAuth configureert.

Wat je gaat instellen

Je maakt een door Snowflake beheerde MCP-server die als connector-endpoint voor ChatGPT fungeert. De MCP-server bepaalt:

  • Welke acties ChatGPT kan gebruiken.

  • Tot welke Snowflake-gegevens of -objecten die tools toegang hebben.

  • Met welke Snowflake-rol elke gebruiker autorisatie verleent.

  • Welke Snowflake-database, welk schema en welke MCP-servernaam het endpoint identificeren.

Vervolgens configureer je Snowflake - Officiële sjabloon in ChatGPT met de volledige URL van de beheerde MCP-server. Het configuratiescherm van de sjabloon kan de URL als vier afzonderlijke velden weergeven:

  • Snowflake-hostprefix.

  • Database.

  • Schema.

  • MCP-servernaam.

ChatGPT kan alleen tools vinden en gebruiken die de MCP-server beschikbaar stelt en die zijn toegestaan voor de Snowflake-rol waarmee de gebruiker autorisatie verleent.

Voordat je begint

Je hebt het volgende nodig:

  • Toegang als beheerder of eigenaar van een ChatGPT-werkruimte, of toegang tot ChatGPT Plus of Pro.

  • Snowflake-toegang waarmee je MCP-serverobjecten kunt maken en machtigingen kunt verlenen.

  • De Snowflake-database en het schema waarin de MCP-server komt te staan.

  • Een keuze voor wat ChatGPT mag doen, zoals Cortex Search, Cortex Analyst, alleen-lezen-SQL of een specifieke procedure of functie gebruiken.

  • Een Snowflake-rol met minimale rechten die gebruikers zullen gebruiken om de app te autoriseren.

  • Het hostprefix van het Snowflake-account, inclusief een eventueel regio- of cloudsuffix.

Als je Snowflake-account de toegang beperkt via een netwerkbeleid of een lijst met toegestane IP-adressen, vraag dan een Snowflake-beheerder om inkomende verbindingen toe te staan vanuit de huidige IP-bereiken voor uitgaand verkeer van ChatGPT-connectors. De lijst verandert en moet actueel worden gehouden.

Waarden om bij de hand te houden

  • Snowflake-hostprefix: alles vóór .snowflakecomputing.com in de URL van het Snowflake-account.

  • Database: de database die de MCP-server bevat.

  • Schema: het schema dat de MCP-server bevat.

  • MCP-servernaam: de objectnaam van de Snowflake-MCP-server.

  • De volledige URL van de beheerde MCP-server, als het configuratiescherm van ChatGPT om een URL vraagt.

  • Snowflake-rol: de rol die gebruikers moeten gebruiken om de app te autoriseren.

  • Toollijst: de Snowflake-objecten en -acties die je ChatGPT wilt laten gebruiken.

Bepaal wat ChatGPT mag doen

Selecteer alleen de mogelijkheden die je beschikbaar wilt stellen. Veelgebruikte opties zijn:

  • Zoeken met Cortex Search om antwoorden te vinden in geïndexeerde Snowflake-gegevens of -inhoud.

  • Vragen beantwoorden met Cortex Analyst via een goedgekeurde semantische view.

  • Alleen-lezen-SQL voor gecontroleerde toegang via query's.

  • Een Snowflake Agent, opgeslagen procedure of UDF voor een specifieke workflow.

Als je SQL inschakelt, beperk dit dan tot alleen-lezen, tenzij je organisatie schrijftoegang heeft beoordeeld en goedgekeurd.

Open een Snowflake-werkblad

  1. Meld je aan bij de Snowflake-app.

  2. Schakel over naar een rol waarmee je de MCP-server kunt maken en toegang kunt verlenen.

  3. Ga naar Werkruimten.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Maak een werkruimte met een SQL-bestand.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Stel de werkruimtecontext in op de database en het schema waarin de MCP-server wordt gemaakt.

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

Maak de Snowflake-MCP-server

Meld je in Snowflake aan met een rol waarmee je de MCP-server kunt maken en toegang kunt verlenen. Open een werkblad in de database en het schema waarin de MCP-server moet worden gemaakt.

Voer een instructie uit zoals in het volgende voorbeeld. Vervang de namen door je eigen Snowflake-database, schema, services, views, warehouse en servernaam.

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.

De toolnamen en Snowflake-objecten in deze instructie zijn voorbeelden:

  • support-search stelt de opgegeven Cortex Search-service beschikbaar.

  • revenue-analyst stelt de opgegeven semantische view beschikbaar. Voeg zo nodig tools voor andere views toe.

  • sql-readonly stelt alleen-lezen-SQL beschikbaar met het opgegeven warehouse.

Gebruik vaste, beschrijvende toolnamen, zodat ChatGPT de juiste tool kan kiezen. Het maken van de MCP-server verleent niet automatisch toegang tot de onderliggende Snowflake-objecten.

Zie voor aanvullende specificatieopties: Een door Snowflake beheerde MCP-server maken.

Verleen de juiste Snowflake-machtigingen

Kies de Snowflake-rol waarmee gebruikers autorisatie verlenen en geef die rol vervolgens toegang tot:

  1. De database en het schema.

  2. De MCP-server.

  3. Elk onderliggend object dat de tools gebruiken, zoals een zoekservice, semantische view of warehouse.

Voorbeeld:

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;

Als de MCP-server een UDF, opgeslagen procedure of Cortex Agent beschikbaar stelt, verleen dan ook de vereiste machtigingen voor dat object.

Controleer of Snowflake klaar is

Voer het volgende uit:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Voer daarna het volgende uit:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Controleer het volgende:

  • De server bestaat in de verwachte database en het verwachte schema.

  • De toollijst komt overeen met wat je voor ogen had.

  • De identifier van elke tool verwijst naar het juiste Snowflake-object.

  • De rol waarmee verbinding wordt gemaakt, heeft USAGE op de MCP-server.

  • De rol waarmee verbinding wordt gemaakt, heeft de benodigde machtigingen voor elk onderliggend object.

Voer de Snowflake-servergegevens in ChatGPT in

  1. Schakel in ChatGPT over naar het account of de werkruimte waarin de app beschikbaar moet zijn.

  2. Ga naar Instellingen > Plug-ins voor een persoonlijke configuratie, of ga als werkruimtebeheerder naar Werkruimte-instellingen > Plug-ins voor een werkruimteconfiguratie.

  3. Zoek naar Snowflake.

  4. Schakel Snowflake - Officiële sjabloon in.

  5. Open Snowflake - Officiële sjabloon, voer een duidelijke verbindingsnaam in en selecteer Verbinden.

  6. Voer de volledige URL van de beheerde MCP-server in:

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

Voorbeeld:

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.

Als het configuratiescherm de Snowflake-configuratie als afzonderlijke velden weergeeft, gebruik dan dezelfde waarden als in de URL:

Snowflake-hostprefix

Gebruik alles vóór .snowflakecomputing.com in de URL van je Snowflake-account, inclusief een eventueel regio- of cloudsuffix.

Als de account-URL bijvoorbeeld begint met:

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

Dan is het hostprefix:

myorg-myaccount.azure

Database

Voer de database in die de MCP-server bevat, zoals:

CHATGPT_APPS

Schema

Voer het schema in dat de MCP-server bevat, zoals:

TOOLS

MCP-servernaam

Voer de objectnaam van de Snowflake-MCP-server in, zoals:

CHATGPT_SNOWFLAKE_MCP

Configureer OAuth

Kies de OAuth-optie die beschikbaar is voor je account en aan de vereisten van je organisatie voldoet. Beide opties gebruiken de bovenstaande algemene MCP-serverconfiguratie en de onderstaande verbindingstests en toegangsinstellingen.

Voor beide OAuth-opties geldt dat Snowflake de standaardrol van elke gebruiker gebruikt wanneer je session:role:all gebruikt. De standaardrol moet zijn toegestaan volgens de lijst met toegestane rollen van de OAuth-integratie, als die is geconfigureerd, en mag niet geblokkeerd zijn. Als een gebruiker ook een andere goedgekeurde rol heeft, wordt die niet automatisch geselecteerd.

Ingebouwde OAuth

Voltooi voordat je verdergaat de bovenstaande algemene secties om de MCP-server te maken, machtigingen te verlenen, de server te controleren en de servergegevens in ChatGPT in te voeren. Dit is ook vereist als je rechtstreeks naar deze sectie bent gegaan.

Gebruik deze optie alleen als de ChatGPT-partnerapplicatie beschikbaar is voor je Snowflake-account en ingebouwde OAuth beschikbaar is in het configuratievenster van ChatGPT.

  1. Vraag een Snowflake-beheerder om de ChatGPT-partnerintegratie in te schakelen in hetzelfde Snowflake-account als waarin de MCP-server wordt gehost. Hergebruik een bestaande ingeschakelde ChatGPT-partnerintegratie.

  2. Gebruik ingebouwde OAuth in het configuratievenster van ChatGPT. Je hoeft geen client-ID of clientgeheim in te voeren en geen callback-URL te registreren.

  3. Ga verder met de onderstaande sectie Snowflake verbinden en beheren om je aan te melden, toestemming te geven en toegang te configureren. Voltooi daarna Test de app, inclusief tests met toegelaten leden zonder beheerdersrechten.

De hierboven beschreven werking van de standaardrol, de lijst met toegestane rollen en geblokkeerde rollen geldt ook voor deze optie.

Aangepaste OAuth-client

Voltooi voordat je verdergaat de bovenstaande algemene secties om de MCP-server te maken, machtigingen te verlenen, de server te controleren en de servergegevens in ChatGPT in te voeren. Dit is ook vereist als je rechtstreeks naar deze sectie bent gegaan.

Voor een aangepaste OAuth-client heb je een client-ID en clientgeheim van Snowflake nodig. De hierboven beschreven werking van de standaardrol, de lijst met toegestane rollen en geblokkeerde rollen geldt ook voor deze optie.

  1. Selecteer in het configuratievenster van ChatGPT Geavanceerde OAuth-instellingen > Door gebruiker gedefinieerde OAuth-client en kopieer de exacte Callback-URL die in ChatGPT wordt weergegeven.

  2. Maak een aangepaste OAuth-beveiligingsintegratie met OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' en stel OAUTH_REDIRECT_URI in op die exacte callback-URL.

  3. Voer de volgende instructie uit in Snowflake, met de integratienaam in hoofdletters:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Plak vanuit het JSON-resultaat oauth_client_id in OAuth-client-ID en oauth_client_secret in OAuth-clientgeheim in ChatGPT.

  5. Stel Verificatiemethode voor token-endpoint in op client_secret_basic.

Ga na het invoeren van de aangepaste clientgegevens verder met de onderstaande secties Snowflake verbinden en beheren en Test de app.

Snowflake verbinden en beheren

  1. Selecteer voor beide OAuth-opties Doorgaan in hetzelfde configuratievenster van ChatGPT, meld je aan bij Snowflake en autoriseer de verbinding. Je kunt de SSO van je organisatie gebruiken als deze is geconfigureerd.

  2. Configureer voor een werkruimte het installatiebeleid voor de plug-in en de toegang op basis van rollen of groepen voor de leden die de plug-in moeten kunnen gebruiken. Controleer of zowel Snowflake als Snowflake - Officiële sjabloon is ingeschakeld.

  3. Werkruimtebeheerders zijn verantwoordelijk voor het configureren van Gebruikerstoegang voor de rollen die Snowflake moeten kunnen gebruiken.

  4. Werkruimtebeheerders zijn verantwoordelijk voor het controleren van Actiebeheer voor de beschikbaar gestelde tools.

  5. Werkruimtebeheerders zijn verantwoordelijk voor het controleren van App-machtigingen om te bepalen wanneer ChatGPT leden om toestemming vraagt voordat de app wordt gebruikt.

Deze app-machtigingen gelden voor ChatGPT-gesprekken. Werkruimte-agents gebruiken instellingen per agent die de bouwer van de agent vastlegt. Deze bepalen welke app-acties beschikbaar zijn en wanneer eindgebruikers om goedkeuring worden gevraagd. Zie voor de werking van agents: ChatGPT-werkruimte-agents voor Enterprise en Business.

Test de app

  1. Open een chat, selecteer Snowflake en test de verbinding.

  2. Controleer of ChatGPT de tools vindt die je hebt geconfigureerd.

  3. Voer eerst een leesactie met een laag risico uit, zoals een zoekopdracht of een alleen-lezen-query op goedgekeurde gegevens.

  4. Controleer of de Snowflake-machtigingen toegang buiten de goedgekeurde rol en objecten voorkomen.

  5. Test een werkruimteconfiguratie met toegelaten leden zonder beheerdersrechten die verschillende standaardrollen in Snowflake hebben. Een geslaagde verbinding voor een beheerder bevestigt niet dat elk lid verbinding kan maken.

Voor werkruimtebeheerders is het niet voldoende om alleen Snowflake in te schakelen. Als Snowflake - Officiële sjabloon niet is ingeschakeld en verbonden, kan de plug-in voor leden als uitgeschakeld worden weergegeven.

MCP-server-URL en de werking van OAuth

ChatGPT maakt verbinding met de volledige URL van de door Snowflake beheerde MCP-server:

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

ChatGPT gebruikt het Snowflake-hostprefix uit die URL om deze Snowflake-OAuth-endpoints te bepalen:

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

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

Plak geen Snowsight-URL, alleen de basis-URL van het Snowflake-account of een URL met extra padsegmenten. De MCP-URL moet /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} bevatten en exact overeenkomen met je Snowflake-objecten.

Problemen oplossen

Snowflake is ingeschakeld voor een beheerder, maar uitgeschakeld voor een lid

  • Controleer of zowel Snowflake als Snowflake - Officiële sjabloon is ingeschakeld in Werkruimte-instellingen > Plug-ins.

  • Open Snowflake - Officiële sjabloon en doorloop alle stappen onder Verbinden. Alleen de sjabloon inschakelen zonder deze te verbinden is niet voldoende.

  • Open Snowflake en controleer of de sjabloon als vereiste app wordt weergegeven.

  • Controleer of de rol of groep van het betreffende lid is toegestaan volgens het installatiebeleid voor de plug-in.

MCP-server niet gevonden

  • Controleer de volledige MCP-server-URL opnieuw, of de vier sjabloonvelden als je configuratiescherm daarom vraagt.

  • Controleer of de MCP-server in precies die database en dat schema bestaat.

Er verschijnen geen tools in ChatGPT

  • Controleer of de MCP-serverspecificatie tools bevat.

  • Controleer of de rol USAGE heeft op de MCP-server.

Een tool verschijnt, maar werkt niet wanneer je deze gebruikt

  • Controleer of de rol de vereiste machtiging heeft voor het onderliggende Snowflake-object, zoals de zoekservice, semantische view, het warehouse, de procedure of de UDF.

De SQL-tool werkt niet

  • Controleer of de warehousenaam juist is en of het warehouse actief is.

  • Controleer of de rol USAGE heeft op het warehouse.

  • Controleer of read_only: true is ingesteld als je alleen leestoegang wilt toestaan.

De aangevraagde rol ALL is expliciet geblokkeerd

Vraag je Snowflake-beheerder om je standaardrol te vergelijken met de toegestane en geblokkeerde rollen van de OAuth-integratie. Als je ook een andere toegestane rol hebt, wordt die niet automatisch geselecteerd. Wijzig de standaardrol zo nodig in een goedgekeurde rol en maak opnieuw verbinding. Het wijzigen van je standaardrol heeft ook gevolgen voor je Snowflake-sessies buiten ChatGPT.

Autorisatie mislukt

  • Controleer of de gebruiker zich kan aanmelden bij Snowflake.

  • Controleer bij gebruik van session:role:all of de standaardrol van de gebruiker is toegestaan door de OAuth-integratie.

  • Controleer of de configuratie de OAuth-procedure voor door Snowflake beheerde MCP-servers gebruikt.

  • Als je een aangepaste OAuth-client gebruikt, controleer dan of de Client-ID en het Clientgeheim overeenkomen met de Snowflake-OAuth-integratie en of de omleidings-URI daarvan exact overeenkomt met de Callback-URL die in ChatGPT wordt weergegeven.

    Als je ingebouwde OAuth gebruikt, vraag dan een Snowflake-beheerder om te controleren of de ChatGPT-partnerintegratie beschikbaar en ingeschakeld is in het account waarin de MCP-server wordt gehost.

Het Snowflake-netwerkbeleid of de lijst met toegestane IP-adressen blokkeert de connector

  • Vraag een Snowflake-beheerder om het Snowflake-netwerkbeleid of de toegangsregels bij te werken.

  • Sta inkomende verbindingen toe vanuit de huidige IP-bereiken voor uitgaand verkeer van ChatGPT-connectors.

  • Configureer deze lijst met toegestane IP-adressen in Snowflake. Deze staat los van de lijst met toegestane IP-adressen voor de ChatGPT-werkruimte.

  • Automatiseer waar mogelijk het bijwerken vanuit de gepubliceerde JSON, omdat de bereiken kunnen veranderen.

Verbindingsprobleem met de hostnaam

Gebruik het juiste Snowflake-hostprefix. Snowflake-hostnamen met underscores kunnen problemen veroorzaken. Gebruik bij voorkeur koppeltekens.

Referenties

Was dit artikel nuttig?