如果你是 ChatGPT 工作區管理員,正在為組織設定 Snowflake 應用程式範本,請使用本指南。範本不是成員最終使用的應用程式。它是一個設定流程,會在你提供必要的 Snowflake 設定後,建立工作區專屬的草稿應用程式。
對於 Snowflake,大部分設定都在 Snowflake 中完成。你會建立 Snowflake 代管的 MCP 伺服器,授予適當角色存取 MCP 伺服器及其基礎物件的權限,然後在 ChatGPT 範本設定流程中輸入代管 MCP 伺服器 URL 或其組成欄位。ChatGPT 建立草稿應用程式後,你可以像管理其他工作區應用程式一樣發布並管理它。
你正在設定的內容
你正在 ChatGPT 中建立工作區專屬的 Snowflake 應用程式。此應用程式會連線至 Snowflake 代管的 MCP 伺服器,該伺服器會定義:
ChatGPT 可使用哪些動作,稱為工具。
這些工具可存取哪些 Snowflake 資料或物件。
使用者應使用哪個 Snowflake 角色進行授權。
哪些 Snowflake 資料庫、結構描述和 MCP 伺服器名稱用來識別連接器端點。
ChatGPT 只能探索並使用 MCP 伺服器公開且使用者授權時所用的 Snowflake 角色允許的工具。
開始之前
你需要:
ChatGPT 工作區管理員或擁有者存取權。
可建立 MCP 伺服器物件並授予權限的 Snowflake 存取權。
MCP 伺服器所在的 Snowflake 資料庫和結構描述。
決定應允許 ChatGPT 執行哪些操作,例如 Cortex Search、Cortex Analyst、唯讀 SQL,或特定程序或函式。
使用者授權應用程式時將使用的最低權限 Snowflake 角色。
Snowflake 帳戶主機前置字串,包括任何區域或雲端後置字串。
要準備的值
Snowflake 主機前置字串:Snowflake 帳戶 URL 中 .snowflakecomputing.com 之前的所有內容。
資料庫:包含 MCP 伺服器的資料庫。
結構描述:包含 MCP 伺服器的結構描述。
MCP 伺服器名稱:Snowflake MCP 伺服器物件名稱。
完整的代管 MCP 伺服器 URL(如果 ChatGPT 設定畫面要求 URL)。
Snowflake 角色:使用者授權應用程式時應使用的角色。
工具清單:你希望 ChatGPT 使用的 Snowflake 物件和動作。
決定 ChatGPT 可以做什麼
只選擇你想公開的功能。常見選項包括:
使用 Cortex Search 在已索引的 Snowflake 資料或內容中搜尋答案。
透過已核准的語意檢視,使用 Cortex Analyst 進行問答。
唯讀 SQL,用於受控的查詢存取。
Snowflake 智慧體、預存程序或 UDF,用於特定工作流程。
如果啟用 SQL,除非你的組織已審查並核准寫入存取權,否則請保持唯讀。
建立 Snowflake MCP 伺服器
在 Snowflake 中,使用可建立 MCP 伺服器並授予存取權的角色登入。在應建立 MCP 伺服器的資料庫和結構描述中開啟工作表。
建立只列出 ChatGPT 應使用工具的 MCP 伺服器。將物件名稱替換為你自己的 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: "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" $$;
工具名稱應穩定且具描述性,讓 ChatGPT 能選擇正確的工具。建立 MCP 伺服器不會自動授予基礎 Snowflake 物件的存取權。
授予適當的 Snowflake 權限
選擇使用者授權時將使用的 Snowflake 角色,然後授予該角色存取資料庫、結構描述、MCP 伺服器,以及工具所使用每個基礎物件的權限。
範例:
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 USAGE ON WAREHOUSE CHATGPT_WH TO ROLE CHATGPT_CONNECTOR_ROLE;
如果 MCP 伺服器公開語意檢視、UDF、預存程序或 Cortex Agent,也請授予這些物件所需的權限。
確認 Snowflake 已準備就緒
執行:
SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;
然後執行:
DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;
確認:
伺服器存在於預期的資料庫和結構描述中。
工具清單符合你的預期。
每個工具識別碼都指向正確的 Snowflake 物件。
連線角色對 MCP 伺服器具有 USAGE 權限。
連線角色對每個基礎物件具有所需權限。
在 ChatGPT 中開始範本設定
在 ChatGPT 中,切換至應提供此應用程式的工作區。
開啟 工作區設定 > 應用程式。
選取 目錄。
搜尋 Snowflake。
選取 Snowflake 應用程式範本並開始設定。
輸入清楚的應用程式名稱和描述,例如 Snowflake 或 Snowflake - Analytics。
輸入設定流程要求的代管 MCP 伺服器詳細資料。
如果設定畫面要求完整的代管 MCP 伺服器 URL,請使用此格式:
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
如果設定畫面要求分開的欄位,請使用該 URL 中的相同值:
Snowflake 主機前置字串。
資料庫。
結構描述。
MCP 伺服器名稱。
建立並發布草稿應用程式
在 ChatGPT 中儲存 Snowflake 範本設定。
建立草稿應用程式。
檢閱草稿應用程式詳細資料、驗證設定和可用動作。
準備就緒後發布草稿應用程式。
確認應用程式出現在 工作區設定 > 應用程式 > 已啟用 中。
為應使用此應用程式的角色設定 使用者存取權。
檢閱公開工具的 動作控制。
檢閱 應用程式權限,選擇 ChatGPT 何時在使用應用程式前詢問成員。
這些應用程式權限適用於 ChatGPT 對話。工作區智慧體會使用智慧體建構者設定的各智慧體控制項,判斷哪些應用程式動作可用,以及何時要求終端使用者核准。若要了解智慧體行為,請參閱:企業版和商務版 ChatGPT 工作區智慧體。
測試應用程式
以允許的測試使用者身分,從 ChatGPT 啟動連線流程。
登入 Snowflake,並在出現提示時選取預期角色。
確認 ChatGPT 可從 MCP 伺服器探索預期工具。
先執行低風險的讀取動作,例如搜尋或針對已核准資料的唯讀查詢。
確認 Snowflake 權限會防止存取核准角色和物件以外的內容。
MCP 伺服器 URL 和 OAuth 行為
ChatGPT 會連線至完整的 Snowflake 代管 MCP 伺服器 URL。ChatGPT 會使用該 URL 中的 Snowflake 主機前置字串來解析 Snowflake OAuth 端點。
請勿貼上 Snowsight URL、Snowflake 帳戶根 URL 本身,或任何含有額外路徑區段的 URL。MCP URL 必須包含資料庫、結構描述和 MCP 伺服器路徑,並且必須與你的 Snowflake 物件完全相符。
疑難排解
找不到 MCP 伺服器:請重新檢查完整的 MCP 伺服器 URL,或分開的主機前置字串、資料庫、結構描述和伺服器欄位。
ChatGPT 中未顯示任何工具:確認 MCP 伺服器規格包含工具,且該角色對 MCP 伺服器具有 USAGE 權限。
工具有顯示但使用時失敗:確認該角色對基礎 Snowflake 物件具有正確權限。
SQL 工具失敗:確認倉儲名稱正確、倉儲可用、角色對其具有 USAGE 權限,且如果你預期唯讀存取,read_only 為 true。
授權失敗:確認使用者可以登入 Snowflake 並使用預期角色。
主機名稱連線問題:使用正確的 Snowflake 主機前置字串。含底線的 Snowflake 主機名稱可能會造成問題;建議使用連字號。
