OpenAI
Diese Seite wurde maschinell übersetzt. Den Originalartikel auf Englisch ansehen.

Snowflake-App-Vorlage in ChatGPT einrichten

Hier erfährst du, wie ChatGPT-Workspace-Admins und Personen mit ChatGPT Plus oder Pro ChatGPT mit einem von Snowflake verwalteten MCP-Server verbinden.

Aktualisiert: this minute

Diese Anleitung richtet sich an dich, wenn du einen ChatGPT-Workspace verwaltest oder ChatGPT Plus oder Pro nutzt und ChatGPT über einen von Snowflake verwalteten MCP-Server mit Snowflake verbinden möchtest.

Die Einrichtung erfolgt größtenteils in Snowflake. Sobald Snowflake bereit ist, stelle in ChatGPT die Verbindung über die Snowflake-Vorlage her. Aktiviere anschließend das Snowflake-Plugin, das diese Vorlage verwendet.

  • Integriertes OAuth: Wenn es für dein Snowflake-Konto und in ChatGPT verfügbar ist, verwende die ChatGPT-Partneranwendung, die von der Snowflake-Administration aktiviert wurde. Melde dich bei Snowflake an. Nutze dafür das SSO deiner Organisation, falls es konfiguriert ist. Du musst in ChatGPT weder eine Client-ID noch ein Client-Secret eingeben. Folge dem Abschnitt „Integriertes OAuth“ weiter unten.

  • Benutzerdefinierter OAuth-Client: Wähle diesen Weg, wenn deine Organisation einen eigenen OAuth-Client benötigt oder integriertes OAuth nicht verfügbar ist. Folge dem Abschnitt „Benutzerdefinierter OAuth-Client“ weiter unten.

Beide OAuth-Varianten erfordern die unten beschriebene gemeinsame Einrichtung des MCP-Servers, Berechtigungen für die zugrunde liegenden Objekte und Netzwerkzugriff. Schließe die gemeinsame Einrichtung bis einschließlich „Snowflake-Serverdetails in ChatGPT eingeben“ ab, bevor du OAuth konfigurierst.

Was du einrichtest

Du erstellst einen von Snowflake verwalteten MCP-Server, der als Connector-Endpunkt für ChatGPT dient. Der MCP-Server legt fest:

  • Welche Aktionen ChatGPT nutzen kann.

  • Auf welche Snowflake-Daten oder -Objekte diese Tools zugreifen können.

  • Mit welcher Snowflake-Rolle jede Person die Autorisierung durchführt.

  • Welche Snowflake-Datenbank, welches Schema und welcher MCP-Servername den Endpunkt identifizieren.

Anschließend konfigurierst du Snowflake - Official Template in ChatGPT mit der vollständigen URL des verwalteten MCP-Servers. Die Einrichtungsansicht der Vorlage zeigt die URL möglicherweise in vier separaten Feldern an:

  • Snowflake-Hostpräfix.

  • Datenbank.

  • Schema.

  • MCP-Servername.

ChatGPT kann nur Tools erkennen und verwenden, die der MCP-Server bereitstellt und die durch die zur Autorisierung verwendete Snowflake-Rolle erlaubt sind.

Bevor du beginnst

Du brauchst:

  • Admin- oder Eigentumsrechte für einen ChatGPT-Workspace oder Zugriff auf ChatGPT Plus oder Pro.

  • Einen Snowflake-Zugang mit Berechtigung zum Erstellen von MCP-Serverobjekten und zum Vergeben von Berechtigungen.

  • Die Snowflake-Datenbank und das Schema, in denen der MCP-Server liegen soll.

  • Eine Entscheidung darüber, was ChatGPT tun darf, etwa Cortex Search, Cortex Analyst, schreibgeschütztes SQL oder eine bestimmte Prozedur oder Funktion nutzen.

  • Eine Snowflake-Rolle mit minimal erforderlichen Berechtigungen, die bei der Autorisierung der App verwendet wird.

  • Das Hostpräfix des Snowflake-Kontos einschließlich etwaiger Regions- oder Cloud-Suffixe.

Wenn dein Snowflake-Konto den Zugriff durch eine Netzwerkrichtlinie oder IP-Zulassungsliste einschränkt, bitte die Snowflake-Administration, eingehende Verbindungen aus den aktuellen IP-Bereichen für ausgehende ChatGPT-Connector-Verbindungen zuzulassen. Die Liste ist dynamisch und sollte aktuell gehalten werden.

