MCP 件のコネクタ

概要

Snowflakeの MCP コネクタは Snowflake Intelligence およびCortex Agentをリモートのモデルコンテキストプロトコル( MCP )サーバーに接続し、エージェントがAtlassian Jira、Salesforce、独自のカスタムアプリケーションなどのプロバイダーによってホストされているツールを検出して呼び出せるようにします。MCP コネクタを使用すると、エージェントは質問に回答するだけでなく、Jiraチケットの作成、Salesforceの記録の更新、Slackへの投稿など、すべてSnowflakeの管理対象環境内で、エンタープライズシステム全体でアクションを実行できます。

MCP コネクタの仕組み

管理者は、 API 統合 を参照する外部 MCP サーバーオブジェクトを作成します。これには、 OAuth 認証情報が含まれます。Snowflakeは、認証情報を持つ標準 OAuth (クライアント ID 、クライアントシークレット)、および動的クライアント登録( DCR )をサポートしています。利用可能な MCP コネクタのセットから選択するか、カスタムコネクタをビルドします。MCP コネクタがエージェントに追加されると、ユーザーはサードパーティのサービスで認証され、Cortex Agentsと Snowflake Intelligence でツールを直接使用することができます。

設定フロー

MCP コネクタを作成してSnowflakeワークフローで使用するには、次のステップを完了します。

  1. プロバイダーのセットアップ:アカウント管理者はプロバイダーのダッシュボード(例: SalesforceまたはAtlassian)で MCP サーバーを作成し、 OAuth 認証情報を取得します。

  2. API 統合:アカウント管理者は、サーバー URL 、クライアント ID 、クライアントシークレット、および OAuth エンドポイントを保存する API 統合をSnowflakeに作成します。

  3. 外部 MCP サーバーの作成:アカウント管理者は、 API 統合を参照する外部 MCP サーバーオブジェクトを作成します。

  4. エージェント構成:エージェント開発者は外部 MCP サーバーをCortex Agentの仕様に追加します。

  5. ユーザー認証: Snowflake Intelligence ユーザーは Snowflake Intelligence インターフェースを介して MCP サーバーに接続し、 OAuth を使用してサードパーティサービスで認証します。

ツールの検出と呼び出し

エージェントが呼び出されると、 tools/list メソッドを使用して、構成された各外部 MCP サーバーから利用可能なツールのリストを取得します。オーケストレーション中、エージェントは tools/call メソッドを使用し、必要な引数を渡して特定のツールを呼び出します。Snowflakeは、 MCP サーバーとその基になる API 統合両方がツール呼び出しを実行する前に有効化されていることを確認します。

アクセス制御

次の表は、外部 MCP サーバー操作に必要な権限を説明しています。

権限

オブジェクト

以下に必要

CREATE EXTERNAL MCP SERVER

スキーマ

外部 MCP サーバーの作成

OWNERSHIP

MCP サーバー

MCP サーバーのドロップ

MODIFY

MCP サーバー

MCP サーバーの更新、ドロップ、記述、表示、使用

USAGE

MCP サーバー

MCP サーバーへの接続とツール検出

USAGE

API 統合

MCP サーバーへの接続とツール検出

OWNERSHIP または MODIFY

API 統合

API 統合の有効化、無効化、またはドロップ

デフォルトでは、アカウント管理者のみがこれらの権限を持っています。

重要

外部 MCP サーバーはSnowflakeによって提供、保守、または検証されません。外部 MCP サーバーに接続することにより、サーバーの信頼性を確認し、サーバーが提供するデータにアクセスして処理する権利を持っていることを確認し、そのデータの管理に適用されるすべての法律およびサードパーティの規約に準拠する責任があります。Snowflakeは外部 MCP サーバーを保証、またはサポートしません。また、その使用によって発生したエラー、データの損失、またはセキュリティインシデントについて責任を負いません。

サポートされている MCP コネクタの設定

最小限の構成を持つ以下の MCP サーバーに接続できます。

  • Atlassian

  • GitHub

  • Glean

  • Linear

  • Salesforce

これらの MCP プロバイダーの場合は、次のワークフローを完了します。

  1. API_USER_AUTHENTICATION 型フィールドで、プロバイダーの詳細を指定します。

  2. 各プロバイダーに固有のプロバイダー構成を設定します。

  3. 外部 MCP サーバーオブジェクトの作成でこの API 統合を参照します。

注釈

