CREATE MCP SERVER

新しい MCP(Model Context Protocol)サーバーを作成するか、既存の MCP サーバーを置き換えます。

こちらもご参照ください。

DESCRIBE MCP SERVERDROP MCP SERVERSHOW MCP SERVERS

構文

CREATE [ OR REPLACE ] MCP SERVER [ IF NOT EXISTS ] <name>
  FROM SPECIFICATION $$<specification_yaml>$$
Copy

パラメーター

name

MCP サーバーの識別子を指定する文字列。MCP サーバーが作成されるスキーマに対して一意である必要があります。

また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

FROM SPECIFICATION $$specification_yaml$$

MCP サーバーのツールおよび構成を定義する YAML 仕様を指定します。

仕様には、1つ以上のツール定義を含む tools 配列が含まれている必要があります。各ツールは以下を指定する必要があります。

  • name:ツールの一意の識別子。

  • type:ツールタイプ(サポートされるツールタイプを参照)

  • title:ツールの人間が読めるタイトル

  • description:ツールの動作の説明

サポートされるツールタイプ:

  • CORTEX_SEARCH_SERVICE_QUERY:Cortex Search Serviceツール

  • CORTEX_ANALYST_MESSAGE:Cortex Analystツール

  • SYSTEM_EXECUTE_SQL: SQL 実行ツール

  • CORTEX_AGENT_RUN:Cortex Agentツール

  • CUSTOM:UDFs およびストアドプロシージャ用カスタムツール

ツール固有の要件:

CORTEX_SEARCH_SERVICE_QUERYCORTEX_ANALYST_MESSAGE 、および CORTEX_AGENT_RUN ツールの場合:

  • identifier:基になるオブジェクトの完全修飾名(例: database.schema.object_name

CUSTOM ツールの場合:

  • identifier:UDF またはストアドプロシージャの完全修飾名

  • config:次を指定する構成オブジェクト:

    • type:function (UDF の場合)または procedure (ストアドプロシージャの場合)のいずれか

    • warehouse:実行に使用するウェアハウス

    • input_schema: 関数/プロシージャのパラメーターを定義する JSON スキーマ

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

CREATE MCP SERVER

スキーマ

USAGE

スキーマ

他のオブジェクトを参照するツールには、追加の権限が必要です。

権限

オブジェクト

USAGE

Cortex Search Service(CORTEX_SEARCH_SERVICE_QUERY ツール用)

SELECT

セマンティックビュー(CORTEX_ANALYST_MESSAGE ツール用)

USAGE

Cortex Agent(CORTEX_AGENT_RUN ツール用)

USAGE

ユーザー定義関数またはストアドプロシージャ(CUSTOM ツール用)

USAGE

ウェアハウス(CUSTOM ツール用)

スキーマ内のオブジェクトを操作するには、親データベースの少なくとも1つの権限と、親スキーマの少なくとも1つの権限が必要です。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • OR REPLACE 句と IF NOT EXISTS 句は互いに排他的です。この2つを同じステートメントで使うことはできません。

  • CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。

  • CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。

  • MCP サーバー接続のホスト名を構成する場合、アンダースコア( _ )ではなくハイフン( - )を使用します。MCP サーバーでは、アンダースコアを含むホスト名に接続の問題があります。

  • MCP サーバーの仕様はメタデータとして保存され、 DESCRIBE MCP SERVER を使用して表示できます。

  • 単一の MCP サーバー仕様で複数のツールを定義できます。

  • ツール名は、単一の MCP サーバー内で一意である必要があります。

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

例1:Cortex SearchおよびAnalystツールを含む MCP サーバーを作成する

CREATE MCP SERVER my_mcp_server
  FROM SPECIFICATION $$
    tools:
      - name: "product-search"
        type: "CORTEX_SEARCH_SERVICE_QUERY"
        identifier: "database1.schema1.cortex_search_service1"
        description: "Cortex search service for all products"
        title: "Product Search"

      - name: "revenue-semantic-view"
        type: "CORTEX_ANALYST_MESSAGE"
        identifier: "database1.schema1.semantic_view_1"
        description: "Semantic view for all revenue tables"
        title: "Semantic view for revenue"
  $$;
Copy

例2:SQL 実行ツールを含む MCP サーバーを作成する

CREATE MCP SERVER sql_exec_server
  FROM SPECIFICATION $$
    tools:
      - title: "SQL Execution Tool"
        name: "sql_exec_tool"
        type: "SYSTEM_EXECUTE_SQL"
        description: "A tool to execute SQL queries against the connected Snowflake database."
  $$;
Copy

例3:カスタム UDF ツールを含む MCP サーバーを作成する

CREATE MCP SERVER custom_tools_server
  FROM SPECIFICATION $$
    tools:
      - title: "Multiply by Ten"
        identifier: "example_database.agents.multiply_by_ten"
        name: "multiply_by_ten"
        type: "CUSTOM"
        description: "Multiplies input value by ten and returns the result."
        config:
          type: "function"
          warehouse: "compute_service_warehouse"
          input_schema:
            type: "object"
            properties:
              x:
                description: "A number to be multiplied by ten"
                type: "number"
  $$;
Copy

例4:カスタムストアドプロシージャツールを含む MCP サーバーを作成する

CREATE MCP SERVER procedure_tools_server
  FROM SPECIFICATION $$
    tools:
      - title: "Calculate Values"
        identifier: "example_database.agents.calculate_values_sp"
        name: "calculate_values_sp"
        type: "CUSTOM"
        description: "Calculates the product and sum of two numbers and returns them in a JSON object."
        config:
          type: "procedure"
          warehouse: "compute_service_warehouse"
          input_schema:
            type: "object"
            properties:
              x:
                description: "First number"
                type: "number"
              y:
                description: "Second number"
                type: "number"
  $$;
Copy

例5:Agentツールを含む MCP サーバーを作成する

CREATE MCP SERVER agent_server
  FROM SPECIFICATION $$
    tools:
      - title: "Customer Service Agent"
        name: "customer_agent"
        type: "CORTEX_AGENT_RUN"
        identifier: "support_db.agents_schema.customer_service_agent"
        description: "Agent that handles customer service inquiries"
  $$;
Copy