Diese Werte solltest du bereithalten

  • Snowflake-Hostpräfix: alles vor .snowflakecomputing.com in der URL des Snowflake-Kontos.

  • Datenbank: die Datenbank, die den MCP-Server enthält.

  • Schema: das Schema, das den MCP-Server enthält.

  • MCP-Servername: der Name des Snowflake-MCP-Serverobjekts.

  • Vollständige URL des verwalteten MCP-Servers, falls die ChatGPT-Einrichtungsansicht eine URL abfragt.

  • Snowflake-Rolle: die Rolle, die bei der Autorisierung der App verwendet werden soll.

  • Tool-Liste: die Snowflake-Objekte und -Aktionen, die ChatGPT verwenden soll.

Festlegen, was ChatGPT tun darf

Wähle nur die Funktionen aus, die du bereitstellen möchtest. Gängige Optionen sind:

  • Suche mit Cortex Search, um Antworten in indexierten Snowflake-Daten oder -Inhalten zu finden.

  • Fragen und Antworten mit Cortex Analyst über eine freigegebene semantische Ansicht.

  • Schreibgeschütztes SQL für kontrollierten Abfragezugriff.

  • Ein Snowflake Agent, eine gespeicherte Prozedur oder eine UDF für einen bestimmten Workflow.

Wenn du SQL aktivierst, beschränke es auf Lesezugriff, sofern deine Organisation den Schreibzugriff nicht geprüft und freigegeben hat.

Ein Snowflake-Arbeitsblatt öffnen

  1. Melde dich in der Snowflake-App an.

  2. Wechsle zu einer Rolle, die den MCP-Server erstellen und Zugriff gewähren kann.

  3. Gehe zu Arbeitsbereiche.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Erstelle einen Arbeitsbereich mit einer SQL-Datei.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Lege als Kontext des Arbeitsbereichs die Datenbank und das Schema fest, in denen der MCP-Server erstellt werden soll.

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

Den Snowflake-MCP-Server erstellen

Melde dich in Snowflake mit einer Rolle an, die den MCP-Server erstellen und Zugriff gewähren kann. Öffne ein Arbeitsblatt in der Datenbank und dem Schema, in denen der MCP-Server erstellt werden soll.

Führe eine Anweisung wie im folgenden Beispiel aus. Ersetze die Namen durch die deiner eigenen Snowflake-Datenbank, deines Schemas, deiner Dienste, Ansichten und deines Warehouses sowie durch deinen Servernamen.

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.

Die Tool-Namen und Snowflake-Objekte in dieser Anweisung sind Beispiele:

  • support-search stellt den angegebenen Cortex Search-Dienst bereit.

  • revenue-analyst stellt die angegebene semantische Ansicht bereit. Füge bei Bedarf Tools für weitere Ansichten hinzu.

  • sql-readonly stellt schreibgeschütztes SQL mit dem angegebenen Warehouse bereit.

Verwende beständige, aussagekräftige Tool-Namen, damit ChatGPT das richtige Tool auswählen kann. Durch das Erstellen des MCP-Servers wird nicht automatisch Zugriff auf die zugrunde liegenden Snowflake-Objekte gewährt.

Weitere Spezifikationsoptionen findest du im Abschnitt Einen von Snowflake verwalteten MCP-Server erstellen.

Die richtigen Snowflake-Berechtigungen vergeben

Wähle die Snowflake-Rolle aus, die bei der Autorisierung verwendet wird, und gewähre ihr Zugriff auf:

  1. Die Datenbank und das Schema.

  2. Den MCP-Server.

  3. Alle zugrunde liegenden Objekte, die von den Tools verwendet werden, etwa einen Suchdienst, eine semantische Ansicht oder ein Warehouse.

Beispiel:

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;

Wenn der MCP-Server eine UDF, eine gespeicherte Prozedur oder einen Cortex Agent bereitstellt, vergib auch die erforderlichen Berechtigungen für dieses Objekt.

Prüfen, ob Snowflake bereit ist

Führe Folgendes aus:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Führe anschließend Folgendes aus:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Prüfe Folgendes:

  • Der Server ist in der vorgesehenen Datenbank und im vorgesehenen Schema vorhanden.

  • Die Tool-Liste entspricht deiner Planung.

  • Der identifier jedes Tools verweist auf das richtige Snowflake-Objekt.

  • Die für die Verbindung verwendete Rolle hat die Berechtigung USAGE für den MCP-Server.

  • Die für die Verbindung verwendete Rolle hat die erforderlichen Berechtigungen für jedes zugrunde liegende Objekt.