OAuth 認証コードフローの場合、クライアントは、外部サービスプロバイダーに同意した後、コールバック URL を提供する必要があります。外部サービスプロバイダーはユーザーをコールバック URL に送信し、フローを終了します。一般に、2つの URLs を OAuth アプリ構成に提供する必要があります。

  • Cortexコード CLI の場合: <account_url>/oauth/complete-secret

  • Snowflake Intelligence およびSnowsight UI の場合: <snowsight_url>/oauth/complete-secret

Snowsight URL は、 PrivateLink が使用されているかどうかによって、 SYSTEM$ALLOWLIST または SYSTEM$ALLOWLIST_PRIVATELINK から取得できます。apps-api (パブリックアクセス用)または app.<region>.privatelink.snowflakecomputing ( PrivateLink 用)で始まる SNOWSIGHT_DEPLOYMENT 型のいずれかを選択します。

  1. Admin.atlassian.com に移動します。

  2. 左側のナビゲーションで、 Apps > AI Settings > Rovo MCP Server を選択します。

  3. 上記のメモで説明されているように、 Your domainsAdd Domain を選択して2つのコールバック URLs を追加します。

  4. Add を選択します。

  5. Snowsight にサインインします。

  6. ナビゲーションメニューで AI & ML » Agents を選択します。

  7. Settings を選択します。

  8. Tools and Connectors を選択します。

  9. Browse Connectors を選択します。

  10. Atlassian を選択します。

  11. MCP サーバーの名前と説明を入力します。

  12. Server URL には、 https://mcp.atlassian.com/v1/mcp を入力します。

  13. MCP サーバーが作成されるデータベースとスキーマを選択します。

  14. Add を選択します。

次の例は、Atlassian用の API 統合と MCP サーバーを作成する SQL コマンドを示しています。

-- Create the API integration using dynamic client registration (DCR)
CREATE API INTEGRATION jira_mcp_api_integration
  API_PROVIDER = external_mcp
  API_ALLOWED_PREFIXES = ('https://mcp.jira.atlassian.com')
  API_USER_AUTHENTICATION = (
    TYPE=OAUTH_DYNAMIC_CLIENT,
    OAUTH_RESOURCE_URL='https://mcp.atlassian.com/v1/mcp'
  )
  ENABLED = TRUE;

-- Create the external MCP server
CREATE EXTERNAL MCP SERVER atlassian_mcp_server
  WITH DISPLAY_NAME = 'Atlassian (Jira & Confluence)'
  URL='https://mcp.atlassian.com/v1/mcp'
  API_INTEGRATION = jira_mcp_api_integration;

カスタム MCP コネクタ

また、カスタムコネクタを手動で構成して、任意の MCP 互換エンドポイントに接続できます。

  1. API 統合の作成の一環として、完全な OAuth 構成を提供します。

     -- Create the API integration with full OAuth configuration
    CREATE API INTEGRATION custom_mcp_api_integration
       API_PROVIDER = external_mcp
       API_ALLOWED_PREFIXES = ('https://internal.mycompany.com/mcp')
       API_USER_AUTHENTICATION = (
         TYPE = OAUTH2
         OAUTH_CLIENT_ID = 'your_client_id'
         OAUTH_CLIENT_SECRET = 'your_client_secret'
         OAUTH_TOKEN_ENDPOINT = 'https://internal.mycompany.com/oauth/token'
         OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_BASIC
         OAUTH_AUTHORIZATION_ENDPOINT = 'https://internal.mycompany.com/oauth/authorize'
       )
       ENABLED = TRUE;
    

    または、 API 統合と DCR を使用できます。

    CREATE API INTEGRATION custom_mcp_api_integration
      API_PROVIDER = external_mcp
      API_ALLOWED_PREFIXES = ('https://internal.mycompany.com/mcp')
      API_USER_AUTHENTICATION = (
        TYPE = OAUTH_DYNAMIC_CLIENT
        OAUTH_RESOURCE_URL='https://internal.mycompany.com/mcp'
      )
      ENABLED = TRUE;
    
  2. MCP サーバーオブジェクトを作成します。

    -- Create the external MCP server
    CREATE EXTERNAL MCP SERVER mycompany_mcp_server
      WITH DISPLAY_NAME = 'Mycompany MCP server'
      API_INTEGRATION = custom_mcp_api_integration;
    
  3. エージェント構成の MCP サーバーを参照します。

    -- Add MCP server to agent
    ALTER AGENT my_support_agent
      ADD MCP_SERVER = 'db.schema.MCP server';
    

カスタム MCP サーバーの OAuth パラメーター

次のテーブル表では、カスタム MCP サーバーの OAuth パラメーターについて説明しています。

パラメーター

必須

デフォルト

説明

OAUTH_CLIENT_ID

STRING

有り

なし

MCP サーバープロバイダーのクライアント ID

OAUTH_CLIENT_SECRET

STRING

有り

なし

MCP サーバープロバイダーのクライアントシークレット

OAUTH_DISCOVERY_URL

STRING

無し

なし

自動エンドポイント解決のための OpenID Connect検出 URL

OAUTH_TOKEN_ENDPOINT

STRING

有り

なし

アクセストークンの認証コードを交換するためのエンドポイント

OAUTH_AUTHORIZATION_ENDPOINT

STRING

有り

なし

ユーザーが接続を承認するエンドポイント

OAUTH_CLIENT_AUTH_METHOD

STRING

無し

CLIENT_SECRET_BASIC

認証方法: CLIENT_SECRET_BASIC または CLIENT_SECRET_POST

MCP コネクタをCortex Agentへ追加する

MCP サーバーオブジェクトの作成後、エージェント開発者はCortex Agent構成でそれを参照します。MCP コネクタはAgent Admin UI で使用できます。そこでは、開発者はアカウントレベルで構成された MCP コネクタから閲覧して選択できます。SQL または API を使用して、 MCP コネクタをエージェントに追加することもできます。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで AI & ML » Agents を選択します。

  3. エージェントのリストからエージェント名を選択します。

  4. MCP Connectors を選択します。

  5. Available Connectors のリストから、追加するコネクタを選択します。

  6. コネクタの詳細を確認し、 Add to agent を選択します。

これらの MCP サーバーを参照するCortex Agentsは、プロバイダーが提供するツールにアクセスできます。例えば、Atlassianの場合、ツールにはJiraの問題の作成、問題へのコメント、Confluenceページの作成、既存のページの更新などがあります。

エージェントが呼び出されると、各 MCP サーバーからツールリストを取得します。サーバーのオーケストレーションにこれらのツールが含まれています。エージェントは、ユーザーのクエリと MCP サーバーから提供されたツールの説明に基づいてツールを選択し、呼び出します。

Snowflake Intelligence での MCP コネクタの使用

Snowflake Intelligence ユーザーは、 Snowflake Intelligence インターフェースを介して外部の MCP サーバーに接続します。

  1. エージェントにアクセスする の指示に従って、 Snowflake Intelligence インターフェースにナビゲートします。

  2. ソースパネルを開き、 Connectors を選択します。

  3. 選択したコネクタの横にある Connect を選択します。また、 Manage Connections を選択してから、 Connect を選択します。

  4. ユーザーはサードパーティサービスの認証ページにリダイレクトされ、接続を承認します。

  5. 認証後、コネクタはソースリストに Connected として表示されます。エージェントと対話して、外部の MCP サーバーから情報を取得できるようになりました。。

サーバーを切断するには、ユーザーは以下の手順を完了します。

  1. Manage Connections を選択します。

  2. MCP ServerDisconnect の順に選択します。

ユーザーは、ソースドロップダウンでコネクタを接続または切断して、エージェントのオーケストレーションに含めるか、除外できます。Connected 状態でないコネクタはオーケストレーションに含まれません。

ユーザーの認証トークンの有効期限が切れると、 Snowflake Intelligence はユーザーに再認証を求めます。

Agent:run API での MCP コネクタの使用

Agent:run API を実行して、クライアントインターフェースを介して MCP サーバーに接続します。サードパーティサービスでユーザーを認証するには、次の関数を使用します。

  • OAuth フローを開始する関数:

    -- Returns authorization URI to authenticate through the third-party service
    SELECT SYSTEM$START_USER_OAUTH_FLOW('<API_INTEGRATION_NAME>');
    
  • OAuth フローを終了する関数:

    SYSTEM$FINISH_OAUTH_FLOW( '<query_string>' )
    

SYSTEM$START_USER_OAUTH_FLOW は、 API_PROVIDER = EXTERNAL_MCP の API 統合用の認証 URL を返します。ブラウザーで URL を開き、同意を完了し、 URL リダイレクトからのクエリ文字列を使用して同じセッション内で SYSTEM$FINISH_OAUTH_FLOW を実行します。SYSTEM$FINISH_OAUTH_FLOW の詳細については、 SYSTEM$FINISH_OAUTH_FLOW をご参照ください。

MCP サーバーの管理

MCP サーバーの一覧表示と説明

異なるスコープで外部 MCP サーバーを一覧表示します。

-- List all MCP servers in the account
SHOW EXTERNAL MCP SERVERS IN ACCOUNT;

-- List MCP servers in a specific database or schema
SHOW EXTERNAL MCP SERVERS IN DATABASE prod_db;
SHOW EXTERNAL MCP SERVERS IN SCHEMA prod_db.integrations;

出力にはサーバー名、データベース、スキーマ、所有者、型(構築済みまたはカスタム)、 MCP サーバー URL 、状態(有効または無効)、および関連付けられた API 統合が含まれます。

特定のサーバーの完全な構成を表示するには、以下のようにします。

DESCRIBE EXTERNAL MCP SERVER mycompany_mcp_server;

MCP サーバーの無効化と有効化

基になる API 統合を変更することで MCP サーバーを無効化します。無効にすると、すぐにすべてのユーザートークンが無効になり、 MCP サーバーの失効エンドポイントへの呼び出しがトリガーされます。統合を無効にしても、シークレットは削除されません。統合が十分な期間、無効のままであれば、自然に期限切れになります。

-- Disable the MCP server
ALTER API INTEGRATION mycompany_mcp_integration SET ENABLED = FALSE;

-- Re-enable the MCP server
ALTER API INTEGRATION mycompany_mcp_integration SET ENABLED = TRUE;

警告

API 統合を無効にした場合、その MCP サーバーを使用するすべてのエージェンはすぐにツールにアクセスできなくなります。 Snowflake Intelligence は、コネクタが無効になった場合にユーザーに警告を表示します。再度有効にすると、ユーザーは、初めて接続する場合のように再認証する必要があります。

無効な API 統合を参照する新しい MCP サーバーは作成できません。エージェントの実行中、Snowflakeは MCP サーバーと API 統合の状態両方を確認し、有効なサーバーのみを使用します。

MCP サーバーのドロップ

まず MCP サーバーをドロップし、 API 統合をドロップします。OWNERSHIP 権限を持つロールのみがドロップを発行できます。

-- Drop the MCP server
DROP EXTERNAL MCP SERVER mycompany_mcp_server;

-- Drop the API integration (permanently deletes OAuth configuration and secrets)
DROP API INTEGRATION mycompany_mcp_integration;

警告

API 統合をドロップすると、すべての OAuth 構成と保存されたシークレットは永久に削除されます。ドロップする前に、現在 MCP サーバーを使用しているエージェントがないことを確認します。もう一度両方のオブジェクトが必要になったら、ゼロからそれらを再作成する必要があります。

主な考慮事項とベストプラクティス

  • カスタム MCP サーバー: 使用可能な MCP コネクタリストにない MCP エンドポイントに接続している場合、カスタムサーバーを使用します。Snowflakeは、 API 統合でAtlassian、 GitHub 、Glean、Linear、Salesforceのユーザー認証タイプをサポートしています。

  • 最小権限のアクセス: 各ロールに必要最低限の権限のみを付与します。MCP サーバーへのアクセスはツールへのアクセスを自動的に付与しません。ツールごとに個別に権限を付与する必要があります。

  • OAuth 認証: Snowflakeは、すべての MCP サーバー接続で OAuth の使用のみをサポートしています。

  • 無効またはドロップ: API 統合を無効化しても、その構成は保持されますが、すぐにすべてのユーザートークンが無効になり、ツール呼び出しはブロックされます。API 統合をドロップすると、保存されているすべてのシークレットとともに永久に削除されます。メンテナンスを実行する場合は、統合を無効にします。デコミッショニング時に統合をドロップします。

  • ホスト名の書式設定: MCP サーバー接続の構成時に、ホスト名にアンダースコア( _ )の代わりにハイフン( - )を使用します。アンダースコアを含むホスト名は、接続の問題を引き起こします。

制限事項

MCP コネクタには、次の制限が適用されます。

  • **モニタリング:**MCP ツール呼び出しはモニタリングテーブルにログされません。

  • MCP プロトコルスコープ: 外部 MCP サーバーはツール機能のみをサポートしています。リソース、プロンプト、ルート、通知、バージョン交渉、ライフサイクルフェーズ、サンプリングはサポートされていません。

  • 無効な統合: 無効な API 統合を参照する MCP サーバーは作成できません。

  • ホスト名の形式: ホスト名にはアンダースコアではなくハイフンを使用する必要があります。