OpenAI
このページは機械翻訳されています。元の英語の記事を表示

ChatGPT で Snowflake アプリテンプレートを設定

ワークスペース管理者が、Snowflake 管理の MCP サーバーを使って ChatGPT で Snowflake アプリテンプレートを設定する方法を学びます。

更新日: 7 days ago

組織向けに Snowflake アプリテンプレートを設定する ChatGPT ワークスペース管理者の場合は、このガイドを使用してください。テンプレートは、メンバーが使用する最終的なアプリではありません。これは、必要な Snowflake 構成を指定した後に、ワークスペース固有の下書きアプリを作成するセットアップフローです。

Snowflake では、セットアップの大部分は Snowflake 内で行います。Snowflake 管理の MCP サーバーを作成し、MCP サーバーとその基盤となるオブジェクトへのアクセス権を適切なロールに付与してから、管理 MCP サーバー URL またはその構成フィールドを ChatGPT テンプレートのセットアップフローに入力します。ChatGPT が下書きアプリを作成した後、他のワークスペースアプリと同じように公開および管理できます。

設定する内容

ChatGPT でワークスペース固有の Snowflake アプリを作成します。アプリは、次を定義する Snowflake 管理の MCP サーバーに接続します。

  • ChatGPT が使用できるアクション(ツールと呼ばれます)

  • それらのツールがアクセスできる Snowflake データまたはオブジェクト

  • ユーザーが認可に使用する Snowflake ロール

  • コネクタ エンドポイントを識別する Snowflake データベース、スキーマ、MCP サーバー名

ChatGPT が検出して使用できるのは、MCP サーバーが公開し、ユーザーが認可に使用する Snowflake ロールで許可されているツールのみです。

始める前に

必要なもの:

  • ChatGPT ワークスペースの管理者またはオーナーアクセス

  • MCP サーバーオブジェクトを作成し、権限を付与できる Snowflake アクセス

  • MCP サーバーを配置する Snowflake データベースとスキーマ

  • Cortex Search、Cortex Analyst、読み取り専用 SQL、特定のプロシージャや関数など、ChatGPT に許可する操作についての判断

  • ユーザーがアプリの認可時に使用する、最小権限の Snowflake ロール

  • リージョンやクラウドのサフィックスを含む Snowflake アカウントのホストプレフィックス

準備する値

  • Snowflake ホストプレフィックス: Snowflake アカウント URL の .snowflakecomputing.com より前のすべて

  • データベース: MCP サーバーを含むデータベース

  • スキーマ: MCP サーバーを含むスキーマ

  • MCP サーバー名: Snowflake MCP サーバーオブジェクト名

  • ChatGPT セットアップ画面で URL を求められる場合は、管理 MCP サーバーの完全な URL

  • Snowflake ロール: ユーザーがアプリの認可時に使用するロール

  • ツールリスト: ChatGPT に使用させたい Snowflake オブジェクトとアクション

ChatGPT に許可する操作の決定

公開したい機能のみを選択します。一般的な選択肢は次のとおりです。

  • インデックス化された Snowflake データまたはコンテンツから回答を見つけるための Cortex Search による検索

  • 承認済みのセマンティックビューを介した Cortex Analyst による Q&A

  • 制御されたクエリアクセスのための読み取り専用 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 でのテンプレートセットアップの開始

  1. ChatGPT で、アプリを利用可能にするワークスペースに切り替えます。

  2. ワークスペース設定 > アプリを開きます。

  3. ディレクトリを選択します。

  4. Snowflake を検索します。

  5. Snowflake アプリテンプレートを選択し、セットアップを開始します。

  6. Snowflake や Snowflake - Analytics など、わかりやすいアプリ名と説明を入力します。

  7. セットアップフローで求められる管理 MCP サーバーの詳細を入力します。

セットアップ画面で管理 MCP サーバーの完全な URL を求められた場合は、次の形式を使用します。

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

セットアップ画面で個別のフィールドを求められた場合は、その URL と同じ値を使用します。

  • Snowflake ホストプレフィックス

  • データベース

  • スキーマ

  • MCP サーバー名

下書きアプリの作成と公開

  1. ChatGPT で Snowflake テンプレートのセットアップを保存します。

  2. 下書きアプリを作成します。

  3. 下書きアプリの詳細、認証設定、利用可能なアクションを確認します。

  4. 準備ができたら、下書きアプリを公開します。

  5. アプリが ワークスペース設定 > アプリ > 有効に表示されることを確認します。

  6. 使用するロールに対して ユーザーアクセスを構成します。

  7. 公開されるツールの アクション制御を確認します。

  8. ChatGPT がアプリを使用する前にメンバーへ確認するタイミングを選ぶために、アプリ権限を確認します。

これらのアプリ権限は ChatGPT の会話に適用されます。Workspace Agents では、利用可能なアプリアクションとエンドユーザーに承認を求めるタイミングを、エージェントのビルダーが設定するエージェントごとの制御で決定します。エージェントの動作については、Enterprise および Business 向け ChatGPT Workspace Agentsを参照してください。

アプリのテスト

  1. 許可されたテストユーザーとして、ChatGPT から接続フローを開始します。

  2. Snowflake にサインインし、求められた場合は意図したロールを選択します。

  3. ChatGPT が MCP サーバーから想定どおりのツールを検出することを確認します。

  4. まず、承認済みデータに対する検索や読み取り専用クエリなど、低リスクの読み取りアクションを実行します。

  5. 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 ホスト名は問題を引き起こす可能性があります。ハイフンの使用を推奨します。

この記事は役に立ちましたか?