Snowflake-Serverdetails in ChatGPT eingeben

  1. Wechsle in ChatGPT zu dem Konto oder Workspace, in dem die App verfügbar sein soll.

  2. Gehe für eine persönliche Einrichtung zu Einstellungen > Plugins oder für eine Workspace-Einrichtung mit Admin-Rechten zu Workspace-Einstellungen > Plugins.

  3. Suche nach Snowflake.

  4. Aktiviere Snowflake - Official Template.

  5. Öffne Snowflake - Official Template, gib einen eindeutigen Verbindungsnamen ein und wähle Verbinden.

  6. Gib die vollständige URL des verwalteten MCP-Servers ein:

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

Beispiel:

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.

Wenn die Einrichtungsansicht die Snowflake-Konfiguration in separaten Feldern anzeigt, verwende dieselben Werte aus der URL:

Snowflake-Hostpräfix

Verwende alles vor .snowflakecomputing.com in der URL deines Snowflake-Kontos, einschließlich etwaiger Regions- oder Cloud-Suffixe.

Wenn die Konto-URL beispielsweise so beginnt:

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

Dann lautet das Hostpräfix:

myorg-myaccount.azure

Datenbank

Gib die Datenbank ein, die den MCP-Server enthält, zum Beispiel:

CHATGPT_APPS

Schema

Gib das Schema ein, das den MCP-Server enthält, zum Beispiel:

TOOLS

MCP-Servername

Gib den Namen des Snowflake-MCP-Serverobjekts ein, zum Beispiel:

CHATGPT_SNOWFLAKE_MCP

OAuth konfigurieren

Wähle die OAuth-Variante, die für dein Konto verfügbar ist und die Anforderungen deiner Organisation erfüllt. Beide Varianten nutzen die oben beschriebene gemeinsame MCP-Servereinrichtung sowie die unten beschriebenen Verbindungstests und Zugriffskontrollen.

Wenn du session:role:all verwendest, nutzt Snowflake bei beiden OAuth-Varianten die Standardrolle der jeweiligen Person. Die Standardrolle muss durch die Rollenzulassungsliste der OAuth-Integration erlaubt sein, falls diese konfiguriert ist, und darf nicht gesperrt sein. Eine andere freigegebene Rolle wird nicht automatisch ausgewählt, nur weil sie der Person ebenfalls zugewiesen ist.

Integriertes OAuth

Schließe zunächst die gemeinsamen Abschnitte oben ab: Erstelle den MCP-Server, vergib Berechtigungen, prüfe den Server und gib seine Details in ChatGPT ein. Das ist auch dann erforderlich, wenn du direkt zu diesem Abschnitt gelangt bist.

Nutze diesen Weg nur, wenn die ChatGPT-Partneranwendung für dein Snowflake-Konto und integriertes OAuth im ChatGPT-Einrichtungsdialog verfügbar sind.

  1. Bitte die Snowflake-Administration, die ChatGPT-Partnerintegration in demselben Snowflake-Konto zu aktivieren, in dem der MCP-Server gehostet wird. Verwende eine bereits aktivierte ChatGPT-Partnerintegration erneut.

  2. Nutze im ChatGPT-Einrichtungsdialog das integrierte OAuth. Du musst weder eine Client-ID oder ein Client-Secret eingeben noch eine Callback-URL registrieren.

  3. Fahre unten mit „Snowflake verbinden und verwalten“ fort, um dich anzumelden, deine Zustimmung zu erteilen und den Zugriff zu konfigurieren. Führe anschließend die Schritte im Abschnitt „Die App testen“ durch, einschließlich der Tests mit zugriffsberechtigten Mitgliedern ohne Admin-Rechte.

Das oben beschriebene Verhalten bei Standardrollen, Zulassungslisten und gesperrten Rollen gilt auch für diesen Weg.

Benutzerdefinierter OAuth-Client

Schließe zunächst die gemeinsamen Abschnitte oben ab: Erstelle den MCP-Server, vergib Berechtigungen, prüfe den Server und gib seine Details in ChatGPT ein. Das ist auch dann erforderlich, wenn du direkt zu diesem Abschnitt gelangt bist.

Für einen benutzerdefinierten OAuth-Client benötigst du eine Client-ID und ein Client-Secret von Snowflake. Das oben beschriebene Verhalten bei Standardrollen, Zulassungslisten und gesperrten Rollen gilt auch für diesen Weg.

  1. Wähle im ChatGPT-Einrichtungsdialog Erweiterte OAuth-Einstellungen > Benutzerdefinierter OAuth-Client und kopiere die in ChatGPT angezeigte Callback-URL exakt.

  2. Erstelle eine benutzerdefinierte OAuth-Sicherheitsintegration mit OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' und setze OAUTH_REDIRECT_URI auf genau diese Callback-URL.

  3. Führe die folgende Anweisung in Snowflake aus und gib den Integrationsnamen in Großbuchstaben an:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Kopiere aus dem JSON-Ergebnis oauth_client_id in das Feld OAuth-Client-ID und oauth_client_secret in das Feld OAuth-Client-Secret in ChatGPT.

  5. Setze die Authentifizierungsmethode für den Token-Endpunkt auf client_secret_basic.

Nachdem du die benutzerdefinierten Client-Zugangsdaten eingegeben hast, fahre unten mit „Snowflake verbinden und verwalten“ und „Die App testen“ fort.

Snowflake verbinden und verwalten

  1. Wähle bei beiden OAuth-Varianten im selben ChatGPT-Einrichtungsdialog Weiter, melde dich bei Snowflake an und autorisiere die Verbindung. Du kannst das SSO deiner Organisation verwenden, falls es konfiguriert ist.

  2. Konfiguriere bei einer Workspace-Einrichtung die Plugin-Installationsrichtlinie sowie den rollen- oder gruppenbasierten Zugriff für die Mitglieder, die das Plugin nutzen sollen. Prüfe, ob sowohl Snowflake als auch Snowflake - Official Template aktiviert sind.

  3. Die Workspace-Administration ist dafür verantwortlich, den Benutzerzugriff für die Rollen zu konfigurieren, die Snowflake nutzen sollen.

  4. Die Workspace-Administration ist dafür verantwortlich, die Aktionssteuerung für die bereitgestellten Tools zu prüfen.

  5. Die Workspace-Administration ist dafür verantwortlich, die App-Berechtigungen zu prüfen und festzulegen, wann ChatGPT Mitglieder vor der Nutzung der App um Zustimmung bittet.

Diese App-Berechtigungen gelten für ChatGPT-Unterhaltungen. Workspace Agents verwenden individuelle Steuerungseinstellungen, die von der Person festgelegt werden, die den jeweiligen Agenten erstellt. Diese Einstellungen bestimmen, welche App-Aktionen verfügbar sind und wann die Personen, die den Agenten nutzen, um Zustimmung gebeten werden. Informationen zum Verhalten von Agenten findest du im Artikel ChatGPT Workspace Agents für Enterprise und Business.

Die App testen

  1. Öffne einen Chat, wähle Snowflake und teste die Verbindung.

  2. Prüfe, ob ChatGPT die von dir konfigurierten Tools erkennt.

  3. Führe zuerst eine risikoarme Leseaktion aus, etwa eine Suche oder eine schreibgeschützte Abfrage freigegebener Daten.

  4. Prüfe, ob die Snowflake-Berechtigungen den Zugriff auf die freigegebene Rolle und die freigegebenen Objekte beschränken.

  5. Teste bei einer Workspace-Einrichtung mit zugriffsberechtigten Mitgliedern ohne Admin-Rechte, die unterschiedliche Snowflake-Standardrollen haben. Eine erfolgreiche Verbindung mit Admin-Rechten bestätigt nicht, dass jedes Mitglied eine Verbindung herstellen kann.

Für die Workspace-Administration reicht es nicht aus, nur Snowflake zu aktivieren. Wenn Snowflake - Official Template nicht aktiviert und verbunden wurde, kann das Plugin Mitgliedern als deaktiviert angezeigt werden.

MCP-Server-URL und OAuth-Verhalten

ChatGPT stellt die Verbindung über die vollständige URL des von Snowflake verwalteten MCP-Servers her:

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

ChatGPT verwendet das Snowflake-Hostpräfix aus dieser URL, um die folgenden Snowflake-OAuth-Endpunkte zu ermitteln:

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

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

Füge keine Snowsight-URL, keine reine Basis-URL des Snowflake-Kontos und keine URL mit zusätzlichen Pfadsegmenten ein. Die MCP-URL muss /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} enthalten und exakt mit deinen Snowflake-Objekten übereinstimmen.

