LLM、Snowflake、およびWorkato Developer API
このユースケースでは、Workato Developer APIを使用してLLMとSnowflakeの間にカスタムMCP連携を作成するための手順を段階的に説明します。 この連携により、Snowflakeから構造化されたInsightsを自動的に取得する自然言語クエリが可能になり、チームによるデータへのアクセスと分析の方法が変わります。
このMCPサーバー連携の機能
このMCPサーバー連携では、次のことが可能です。
- LLMで自然言語コマンドを使用してSnowflakeの販売データをクエリする
- 市区町村、州、地域、および販売額でデータをフィルタリングおよび集計する
- 総売上、注文数、製品パフォーマンスなどの主要メトリクスを取得する
- SQLを記述したりツールを切り替えたりせずに、反復的にデータを探索する
- 単なる生の数値ではなく、ビジネスナラティブを伴うコンテキスト化されたInsightsを取得する
MCP連携の作成
次の手順を実行して、チームがLLMから自然言語コマンドを使用してSnowflakeデータをクエリできる連携を構築します。
ユースケースは例示のみを目的としています
このユースケースは一例です。 このレシピを特定のSnowflakeスキーマとビジネス要件に適応させるには、SQLクエリ、リクエストスキーマ、または条件ロジックの変更が必要になる場合があります。
Workatoにサインインします。
MCPサーバー用のAPIリクエストレシピを作成する予定のプロジェクトを選択します。
Snowflakeコネクションを作成します。
Snowflakeコネクションの設定
この手順では、SnowflakeアカウントをWorkatoアカウントに接続します。 詳細については、Snowflake認証方式を参照してください。
Snowflakeは、ユーザー向けの単一要素パスワード認証を2025年11月までに廃止する予定です。 詳細については、Snowflakeの公式廃止告知を参照してください。
この日付より前に、既存のすべてのユーザー名/パスワードコネクションをOAuth 2.0またはキーペア認証に移行することを強く推奨します。 既存のユーザー名/パスワードコネクションは、廃止日まで引き続き動作します。
Snowflakeコネクターは、OAuth 2.0、秘密鍵、およびユーザー名/パスワード認証をサポートしています。 SnowflakeインスタンスにIPアドレスに基づいてアクセスを制限するネットワークポリシーがある場合は、Workato IPアドレスを許可リストに追加する必要があります。
Snowflakeに接続するには、次の手順を実行します:
作成 > コネクションを選択するか、Cを2回押します。
新規コネクションページでSnowflakeを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
Snowflakeコネクション
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
Snowflakeインスタンスのアカウント識別子を、サポートされている次のいずれかの形式で入力します:
- アカウント名:
https://{orgname}-{account_name} - コネクション名:
https://{orgname}-{connectionname} - アカウントロケーター:
https://{accountlocator}.{region}.{cloud}
詳細については、Snowflakeのアカウントへの接続ガイドを参照してください。
アカウントロケーターの形式
特定のロケーションでは、アカウントロケーターURLに{region}および{cloud}を含める必要があります。 例:
- AWS米国西部(オレゴン):
your-account-locator - AWS米国東部(オハイオ):
your-account-locator.us-east-2 - Azure West Europe:
your-account-locator.west-europe.azure
詳細については、識別子としてのアカウントロケーターの使用ガイドを参照してください。
このコネクションのコンピューティングリソースを定義するために、Warehouse名を入力します。 詳細については、ウェアハウスに関する考慮事項セクションを参照してください。
ターゲットのSnowflakeデータベースのデータベース名を入力します。
SnowflakeコネクションのAuthentication typeを選択します。 設定手順については、Snowflakeコネクターの認証オプションセクションを参照してください。
任意です。 認証に使用するロールを指定します。 このロールは、ユーザーに割り当てられた既存のロールである必要があります。 空白のままにすると、Snowflakeはユーザーに割り当てられたデフォルトロールを使用します。
任意です。 スキーマを入力します。 空白のままにすると、デフォルトのスキーマはpublicになります。
任意です。 タイムスタンプのタイムゾーンが正しく処理されるように、改善された日時処理を使用(推奨)をはいに設定します。
任意です。 割り当てられたタイムゾーンがないタイムスタンプに適用するデータベースタイムゾーンを定義します。
Connectをクリックしてコネクションを確認します。
新規APIリクエストトリガーを設定します。
新規APIリクエストトリガーの設定
このトリガーは、MCPサーバーがレシピを呼び出す方法と、想定するパラメーターを定義します。
API platform by Workatoを検索し、アプリとして選択します。
新規APIリクエストトリガーを選択します。
新規APIリクエストトリガー
次の手順を実行して、リクエストスキーマを設定します。
リクエストスキーマセクションに移動し、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにregionと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、はいを選択します。
保存をクリックします。
リクエストスキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにcityと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、はいを選択します。
保存をクリックします。
リクエストスキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにstateと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、はいを選択します。
保存をクリックします。
リクエストスキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにsales_valueと入力します。
データ型ドロップダウンメニューを使用して、数値を選択します。
任意ドロップダウンメニューを使用して、はいを選択します。
保存をクリックします。
リクエストスキーマ
次の手順を実行して、成功時のリクエストレスポンスを設定します。
レスポンスセクションに移動し、レスポンスを追加をクリックします。
レスポンスを追加をクリック
名前フィールドに200と入力します。
HTTPSステータスコード標準レスポンスドロップダウンメニューを使用して、200 - OKを選択します。
レスポンススキーマセクションに移動し、フィールドを手動で追加をクリックします。
名前フィールドとラベルフィールドにnumber_of_sales_ordersと入力します。
データ型ドロップダウンメニューを使用して、整数を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにtotal_salesと入力します。
データ型ドロップダウンメニューを使用して、数値を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_product_nameと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_product_typeと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_product_categoryと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_product_manufacturerと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_brandと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
成功時のリクエストレスポンス
次の手順を実行して、エラー時のリクエストレスポンスを設定します。
レスポンスセクションに戻り、レスポンスを追加をクリックします。
名前フィールドにエラーと入力します。
HTTPSステータスコード標準レスポンスドロップダウンメニューを使用して、400 - Bad requestを選択します。
レスポンススキーマセクションに移動し、フィールドを手動で追加をクリックします。
名前フィールドとラベルフィールドにstatusと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmessageと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにerrorと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
エラー時のリクエストレスポンス
+ Add stepをクリックし、Action in appを選択します。
ステップを追加 > アプリ内のアクションをクリック
SnowflakeのカスタムSQL実行アクションを設定します。
SnowflakeアクションでカスタムSQLを実行する設定
この手順では、前の手順で設定した情報についてSnowflakeをクエリします。
次の手順を実行して、カスタムSQL実行アクションを設定します。
Snowflakeを検索し、アプリとして選択します。
カスタムSQL実行アクションを選択します。
SQLフィールドに移動し、次のクエリを貼り付けます。
SELECT
COUNT(*) AS number_of_sales_orders,
SUM(sales_value) AS total_sales,
MODE() WITHIN GROUP (ORDER BY product_name) AS most_common_product_name,
MODE() WITHIN GROUP (ORDER BY product_type) AS most_common_product_type,
MODE() WITHIN GROUP (ORDER BY product_category) AS most_common_product_category,
MODE() WITHIN GROUP (ORDER BY product_manufacturer) AS most_common_product_manufacturer,
MODE() WITHIN GROUP (ORDER BY brand) AS most_common_brand
FROM sales
WHERE
(:region IS NULL OR region = :region)
AND (:city IS NULL OR city = :city)
AND (:state IS NULL OR state = :state)
AND (:sales_value IS NULL OR sales_value >= :sales_value);
SQL文字列を指定
次の手順を実行して、出力フィールドを設定します。
出力フィールドセクションに移動し、+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにnumber_of_sales_ordersと入力します。
データ型ドロップダウンメニューを使用して、整数を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにtotal_salesと入力します。
データ型ドロップダウンメニューを使用して、数値を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_product_nameと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_product_typeと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_product_categoryと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_product_manufacturerと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
+フィールドを追加をクリックします。
名前フィールドとラベルフィールドにmost_common_brandと入力します。
データ型ドロップダウンメニューを使用して、文字列を選択します。
任意ドロップダウンメニューを使用して、いいえを選択します。
保存をクリックします。
Snowflakeの出力フィールド
+ステップを追加をクリックし、エラーを処理を選択します。
ステップを追加 > エラーを処理をクリック
ERROR FOUND?を設定します。 ブロック。
ERROR FOUND?を設定する ブロック
この手順では、レシピにカスタムSQL実行アクションのエラーを監視させます。 これにより、設定した新規APIリクエストトリガーのレスポンススキーマで、LLMエージェントが200レスポンスまたはエラーレスポンスを返すように指示します。
ERROR FOUND?ブロックを設定するには、次の手順を実行します:
はいブランチに移動し、Monitorブロックでアクションを再試行しますか?が再試行しないに設定されていることを確認します。
再試行しないの下にある+ステップを追加をクリックします。
Select an app and actionをクリックします。 API platform by Workatoを検索して選択し、アプリとして設定します。
アクションとしてAPIリクエストに応答を選択します。
レスポンスドロップダウンメニューを使用して、エラーを選択します。
レスポンス本文セクションを展開します。
ERROR FOUND?ブロックを設定
保存をクリックします。
いいえブランチに移動し、アプリとアクションを選択をクリックします。
API platform by Workatoを検索して選択し、アプリとして設定します。
アクションとしてAPIリクエストに応答を選択します。
レスポンスドロップダウンメニューを使用して、200を選択します。
レスポンス本文セクションを展開します。
Snowflakeのnumber_of_sales_ordersStep 4データピルをnumber_of_sales_ordersフィールドにマッピングします。
Snowflakeのtotal_salesStep 4データピルをtotal_salesフィールドにマッピングします。
Snowflakeのmost_common_product_nameStep 4データピルをmost_common_product_nameフィールドにマッピングします。
Snowflakeのmost_common_product_typeStep 4データピルをmost_common_product_typeフィールドにマッピングします。
Snowflakeのmost_common_product_categoryStep 4データピルをmost_common_product_categoryフィールドにマッピングします。

200成功レスポンス本文
Snowflakeのmost_common_product_manufacturerStep 4データピルをmost_common_product_manufacturerフィールドにマッピングします。
Snowflakeのmost_common_brandStep 4データピルをmost_common_brandフィールドにマッピングします。
保存をクリックします。
MCPサーバーを作成します。
MCPサーバーを作成する
この手順では、新しいMCPサーバーを作成し、APIリクエストとSnowflakeレシピを追加します。 MCPサーバーに追加したレシピは、LLMで使用できるツールになります。
AI Hubに移動し、MCP serversタブを選択して、+MCPサーバーを作成をクリックします。 または、プロジェクトページで作成 > MCPサーバーをクリックするか、C+Mを押して、MCPサーバーを作成できます。
MCPサーバー名フィールドにMCPサーバーの名前を指定します。 例: Snowflake analysis tool
任意です。 説明フィールドにMCPサーバーの説明を指定します。 LLMはこの説明を使用してサーバーを理解します。 この説明はエンドユーザーには表示されません。
ロケーションドロップダウンメニューを使用して、MCPサーバーのロケーションを選択します。
ツールソースセクションに移動し、プロジェクトアセットを選択します。
前の手順で作成したAPIおよびSnowflakeレシピのチェックボックスを選択します。
ビルドを開始をクリックします。 MCPでは概要タブが自動的に表示されます。
設定 > エンドユーザーアクセスをクリックします。
Developer MCP Tokenセクションに移動し、コピーをクリックして、後の手順で使用するMCPサーバーURLとトークンをコピーします。
MCP URLをコピー
MCP連携を作成する予定のLLMに移動し、次の設定手順を実行します。
テスト済みのLLM
このユースケースはChatGPT、Claude、およびCursorでテストされています。 設定と利用状況は他のLLMによって異なる場合があります。
ChatGPTでMCP連携を設定します。
ChatGPT MCP設定
この手順では、OpenAIアカウントに新しいMCPサーバーコネクターを設定します。これにより、ChatGPTで自然言語コマンドを使用して、SnowflakeデータからInsightsを抽出できます。
ChatGPTアカウントに移動します。
設定>アプリとコネクター>詳細設定に移動し、開発者モードトグルを有効にします。
設定 > アプリとコネクタに移動します。
Createをクリックします。 このボタンは、開発者モードトグルが有効になっている場合にのみ表示されます。
NameフィールドにMCPコネクターの名前を入力します。
ChatGPT MCPコネクターの設定
MCP URLとトークンをURLフィールドに貼り付けます。
任意です。 Descriptionフィールドに説明を入力します。
認証ドロップダウンメニューを使用して、認証なしを選択します。
チェックボックスを選択して、カスタムMCPサーバーを追加するリスクを受け入れます。
Createをクリックします。
MCPツールを使用するには、ChatGPTで新しいチャットを作成します。
Claude用のMCPインテグレーションを設定します。
Claude MCP設定
この手順では、Anthropicアカウントに新しいMCPサーバーコネクターを設定します。これにより、Claudeで自然言語コマンドを使用してSnowflakeデータからInsightsを抽出できます。
Settings > Connectorsに移動します。
+ Add new connectorをクリックします。
NameフィールドにMCPコネクターの名前を入力します。
Claude MCPコネクターを設定
MCP URLとトークンをRemote MCP server URLフィールドに貼り付けます。
Addをクリックします。 新しく作成されたMCPコネクターがコネクターのリストに表示されます。
Configureをクリックします。
権限のドロップダウンメニューを使用して、Always ask permissionまたはAllow unsupervisedを選択します。 デフォルトではAlways ask permissionが選択されています。
MCPツールを使用するには、Claudeで新しいチャットを作成してください。
Cursor用にMCP連携を設定します。
Cursor MCP設定
この手順では、Cursorアカウントに新しいMCPサーバーコネクターを設定します。これにより、自然言語コマンドを使用してSnowflakeデータからInsightsを抽出できます。 このプロセスでは、MCP URLと認証トークンを使用して認証します。 Workato Identityで認証する予定の場合は、Workato Identity認証を使用したCursor MCPリモートサーバー設定を参照してください。
Settings > Cursor settingsに移動します。
サイドバーでMCP & Integrationsをクリックします。
+ New MCP Serverをクリックして、mcp.jsonファイルを開きます。
+ New MCP Serverをクリック
前の手順でコピーしたMCP URLとトークンを使用するように設定を更新します。 例:
{
"mcpServers": {
"snowflake-tools": {
"url": "https://2255.apim.mcp.workato.com?wkt_token=YOUR_API_TOKEN"
},
"github-tools": {
"url": "https://387.apim.mcp.workato.com/abc247/example-collection-name-v1?wkt_token=YOUR_API_TOKEN"
}
}
}変更を保存します。
MCPツールを使用するには、Cursorエージェントで新しいチャットを作成します。
エージェントで新しいチャットを開始する必要があります。 Cursor agentは、チャットの開始時に利用可能なツールと機能にのみアクセスできます。 エージェントは、チャットの開始後に追加された新しいMCP設定、サーバー、ツールを検出または使用できません。
LLMでMCPツールをテストします。
Claudeサンプルチャット
Last updated: