LLM、Snowflake、およびWorkato Developer API

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

このユースケースでは、Workato Developer APIを使用してLLMとSnowflakeの間にカスタムMCP連携を作成するための手順を段階的に説明します。 この連携により、Snowflakeから構造化されたInsightsを自動的に取得する自然言語クエリが可能になり、チームによるデータへのアクセスと分析の方法が変わります。

このMCPサーバー連携の機能

このMCPサーバー連携では、次のことが可能です。

  • LLMで自然言語コマンドを使用してSnowflakeの販売データをクエリする
  • 市区町村、州、地域、および販売額でデータをフィルタリングおよび集計する
  • 総売上、注文数、製品パフォーマンスなどの主要メトリクスを取得する
  • SQLを記述したりツールを切り替えたりせずに、反復的にデータを探索する
  • 単なる生の数値ではなく、ビジネスナラティブを伴うコンテキスト化されたInsightsを取得する

MCP連携の作成

次の手順を実行して、チームがLLMから自然言語コマンドを使用してSnowflakeデータをクエリできる連携を構築します。

ユースケースは例示のみを目的としています

このユースケースは一例です。 このレシピを特定のSnowflakeスキーマとビジネス要件に適応させるには、SQLクエリ、リクエストスキーマ、または条件ロジックの変更が必要になる場合があります。

1

Workatoにサインインします。

2

MCPサーバー用のAPIリクエストレシピを作成する予定のプロジェクトを選択します。

3
Snowflakeコネクションを作成します。

Snowflakeコネクションの設定

この手順では、SnowflakeアカウントをWorkatoアカウントに接続します。 詳細については、Snowflake認証方式を参照してください。

Snowflakeは、ユーザー向けの単一要素パスワード認証を2025年11月までに廃止する予定です。 詳細については、Snowflakeの公式廃止告知を参照してください。

この日付より前に、既存のすべてのユーザー名/パスワードコネクションをOAuth 2.0またはキーペア認証に移行することを強く推奨します。 既存のユーザー名/パスワードコネクションは、廃止日まで引き続き動作します。

Snowflakeコネクターは、OAuth 2.0、秘密鍵、およびユーザー名/パスワード認証をサポートしています。 SnowflakeインスタンスにIPアドレスに基づいてアクセスを制限するネットワークポリシーがある場合は、Workato IPアドレスを許可リストに追加する必要があります。

Snowflakeに接続するには、次の手順を実行します:

1

作成 > コネクションを選択するか、Cを2回押します。

2

新規コネクションページでSnowflakeを検索して選択します。

3

コネクション名フィールドにコネクションの名前を入力します。

SnowflakeコネクションSnowflakeコネクション

4

ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。

5

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

詳細については、識別子としてのアカウントロケーターの使用ガイドを参照してください。

6

このコネクションのコンピューティングリソースを定義するために、Warehouse名を入力します。 詳細については、ウェアハウスに関する考慮事項セクションを参照してください。

7

ターゲットのSnowflakeデータベースのデータベース名を入力します。

8

SnowflakeコネクションのAuthentication typeを選択します。 設定手順については、Snowflakeコネクターの認証オプションセクションを参照してください。

9

任意です。 認証に使用するロールを指定します。 このロールは、ユーザーに割り当てられた既存のロールである必要があります。 空白のままにすると、Snowflakeはユーザーに割り当てられたデフォルトロールを使用します。

10

任意です。 スキーマを入力します。 空白のままにすると、デフォルトのスキーマはpublicになります。

11

任意です。 タイムスタンプのタイムゾーンが正しく処理されるように、改善された日時処理を使用(推奨)をはいに設定します。

12

任意です。 割り当てられたタイムゾーンがないタイムスタンプに適用するデータベースタイムゾーンを定義します。

13

Connectをクリックしてコネクションを確認します。

4
新規APIリクエストトリガーを設定します。

新規APIリクエストトリガーの設定

