このガイドは、Snowflake 管理の MCP サーバーを通じて ChatGPT を Snowflake に接続したい ChatGPT ワークスペース管理者、または ChatGPT Plus もしくは Pro ユーザー向けです。
設定の大部分は Snowflake で行います。Snowflake の準備ができたら、ChatGPT で Snowflake テンプレートの接続を完了し、そのテンプレートを使用する Snowflake プラグインを有効にします。
組み込み OAuth:Snowflake アカウントと ChatGPT で利用できる場合は、Snowflake 管理者が有効にした ChatGPT パートナーアプリケーションを使用します。Snowflake にサインインします。組織の SSO が設定されている場合は、それを使用します。ChatGPT にクライアント ID やクライアントシークレットを入力する必要はありません。以下の「組み込み OAuth」セクションの手順に従ってください。
カスタム OAuth クライアント:組織で独自の OAuth クライアントが必要な場合、または組み込み OAuth を利用できない場合は、この方法を使用します。以下の「カスタム OAuth クライアント」セクションの手順に従ってください。
どちらの OAuth 方式でも、以下で説明する共通の MCP サーバー設定、参照先オブジェクトへの権限、ネットワークアクセスが必要です。OAuth を設定する前に、「ChatGPT への Snowflake サーバー情報の入力」までの共通設定を完了してください。
設定内容の概要
ChatGPT のコネクタエンドポイントとなる、Snowflake 管理の MCP サーバーを作成します。MCP サーバーでは次の項目を定義します。
ChatGPT が利用できるアクション
各ツールがアクセスできる Snowflake のデータやオブジェクト
各ユーザーが認可に使用する Snowflake ロール
エンドポイントを識別する Snowflake のデータベース名、スキーマ名、MCP サーバー名
次に、管理対象 MCP サーバーの完全な URL を使って、ChatGPT で Snowflake - 公式テンプレートを設定します。テンプレートの設定画面では、URL が次の 4 つのフィールドに分かれて表示される場合があります。
Snowflake ホストプレフィックス
データベース
スキーマ
MCP サーバー名
ChatGPT が検出して使用できるのは、MCP サーバーが公開し、ユーザーが認可に使用する Snowflake ロールで許可されたツールのみです。
事前準備
次のものが必要です。
ChatGPT ワークスペースの管理者またはオーナー権限、あるいは ChatGPT Plus または Pro の利用権
MCP サーバーオブジェクトの作成と権限の付与が可能な Snowflake アクセス権
MCP サーバーの配置先となる Snowflake のデータベースとスキーマ
Cortex Search、Cortex Analyst、読み取り専用 SQL、特定のプロシージャや関数など、ChatGPT に許可する機能の決定
ユーザーがアプリを認可する際に使用する、最小権限の Snowflake ロール
リージョンやクラウドのサフィックスを含む Snowflake アカウントのホストプレフィックス
Snowflake アカウントでネットワークポリシーや IP 許可リストによってアクセスを制限している場合は、現在の ChatGPT コネクタの送信元 IP 範囲からの着信接続を許可するよう Snowflake 管理者に依頼してください。このリストは随時変わるため、最新の状態に保つ必要があります。
準備する値
Snowflake ホストプレフィックス:Snowflake アカウント URL の .snowflakecomputing.com より前の部分全体
データベース:MCP サーバーを含むデータベース
スキーマ:MCP サーバーを含むスキーマ
MCP サーバー名:Snowflake MCP サーバーのオブジェクト名
ChatGPT の設定画面で URL を求められる場合は、管理対象 MCP サーバーの完全な URL
Snowflake ロール:ユーザーがアプリを認可する際に使用するロール
ツール一覧:ChatGPT に使用させたい Snowflake オブジェクトとアクション
ChatGPT に許可する機能の決定
公開したい機能だけを選択してください。一般的な選択肢は次のとおりです。
Cortex Search で検索し、インデックス化された Snowflake のデータやコンテンツから回答を見つけます。
承認済みセマンティックビューを通じた Cortex Analyst による質疑応答
クエリアクセスを制御するための読み取り専用 SQL
特定のワークフロー用の Snowflake Agent、ストアドプロシージャ、または UDF
SQL を有効にする場合は、組織で書き込みアクセスの審査と承認が済んでいない限り、読み取り専用にしてください。
Snowflake ワークシートの起動
Snowflake アプリにサインインします。
MCP サーバーの作成とアクセス権の付与が可能なロールに切り替えます。
ワークスペースに移動します。