Fehlerbehebung

Snowflake ist für eine Person mit Admin-Rechten aktiviert, für ein Mitglied aber deaktiviert

  • Prüfe, ob sowohl Snowflake als auch Snowflake - Official Template in Workspace-Einstellungen > Plugins aktiviert sind.

  • Öffne Snowflake - Official Template und schließe den Vorgang Verbinden ab. Es reicht nicht aus, die Vorlage zu aktivieren, ohne sie zu verbinden.

  • Öffne Snowflake und prüfe, ob die Vorlage als erforderliche App angezeigt wird.

  • Prüfe, ob die Rolle oder Gruppe des betroffenen Mitglieds durch die Plugin-Installationsrichtlinie zugelassen ist.

MCP-Server nicht gefunden

  • Prüfe die vollständige MCP-Server-URL erneut oder die vier Vorlagenfelder, falls deine Einrichtungsansicht diese abfragt.

  • Prüfe, ob der MCP-Server genau in dieser Datenbank und diesem Schema vorhanden ist.

In ChatGPT werden keine Tools angezeigt

  • Prüfe, ob die MCP-Serverspezifikation Tools enthält.

  • Prüfe, ob die Rolle die Berechtigung USAGE für den MCP-Server hat.

Ein Tool wird angezeigt, funktioniert aber nicht

  • Prüfe, ob die Rolle die erforderliche Berechtigung für das zugrunde liegende Snowflake-Objekt hat, etwa für den Suchdienst, die semantische Ansicht, das Warehouse, die Prozedur oder die UDF.

SQL-Tool funktioniert nicht

  • Prüfe, ob der Warehouse-Name korrekt ist und das Warehouse läuft.

  • Prüfe, ob die Rolle die Berechtigung USAGE für das Warehouse hat.

  • Prüfe, ob read_only: true gesetzt ist, wenn du ausschließlich Lesezugriff vorgesehen hast.

Die angeforderte Rolle ALL wurde ausdrücklich gesperrt

Bitte deine Snowflake-Administration, deine Standardrolle mit den zugelassenen und gesperrten Rollen der OAuth-Integration abzugleichen. Eine andere zugelassene Rolle wird nicht automatisch ausgewählt, nur weil sie dir ebenfalls zugewiesen ist. Ändere gegebenenfalls die Standardrolle in eine freigegebene Rolle und stelle die Verbindung erneut her. Eine Änderung deiner Standardrolle wirkt sich auch auf deine Snowflake-Sitzungen außerhalb von ChatGPT aus.

Autorisierung schlägt fehl

  • Prüfe, ob sich die betroffene Person bei Snowflake anmelden kann.

  • Wenn du session:role:all verwendest, prüfe, ob die Standardrolle der Person durch die OAuth-Integration zugelassen ist.

  • Prüfe, ob die Einrichtung den OAuth-Ablauf für von Snowflake verwaltete MCP-Server verwendet.

  • Wenn du einen benutzerdefinierten OAuth-Client verwendest, prüfe, ob Client-ID und Client-Secret mit der Snowflake-OAuth-Integration übereinstimmen und deren Redirect-URI exakt der in ChatGPT angezeigten Callback-URL entspricht.

    Wenn du integriertes OAuth verwendest, bitte die Snowflake-Administration zu prüfen, ob die ChatGPT-Partnerintegration in dem Konto, das den MCP-Server hostet, verfügbar und aktiviert ist.

Snowflake-Netzwerkrichtlinie oder IP-Zulassungsliste blockiert den Connector

  • Bitte die Snowflake-Administration, die Snowflake-Netzwerkrichtlinie oder die Zugriffsregeln zu aktualisieren.

  • Lasse eingehende Verbindungen aus den aktuellen IP-Bereichen für ausgehende ChatGPT-Connector-Verbindungen zu.

  • Konfiguriere diese Zulassungsliste in Snowflake. Sie ist von der IP-Zulassungsliste des ChatGPT-Workspaces unabhängig.

  • Automatisiere nach Möglichkeit die Aktualisierung anhand der veröffentlichten JSON-Datei, da sich die Bereiche ändern können.

Verbindungsproblem durch den Hostnamen

Verwende das korrekte Snowflake-Hostpräfix. Snowflake-Hostnamen mit Unterstrichen können Probleme verursachen. Verwende vorzugsweise Bindestriche.

Weiterführende Informationen

War dieser Artikel hilfreich?