このトリガーは、MCPサーバーがレシピを呼び出す方法と、想定するパラメーターを定義します。

1

API platform by Workatoを検索し、アプリとして選択します。

2

新規APIリクエストトリガーを選択します。

新規APIリクエストトリガー新規APIリクエストトリガー

3

次の手順を実行して、リクエストスキーマを設定します。

1

リクエストスキーマセクションに移動し、+フィールドを追加をクリックします。

2

名前フィールドとラベルフィールドにregionと入力します。

3

データ型ドロップダウンメニューを使用して、文字列を選択します。

4

任意ドロップダウンメニューを使用して、はいを選択します。

5

保存をクリックします。

6

リクエストスキーマセクションに戻り、+フィールドを追加をクリックします。

7

名前フィールドとラベルフィールドにcityと入力します。

8

データ型ドロップダウンメニューを使用して、文字列を選択します。

9

任意ドロップダウンメニューを使用して、はいを選択します。

10

保存をクリックします。

11

リクエストスキーマセクションに戻り、+フィールドを追加をクリックします。

12

名前フィールドとラベルフィールドにstateと入力します。

13

データ型ドロップダウンメニューを使用して、文字列を選択します。

14

任意ドロップダウンメニューを使用して、はいを選択します。

15

保存をクリックします。

16

リクエストスキーマセクションに戻り、+フィールドを追加をクリックします。

17

名前フィールドとラベルフィールドにsales_valueと入力します。

18

データ型ドロップダウンメニューを使用して、数値を選択します。

19

任意ドロップダウンメニューを使用して、はいを選択します。

20

保存をクリックします。

リクエストスキーマリクエストスキーマ

4

次の手順を実行して、成功時のリクエストレスポンスを設定します。

1

レスポンスセクションに移動し、レスポンスを追加をクリックします。

レスポンスを追加レスポンスを追加をクリック

2

名前フィールドに200と入力します。

3

HTTPSステータスコード標準レスポンスドロップダウンメニューを使用して、200 - OKを選択します。

4

レスポンススキーマセクションに移動し、フィールドを手動で追加をクリックします。

5

名前フィールドとラベルフィールドにnumber_of_sales_ordersと入力します。

6

データ型ドロップダウンメニューを使用して、整数を選択します。

7

任意ドロップダウンメニューを使用して、いいえを選択します。

8

保存をクリックします。

9

レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。

10

名前フィールドとラベルフィールドにtotal_salesと入力します。

11

データ型ドロップダウンメニューを使用して、数値を選択します。

12

任意ドロップダウンメニューを使用して、いいえを選択します。

13

保存をクリックします。

14

レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。

15

名前フィールドとラベルフィールドにmost_common_product_nameと入力します。

16

データ型ドロップダウンメニューを使用して、文字列を選択します。

17

任意ドロップダウンメニューを使用して、いいえを選択します。

18

保存をクリックします。

19

レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。

20

名前フィールドとラベルフィールドにmost_common_product_typeと入力します。

21

データ型ドロップダウンメニューを使用して、文字列を選択します。

22

任意ドロップダウンメニューを使用して、いいえを選択します。

23

保存をクリックします。

24

レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。

25

名前フィールドとラベルフィールドにmost_common_product_categoryと入力します。

26

データ型ドロップダウンメニューを使用して、文字列を選択します。

27

任意ドロップダウンメニューを使用して、いいえを選択します。

28

保存をクリックします。

29

レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。

30

名前フィールドとラベルフィールドにmost_common_product_manufacturerと入力します。

31

データ型ドロップダウンメニューを使用して、文字列を選択します。

32

任意ドロップダウンメニューを使用して、いいえを選択します。

33

保存をクリックします。

34

レスポンススキーマセクションに戻り、+フィールドを追加をクリックします。

35

名前フィールドとラベルフィールドにmost_common_brandと入力します。

36

データ型ドロップダウンメニューを使用して、文字列を選択します。

37