SQL ファイルを含むワークスペースを作成します。

ワークスペースのコンテキストを、MCP サーバーの作成先となるデータベースとスキーマに設定します。

Snowflake MCP サーバーの作成
MCP サーバーの作成とアクセス権の付与が可能なロールで Snowflake にサインインします。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: "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 オブジェクトは一例です。
support-searchは、指定した Cortex Search サービスを公開します。revenue-analystは、指定したセマンティックビューを公開します。必要に応じて、他のビュー用のツールを追加してください。sql-readonlyは、指定したウェアハウスを使用する読み取り専用 SQL を公開します。
ChatGPT が適切なツールを選べるよう、ツール名は機能がわかりやすく、頻繁に変更する必要のないものにしてください。MCP サーバーを作成しても、参照先の Snowflake オブジェクトへのアクセス権が自動的に付与されるわけではありません。
仕様のその他のオプションについては、Snowflake 管理の MCP サーバーの作成をご覧ください。
適切な 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 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;
MCP サーバーが UDF、ストアドプロシージャ、Cortex Agent を公開する場合は、そのオブジェクトに必要な権限も付与してください。
Snowflake の準備状況の確認
次を実行します。
SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;
続いて、次を実行します。
DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;
次の点を確認してください。
想定したデータベースとスキーマにサーバーが存在すること
ツール一覧が意図したとおりであること
各ツールの
identifierが正しい Snowflake オブジェクトを指していること接続に使用するロールに MCP サーバーの
USAGE権限があること接続に使用するロールに、各参照先オブジェクトへの必要な権限があること
ChatGPT への Snowflake サーバー情報の入力
ワークスペース用に設定する場合は、admin.openai.com を開き、対象の ChatGPT ワークスペースを選択して「プラグイン」を開きます。ワークスペース内の移動や従来のアプリへのアクセスについては、プラグインとアプリの管理者向け設定、セキュリティ、コンプライアンスをご覧ください。
ChatGPT で、アプリを利用するアカウントまたはワークスペースに切り替えます。
個人用の設定では設定 > プラグインに移動します。ワークスペース用の設定では、ワークスペース管理者として管理コンソール > プラグインに移動します。
Snowflake を検索します。
Snowflake - 公式テンプレートを有効にします。
Snowflake - 公式テンプレートを開き、わかりやすい接続名を入力して、接続を選択します。
管理対象 MCP サーバーの完全な URL を入力します。
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
例:
https://myorg-myaccount.azure.snowflakecomputing.com/api/v2/databases/CHATGPT_APPS/schemas/TOOLS/mcp-servers/CHATGPT_SNOWFLAKE_MCP

設定画面で Snowflake の設定項目が個別のフィールドに分かれている場合は、URL 内の対応する値を使用してください。
Snowflake ホストプレフィックス
Snowflake アカウント URL の .snowflakecomputing.com より前の部分全体を、リージョンやクラウドのサフィックスも含めて使用してください。
たとえば、アカウント URL が次のように始まる場合:
https://myorg-myaccount.azure.snowflakecomputing.com
ホストプレフィックスは次のとおりです。
myorg-myaccount.azure
データベース
MCP サーバーを含むデータベースを入力します。例:
CHATGPT_APPS
スキーマ
MCP サーバーを含むスキーマを入力します。例:
TOOLS
MCP サーバー名
Snowflake MCP サーバーのオブジェクト名を入力します。例:
CHATGPT_SNOWFLAKE_MCP
OAuth の設定
ご自身のアカウントで利用でき、組織の要件を満たす OAuth 方式を選択してください。どちらの方式でも、上記の共通 MCP サーバー設定と、以下の接続テストおよびアクセス制御を使用します。
どちらの OAuth 方式でも、session:role:all を使用すると、Snowflake は各ユーザーのデフォルトロールを使用します。OAuth インテグレーションにロールの許可リストが設定されている場合、デフォルトロールはそのリストで許可されている必要があり、ブロックされていてはいけません。他に承認済みのロールを持っていても、そのロールが自動的に選択されるわけではありません。
組み込み OAuth
先に進む前に、上記の共通セクションに従って、MCP サーバーの作成、権限の付与、サーバーの確認、ChatGPT へのサーバー情報の入力を完了してください。このセクションに直接アクセスした場合も、これらの手順は必須です。
この方式は、Snowflake アカウントで ChatGPT パートナーアプリケーションが利用可能で、ChatGPT の設定ダイアログで組み込み OAuth が利用できる場合にのみ使用してください。
MCP サーバーをホストするのと同じ Snowflake アカウントで ChatGPT パートナーインテグレーションを有効にするよう、Snowflake 管理者に依頼してください。既存の有効な ChatGPT パートナーインテグレーションを再利用します。
ChatGPT の設定ダイアログで、組み込み OAuth を使用します。クライアント ID やクライアントシークレットの入力、コールバック URL の登録は不要です。
以下の「Snowflake の接続と管理」に進み、サインイン、同意、アクセス設定を行ってください。その後、利用が許可されている管理者以外のメンバーによるテストも含め、「アプリのテスト」を完了してください。
上記のデフォルトロール、許可リスト、ブロックされたロールに関する動作は、この方式にも適用されます。
カスタム OAuth クライアント
先に進む前に、上記の共通セクションに従って、MCP サーバーの作成、権限の付与、サーバーの確認、ChatGPT へのサーバー情報の入力を完了してください。このセクションに直接アクセスした場合も、これらの手順は必須です。
カスタム OAuth クライアントには、Snowflake で取得したクライアント ID とクライアントシークレットが必要です。上記のデフォルトロール、許可リスト、ブロックされたロールに関する動作は、この方式にも適用されます。
ChatGPT の設定ダイアログで、OAuth の詳細設定 > ユーザー定義 OAuth クライアントを選択し、ChatGPT に表示されるコールバック URL をそのままコピーします。
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'を指定し、OAUTH_REDIRECT_URIをそのコールバック URL と完全に一致させて、カスタム OAuth セキュリティインテグレーションを作成します。インテグレーション名を大文字で指定し、Snowflake で次のステートメントを実行します。
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');JSON の結果から、
oauth_client_idを ChatGPT の OAuth クライアント ID に、oauth_client_secretを OAuth クライアントシークレットに貼り付けます。トークンエンドポイントの認証方式を
client_secret_basicに設定します。
カスタムクライアントの認証情報を入力したら、以下の「Snowflake の接続と管理」と「アプリのテスト」に進んでください。
Snowflake の接続と管理
どちらの OAuth 方式でも、同じ ChatGPT 設定ダイアログで続行を選択し、Snowflake にサインインして接続を認可します。組織の SSO が設定されている場合は、それを使用できます。
ワークスペース用に設定する場合は、利用対象のメンバー向けに、プラグインのインストールポリシーとロールまたはグループ単位のアクセス権を設定します。Snowflake と Snowflake - 公式テンプレートの両方が有効になっていることを確認してください。
ワークスペース管理者は、Snowflake を利用するロールのユーザーアクセスを設定する責任を負います。
ワークスペース管理者は、公開されたツールのアクション制御を確認する責任を負います。
ワークスペース管理者は、アプリの権限を確認し、ChatGPT がアプリを使用する前にメンバーに確認を求めるタイミングを選択する責任を負います。
これらのアプリ権限は、ChatGPT の会話に適用されます。ワークスペースエージェントでは、作成者がエージェントごとに設定した制御に基づいて、利用できるアプリアクションと、エンドユーザーに承認を求めるタイミングが決まります。エージェントの動作については、Enterprise および Business 向け ChatGPT ワークスペースエージェントをご覧ください。
アプリのテスト
チャットを開き、Snowflake を選択して接続をテストします。
ChatGPT が設定済みのツールを検出することを確認してください。
まず、承認済みデータに対する検索や読み取り専用クエリなど、リスクの低い読み取りアクションを実行します。
Snowflake の権限設定により、承認済みのロールとオブジェクトの範囲外へのアクセスが防止されることを確認してください。
ワークスペース用に設定する場合は、利用が許可されている管理者以外のメンバーで、Snowflake のデフォルトロールが異なるメンバーを使ってテストしてください。管理者の接続が成功しても、すべてのメンバーが接続できるとは限りません。
ワークスペース管理者が Snowflake だけを有効にしても不十分です。Snowflake - 公式テンプレートの有効化と接続が完了していない場合、メンバーにはプラグインが無効として表示されることがあります。
MCP サーバー URL と OAuth の動作
ChatGPT は、Snowflake 管理の MCP サーバーの完全な URL に接続します。
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
ChatGPT は、その URL 内の Snowflake ホストプレフィックスを使って、次の Snowflake OAuth エンドポイントを特定します。
認可:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorizeトークン:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/token-request
Snowsight の URL、Snowflake アカウントのルート URL だけのもの、余分なパスセグメントを含む URL は貼り付けないでください。MCP URL には /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} を含め、Snowflake オブジェクトと完全に一致させる必要があります。
トラブルシューティング
管理者には有効でもメンバーには無効な Snowflake
管理コンソール > プラグインで、Snowflake と Snowflake - 公式テンプレートの両方が有効になっていることを確認してください。
Snowflake - 公式テンプレートを開き、接続の手順を完了してください。テンプレートを有効にするだけでは不十分で、接続も必要です。
Snowflake を開き、必須アプリとしてテンプレートが表示されていることを確認してください。
問題が発生しているメンバーのロールまたはグループが、プラグインのインストールポリシーで許可されていることを確認してください。
MCP サーバーの未検出
MCP サーバーの完全な URL を再確認してください。設定画面でテンプレートの 4 つのフィールドを求められる場合は、それらの値を再確認してください。
指定したデータベースとスキーマに MCP サーバーが存在することを確認してください。
ChatGPT でのツールの非表示
MCP サーバーの仕様にツールが含まれていることを確認してください。
ロールに MCP サーバーの
USAGE権限があることを確認してください。
表示されたツールの使用時のエラー
検索サービス、セマンティックビュー、ウェアハウス、プロシージャ、UDF など、参照先の Snowflake オブジェクトに対する必要な権限がロールにあることを確認してください。
SQL ツールの実行失敗
ウェアハウス名が正しく、ウェアハウスが稼働していることを確認してください。
ロールにウェアハウスの
USAGE権限があることを確認してください。読み取り専用アクセスを意図している場合は、
read_only: trueが設定されていることを確認してください。
要求されたロール ALL の明示的なブロック
ご自身のデフォルトロールを、OAuth インテグレーションで許可またはブロックされているロールと照合するよう Snowflake 管理者に依頼してください。他に許可されたロールを持っていても、そのロールが自動的に選択されるわけではありません。適切であれば、デフォルトロールを承認済みのロールに変更して再接続してください。デフォルトロールを変更すると、ChatGPT 以外での Snowflake セッションにも影響します。
認可の失敗
ユーザーが Snowflake にサインインできることを確認してください。
session:role:allを使用する場合は、ユーザーのデフォルトロールが OAuth インテグレーションで許可されていることを確認してください。設定で Snowflake 管理の MCP OAuth フローを使用していることを確認してください。
カスタム OAuth クライアントを使用する場合は、クライアント ID とクライアントシークレットが Snowflake の OAuth インテグレーションと一致し、そのリダイレクト URI が ChatGPT に表示されるコールバック URL と完全に一致することを確認してください。
組み込み OAuth を使用する場合は、MCP サーバーをホストするアカウントで ChatGPT パートナーインテグレーションが利用可能で、有効になっているかを Snowflake 管理者に確認してもらってください。
Snowflake のネットワークポリシーまたは IP 許可リストによるコネクタのブロック
Snowflake のネットワークポリシーまたはアクセスルールの更新を Snowflake 管理者に依頼してください。
現在の ChatGPT コネクタの送信元 IP 範囲からの着信接続を許可してください。
この許可リストの設定は Snowflake で行います。ChatGPT ワークスペースの IP 許可リストとは別の設定です。
IP 範囲は変更される可能性があるため、可能であれば公開されている JSON に基づく更新を自動化してください。
ホスト名に起因する接続の問題
正しい Snowflake ホストプレフィックスを使用してください。アンダースコアを含む Snowflake ホスト名は問題の原因となることがあるため、ハイフンの使用を推奨します。
