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: 4 days ago

Dieser Leitfaden richtet sich an ChatGPT-Workspace-Admins sowie Personen mit ChatGPT Plus oder Pro, die ChatGPT über einen von Snowflake verwalteten MCP-Server mit Snowflake verbinden möchten.

Der Großteil der Einrichtung erfolgt in Snowflake. Wenn Snowflake bereit ist, richte in ChatGPT die Verbindung über die Snowflake-Vorlage ein und aktiviere anschließend das Snowflake-Plug-In, das diese Vorlage verwendet.

Was du einrichtest

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

  • Welche Aktionen ChatGPT verwenden kann.

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

  • Mit welcher Snowflake-Rolle sich die einzelnen Personen autorisieren.

  • 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. Auf dem Einrichtungsbildschirm kann die URL in vier separaten Feldern angezeigt werden:

  • Snowflake-Hostpräfix.

  • Datenbank.

  • Schema.

  • MCP-Servername.

ChatGPT kann nur Tools finden und verwenden, die der MCP-Server bereitstellt und die durch die Snowflake-Rolle zugelassen sind, mit der sich die jeweilige Person autorisiert.

Vorbereitung

Du benötigst:

  • Admin- oder Inhaberzugriff auf einen ChatGPT-Workspace oder Zugriff auf ChatGPT Plus oder Pro.

  • Snowflake-Zugriff zum Erstellen von MCP-Serverobjekten und Erteilen von Berechtigungen.

  • Die Snowflake-Datenbank und das Schema, in denen der MCP-Server angelegt wird.

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

  • Eine Snowflake-Rolle nach dem Prinzip der geringsten Rechte, die Personen bei der Autorisierung der App verwenden.

  • Das Hostpräfix des Snowflake-Kontos einschließlich eines etwaigen Regions- oder Cloudsuffixes.

Wenn dein Snowflake-Konto den Zugriff über eine Netzwerkrichtlinie oder IP-Zulassungsliste beschränkt, bitte einen Snowflake-Admin, eingehende Verbindungen aus den aktuellen ausgehenden IP-Adressbereichen des ChatGPT-Connectors zuzulassen. Die Liste ist dynamisch und sollte aktuell gehalten werden.

Vorzubereitende Werte

  • 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 Objektname des Snowflake-MCP-Servers.

  • Vollständige URL des verwalteten MCP-Servers, falls der ChatGPT-Einrichtungsbildschirm eine URL verlangt.

  • Snowflake-Rolle: die Rolle, die Personen bei der Autorisierung der App verwenden sollen.

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

Festlegen, was ChatGPT tun darf

Stelle nur die gewünschten Funktionen bereit. Häufig verwendete Optionen sind:

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

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

  • Schreibgeschütztes SQL für einen 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 genehmigt hat.

Ein Snowflake-Arbeitsblatt öffnen

  1. Melde dich bei der Snowflake-App an.

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

  3. Öffne Workspaces.

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

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

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

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 Namen deiner 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 Toolnamen 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 stabile, aussagekräftige Toolnamen, 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 unter Einen von Snowflake verwalteten MCP-Server erstellen.

Die richtigen Snowflake-Berechtigungen erteilen

Wähle die Snowflake-Rolle aus, mit der sich Personen autorisieren sollen, und gewähre dieser Rolle anschließend Zugriff auf:

  1. Die Datenbank und das Schema.

  2. Den MCP-Server.

  3. Alle von den Tools verwendeten zugrunde liegenden Objekte, 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, erteile 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;

Bestätige Folgendes:

  • Der Server befindet sich in der erwarteten Datenbank und im erwarteten Schema.

  • Die Toolliste entspricht deinen Vorgaben.

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

  • Die für die Verbindung verwendete Rolle hat 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. Öffne Einstellungen. Öffne als Workspace-Admin für eine Workspace-weite Einrichtung die Workspace-Einstellungen.

  3. Öffne Plug-Ins.

  4. Suche nach Snowflake.

  5. Aktiviere Snowflake - Official Template.

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

  7. 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 der Einrichtungsbildschirm die Snowflake-Konfiguration in separaten Feldern anzeigt, verwende dieselben Werte wie in der URL:

Snowflake-Hostpräfix

Verwende alles vor .snowflakecomputing.com in der URL deines Snowflake-Kontos, einschließlich eines etwaigen Regions- oder Cloudsuffixes.

Wenn die Konto-URL beispielsweise wie folgt 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 Objektnamen des Snowflake-MCP-Servers ein, zum Beispiel:

CHATGPT_SNOWFLAKE_MCP

OAuth-Client konfigurieren

Für die Verbindung benötigst du eine Client-ID und ein Client-Secret von Snowflake.

Bei Verwendung von session:role:all nutzt Snowflake die Standardrolle der jeweiligen Person. Die Standardrolle muss durch die Rollenzulassungsliste der OAuth-Integration zugelassen sein, sofern diese konfiguriert ist, und darf nicht blockiert sein. Eine andere genehmigte Rolle wird nicht automatisch ausgewählt.

  1. Öffne im ChatGPT-Einrichtungsdialog die Erweiterten OAuth-Einstellungen, wähle Benutzerdefinierter OAuth-Client und kopiere die in ChatGPT angezeigte Callback-URL.

  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 schreibe den Integrationsnamen dabei in Großbuchstaben:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Füge aus dem JSON-Ergebnis oauth_client_id in OAuth-Client-ID und oauth_client_secret in OAuth-Client-Secret in ChatGPT ein.

  5. Setze Authentifizierungsmethode des Token-Endpunkts auf client_secret_basic.

Snowflake verbinden und verwalten

  1. Wähle im selben ChatGPT-Einrichtungsdialog Weiter, melde dich bei Snowflake an und autorisiere die Verbindung.

  2. Konfiguriere bei einer Workspace-Einrichtung die Installationsrichtlinie für das Plug-In sowie den Rollen- oder Gruppenzugriff für die Personen, die es verwenden sollen. Prüfe, ob sowohl Snowflake als auch Snowflake - Official Template aktiviert sind.

  3. Workspace-Admins sind dafür verantwortlich, den Benutzerzugriff für die Rollen zu konfigurieren, die Snowflake verwenden sollen.

  4. Workspace-Admins sind dafür verantwortlich, die Aktionssteuerung für die bereitgestellten Tools zu prüfen.

  5. Workspace-Admins sind dafür verantwortlich, unter App-Berechtigungen festzulegen, wann ChatGPT vor der Verwendung der App die Mitglieder um Zustimmung bittet.

Diese App-Berechtigungen gelten für Unterhaltungen in ChatGPT. Workspace-Agenten verwenden die von ihren Erstellenden festgelegten Steuerelemente pro Agent, um zu bestimmen, welche App-Aktionen verfügbar sind und wann Endnutzende um Zustimmung gebeten werden. Weitere Informationen zum Verhalten von Agenten findest du unter ChatGPT Workspace Agents für Enterprise und Business.

App testen

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

  2. Prüfe, ob ChatGPT die konfigurierten Tools findet.

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

  4. Prüfe, ob die Snowflake-Berechtigungen den Zugriff außerhalb der genehmigten Rolle und Objekte verhindern.

  5. Teste eine Workspace-Einrichtung mit zugelassenen Mitgliedern ohne Adminrechte, die unterschiedliche Snowflake-Standardrollen haben. Eine erfolgreiche Adminverbindung bestätigt nicht, dass sich jedes Mitglied verbinden kann.

Für Workspace-Admins reicht es nicht aus, nur Snowflake zu aktivieren. Wenn Snowflake - Official Template nicht aktiviert und verbunden wurde, kann das Plug-In für Mitglieder als deaktiviert erscheinen.

MCP-Server-URL und OAuth-Verhalten

ChatGPT stellt eine Verbindung zur vollständigen 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 aufzulösen:

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

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

Füge weder eine Snowsight-URL noch allein die Stamm-URL des Snowflake-Kontos oder eine 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 einen Admin aktiviert, für ein Mitglied jedoch deaktiviert

  • Prüfe, ob unter Workspace-Einstellungen > Plug-Ins sowohl Snowflake als auch Snowflake - Official Template aktiviert sind.

  • Öffne Snowflake - Official Template und schließe den Ablauf unter 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 Installationsrichtlinie des Plug-Ins zugelassen ist.

MCP-Server nicht gefunden

  • Prüfe die vollständige MCP-Server-URL erneut oder die vier Vorlagenfelder, falls der Einrichtungsbildschirm danach fragt.

  • 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 USAGE für den MCP-Server hat.

Ein Tool wird angezeigt, schlägt bei der Verwendung jedoch fehl

  • 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 schlägt fehl

  • Prüfe, ob der Warehouse-Name korrekt ist und das Warehouse ausgeführt wird.

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

  • Prüfe, ob read_only: true festgelegt ist, wenn du nur Lesezugriff vorgesehen hast.

Die angeforderte Rolle ALL wurde ausdrücklich blockiert

Bitte deinen Snowflake-Admin, deine Standardrolle mit den zugelassenen und blockierten Rollen der OAuth-Integration zu vergleichen. Eine andere zugelassene Rolle wird nicht automatisch ausgewählt. Ändere gegebenenfalls die Standardrolle in eine genehmigte 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 Person bei Snowflake anmelden kann.

  • Prüfe bei Verwendung von session:role:all, ob die OAuth-Integration die Standardrolle der Person zulässt.

  • Prüfe, ob bei der Einrichtung der von Snowflake verwaltete MCP-OAuth-Ablauf verwendet wird.

  • Prüfe, ob Client-ID und Client-Secret zur Snowflake-OAuth-Integration passen und deren Weiterleitungs-URI mit der in ChatGPT angezeigten Callback-URL übereinstimmt.

Snowflake-Netzwerkrichtlinie oder IP-Zulassungsliste blockiert den Connector

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

  • Lasse eingehende Verbindungen aus den aktuellen ausgehenden IP-Adressbereichen des ChatGPT-Connectors zu.

  • Konfiguriere diese Zulassungsliste in Snowflake. Sie ist von der IP-Zulassungsliste des ChatGPT-Workspace getrennt.

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

Verbindungsproblem mit dem Hostnamen

Verwende das richtige Snowflake-Hostpräfix. Unterstriche in Snowflake-Hostnamen können Probleme verursachen. Verwende möglichst Bindestriche.

Referenzen

War dieser Artikel hilfreich?