任意ドロップダウンメニューを使用して、いいえを選択します。

38

保存をクリックします。

成功時のリクエストレスポンス成功時のリクエストレスポンス

5

次の手順を実行して、エラー時のリクエストレスポンスを設定します。

1

レスポンスセクションに戻り、レスポンスを追加をクリックします。

2

名前フィールドにエラーと入力します。

3

HTTPSステータスコード標準レスポンスドロップダウンメニューを使用して、400 - Bad requestを選択します。

4

レスポンススキーマセクションに移動し、フィールドを手動で追加をクリックします。

5

名前フィールドとラベルフィールドにstatusと入力します。

6

データ型ドロップダウンメニューを使用して、文字列を選択します。

7

任意ドロップダウンメニューを使用して、いいえを選択します。

8

保存をクリックします。

9

+フィールドを追加をクリックします。

10

名前フィールドとラベルフィールドにmessageと入力します。

11

データ型ドロップダウンメニューを使用して、文字列を選択します。

12

任意ドロップダウンメニューを使用して、いいえを選択します。

13

保存をクリックします。

14

+フィールドを追加をクリックします。

15

名前フィールドとラベルフィールドにerrorと入力します。

16

データ型ドロップダウンメニューを使用して、文字列を選択します。

17

任意ドロップダウンメニューを使用して、いいえを選択します。

18

保存をクリックします。

エラー時のリクエストレスポンスエラー時のリクエストレスポンス

5

+ Add stepをクリックし、Action in appを選択します。

アクションを追加ステップを追加 > アプリ内のアクションをクリック

6
SnowflakeのカスタムSQL実行アクションを設定します。

SnowflakeアクションでカスタムSQLを実行する設定

この手順では、前の手順で設定した情報についてSnowflakeをクエリします。

次の手順を実行して、カスタムSQL実行アクションを設定します。

1

Snowflakeを検索し、アプリとして選択します。

2

カスタムSQL実行アクションを選択します。

3

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文字列を指定SQL文字列を指定

4

次の手順を実行して、出力フィールドを設定します。

1

出力フィールドセクションに移動し、+フィールドを追加をクリックします。

2

名前フィールドとラベルフィールドにnumber_of_sales_ordersと入力します。

3

データ型ドロップダウンメニューを使用して、整数を選択します。

4

任意ドロップダウンメニューを使用して、いいえを選択します。

5

保存をクリックします。

6

+フィールドを追加をクリックします。

7

名前フィールドとラベルフィールドにtotal_salesと入力します。

8

データ型ドロップダウンメニューを使用して、数値を選択します。

9

任意ドロップダウンメニューを使用して、いいえを選択します。

10

保存をクリックします。

11

+フィールドを追加をクリックします。

12

名前フィールドとラベルフィールドにmost_common_product_nameと入力します。

13

データ型ドロップダウンメニューを使用して、文字列を選択します。

14

任意ドロップダウンメニューを使用して、いいえを選択します。

15

保存をクリックします。

16

+フィールドを追加をクリックします。

17

名前フィールドとラベルフィールドにmost_common_product_typeと入力します。

18

データ型ドロップダウンメニューを使用して、文字列を選択します。

19

任意ドロップダウンメニューを使用して、いいえを選択します。

20

保存をクリックします。

21

+フィールドを追加をクリックします。

22

名前フィールドとラベルフィールドにmost_common_product_categoryと入力します。

23

データ型ドロップダウンメニューを使用して、文字列を選択します。

24

任意ドロップダウンメニューを使用して、いいえを選択します。

25

保存をクリックします。

26

+フィールドを追加をクリックします。

27

名前フィールドとラベルフィールドにmost_common_product_manufacturerと入力します。

28

データ型ドロップダウンメニューを使用して、文字列を選択します。

29

任意ドロップダウンメニューを使用して、いいえを選択します。

30

保存をクリックします。

31

+フィールドを追加をクリックします。

32

名前フィールドとラベルフィールドにmost_common_brandと入力します。

33

データ型ドロップダウンメニューを使用して、文字列を選択します。

34

任意ドロップダウンメニューを使用して、いいえを選択します。

35

保存をクリックします。

Snowflakeの出力フィールドSnowflakeの出力フィールド

7

+ステップを追加をクリックし、エラーを処理を選択します。

アクションを追加ステップを追加 > エラーを処理をクリック

8
ERROR FOUND?を設定します。 ブロック。

ERROR FOUND?を設定する ブロック

この手順では、レシピにカスタムSQL実行アクションのエラーを監視させます。 これにより、設定した新規APIリクエストトリガーのレスポンススキーマで、LLMエージェントが200レスポンスまたはエラーレスポンスを返すように指示します。

ERROR FOUND?ブロックを設定するには、次の手順を実行します:

1

はいブランチに移動し、Monitorブロックでアクションを再試行しますか?再試行しないに設定されていることを確認します。

2

再試行しないの下にある+ステップを追加をクリックします。

3

Select an app and actionをクリックします。 API platform by Workatoを検索して選択し、アプリとして設定します。

4

アクションとしてAPIリクエストに応答を選択します。

5

レスポンスドロップダウンメニューを使用して、エラーを選択します。

6

レスポンス本文セクションを展開します。

7
エラーが発生したアクションStep 5データピルをステータスフィールドにマッピングします。
8
エラーメッセージStep 5データピルをメッセージフィールドにマッピングします。
9
エラータイプIDStep 5データピルをエラーフィールドにマッピングします。

ERROR FOUND?を設定 ブロックERROR FOUND?ブロックを設定

10

保存をクリックします。

11

いいえブランチに移動し、アプリとアクションを選択をクリックします。

12

API platform by Workatoを検索して選択し、アプリとして設定します。

13

アクションとしてAPIリクエストに応答を選択します。

14

レスポンスドロップダウンメニューを使用して、200を選択します。

15

レスポンス本文セクションを展開します。

16

Snowflakeのnumber_of_sales_ordersStep 4データピルをnumber_of_sales_ordersフィールドにマッピングします。

17

Snowflakeのtotal_salesStep 4データピルをtotal_salesフィールドにマッピングします。

18

Snowflakeのmost_common_product_nameStep 4データピルをmost_common_product_nameフィールドにマッピングします。

19

Snowflakeのmost_common_product_typeStep 4データピルをmost_common_product_typeフィールドにマッピングします。

20

Snowflakeのmost_common_product_categoryStep 4データピルをmost_common_product_categoryフィールドにマッピングします。

200成功レスポンス本文200成功レスポンス本文

21

Snowflakeのmost_common_product_manufacturerStep 4データピルをmost_common_product_manufacturerフィールドにマッピングします。

22

Snowflakeのmost_common_brandStep 4データピルをmost_common_brandフィールドにマッピングします。

23

保存をクリックします。

9
MCPサーバーを作成します。

MCPサーバーを作成する

この手順では、新しいMCPサーバーを作成し、APIリクエストとSnowflakeレシピを追加します。 MCPサーバーに追加したレシピは、LLMで使用できるツールになります。

1

AI Hubに移動し、MCP serversタブを選択して、+MCPサーバーを作成をクリックします。 または、プロジェクトページで作成 > MCPサーバーをクリックするか、C+Mを押して、MCPサーバーを作成できます。

2

MCPサーバー名フィールドにMCPサーバーの名前を指定します。 例: Snowflake analysis tool

3

任意です。 説明フィールドにMCPサーバーの説明を指定します。 LLMはこの説明を使用してサーバーを理解します。 この説明はエンドユーザーには表示されません。

4

ロケーションドロップダウンメニューを使用して、MCPサーバーのロケーションを選択します。

5

ツールソースセクションに移動し、プロジェクトアセットを選択します。

6

前の手順で作成したAPIおよびSnowflakeレシピのチェックボックスを選択します。

7

ビルドを開始をクリックします。 MCPでは概要タブが自動的に表示されます。

8

設定 > エンドユーザーアクセスをクリックします。

9

Developer MCP Tokenセクションに移動し、コピーをクリックして、後の手順で使用するMCPサーバーURLとトークンをコピーします。

MCP URLをコピーMCP URLをコピー

10

MCP連携を作成する予定のLLMに移動し、次の設定手順を実行します。

テスト済みのLLM

このユースケースはChatGPT、Claude、およびCursorでテストされています。 設定と利用状況は他のLLMによって異なる場合があります。

ChatGPTでMCP連携を設定します。

ChatGPT MCP設定

この手順では、OpenAIアカウントに新しいMCPサーバーコネクターを設定します。これにより、ChatGPTで自然言語コマンドを使用して、SnowflakeデータからInsightsを抽出できます。

1

ChatGPTアカウントに移動します。

2

設定>アプリとコネクター>詳細設定に移動し、開発者モードトグルを有効にします。

3

設定 > アプリとコネクタに移動します。

4

Createをクリックします。 このボタンは、開発者モードトグルが有効になっている場合にのみ表示されます。

5

NameフィールドにMCPコネクターの名前を入力します。

ChatGPTコネクターChatGPT MCPコネクターの設定

6

MCP URLとトークンをURLフィールドに貼り付けます。

7

任意です。 Descriptionフィールドに説明を入力します。

8

認証ドロップダウンメニューを使用して、認証なしを選択します。

9

チェックボックスを選択して、カスタムMCPサーバーを追加するリスクを受け入れます。

10

Createをクリックします。

11

MCPツールを使用するには、ChatGPTで新しいチャットを作成します。

Claude用のMCPインテグレーションを設定します。

Claude MCP設定

この手順では、Anthropicアカウントに新しいMCPサーバーコネクターを設定します。これにより、Claudeで自然言語コマンドを使用してSnowflakeデータからInsightsを抽出できます。

1

Settings > Connectorsに移動します。

2

+ Add new connectorをクリックします。

3

NameフィールドにMCPコネクターの名前を入力します。

ClaudeコネクターClaude MCPコネクターを設定

4

MCP URLとトークンをRemote MCP server URLフィールドに貼り付けます。

5

Addをクリックします。 新しく作成されたMCPコネクターがコネクターのリストに表示されます。

6

Configureをクリックします。

7

権限のドロップダウンメニューを使用して、Always ask permissionまたはAllow unsupervisedを選択します。 デフォルトではAlways ask permissionが選択されています。

8

MCPツールを使用するには、Claudeで新しいチャットを作成してください。

Cursor用にMCP連携を設定します。

Cursor MCP設定

この手順では、Cursorアカウントに新しいMCPサーバーコネクターを設定します。これにより、自然言語コマンドを使用してSnowflakeデータからInsightsを抽出できます。 このプロセスでは、MCP URLと認証トークンを使用して認証します。 Workato Identityで認証する予定の場合は、Workato Identity認証を使用したCursor MCPリモートサーバー設定を参照してください。

1

Settings > Cursor settingsに移動します。

2

サイドバーでMCP & Integrationsをクリックします。

3

+ New MCP Serverをクリックして、mcp.jsonファイルを開きます。

新しいMCPサーバー+ New MCP Serverをクリック

4

前の手順でコピーしたMCP URLとトークンを使用するように設定を更新します。 例:

json

{
  "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"
    }
  }
}
5

変更を保存します。

6

MCPツールを使用するには、Cursorエージェントで新しいチャットを作成します。

エージェントで新しいチャットを開始する必要があります。 Cursor agentは、チャットの開始時に利用可能なツールと機能にのみアクセスできます。 エージェントは、チャットの開始後に追加された新しいMCP設定、サーバー、ツールを検出または使用できません。

11

LLMでMCPツールをテストします。

ClaudeサンプルチャットClaudeサンプルチャット

Last updated: