CREATE MCP SERVER¶
Cria um novo servidor MCP (Model Context Protocol) ou substitui um servidor MCP existente.
- Consulte também:
Sintaxe¶
CREATE [ OR REPLACE ] MCP SERVER [ IF NOT EXISTS ] <name>
FROM SPECIFICATION $$<specification_yaml>$$
Parâmetros¶
nameCadeia de caracteres que especifica o identificador para o servidor MCP; deve ser exclusivo para o esquema no qual o servidor MCP é criado.
Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo,
"My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.Para obter mais informações, consulte Requisitos para identificadores.
FROM SPECIFICATION $$specification_yaml$$Determina a especificação YAML que define as ferramentas e a configuração para o servidor MCP.
A especificação deve incluir uma matriz
toolscom uma ou mais definições de ferramentas. Cada ferramenta deve especificar:name: identificador único da ferramentatype: tipo de ferramenta (consulte os tipos de ferramentas compatíveis)title: título legível da ferramentadescription: descrição da função da ferramenta
Tipos de ferramentas compatíveis:
CORTEX_SEARCH_SERVICE_QUERY: ferramenta Cortex Search ServiceCORTEX_ANALYST_MESSAGE: ferramenta Cortex AnalystSYSTEM_EXECUTE_SQL: ferramenta de execução SQLCORTEX_AGENT_RUN: ferramenta Cortex AgentCUSTOM: ferramenta personalizada para UDFs e procedimentos armazenados
Requisitos específicos da ferramenta:
Para ferramentas
CORTEX_SEARCH_SERVICE_QUERY,CORTEX_ANALYST_MESSAGEeCORTEX_AGENT_RUN:identifier: nome totalmente qualificado do objeto subjacente (por exemplo,database.schema.object_name)
Para ferramentas
CUSTOM:identifier: nome totalmente qualificado da UDF ou do procedimento armazenadoconfig: objeto de configuração que especifica:type:function(para UDF) ouprocedure(para procedimento armazenado)warehouse: warehouse a ser utilizado para execuçãoinput_schema: esquema JSON que define os parâmetros da função/procedimento
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
|---|---|
CREATE MCP SERVER |
Esquema |
USAGE |
Esquema |
Para ferramentas que fazem referência a outros objetos, são necessários privilégios adicionais:
Privilégio |
Objeto |
|---|---|
USAGE |
Cortex Search Service (para ferramentas CORTEX_SEARCH_SERVICE_QUERY) |
SELECT |
Exibição semântica (para ferramentas CORTEX_ANALYST_MESSAGE) |
USAGE |
Cortex Agent (para ferramentas CORTEX_AGENT_RUN) |
USAGE |
Função definida pelo usuário ou procedimento armazenado (para ferramentas CUSTOM) |
USAGE |
Warehouse (para ferramentas CUSTOM) |
A operação em um objeto de esquema requer pelo menos um privilégio no banco de dados pai e um privilégio no esquema pai.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
As cláusulas OR REPLACE e IF NOT EXISTS são mutuamente exclusivas. Os dois não podem ser usados na mesma instrução.
Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.
Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.
Quando você configurar nomes de host para conexões de servidor MCP, use hifens (
-) em vez de sublinhados (_). Servidores MCP apresentam problemas de conexão com nomes de host que contêm sublinhados.A especificação do servidor MCP é armazenada como metadados e pode ser visualizada usando DESCRIBE MCP SERVER.
Várias ferramentas podem ser definidas em uma única especificação de servidor MCP.
Os nomes das ferramentas devem ser exclusivos em um único servidor MCP.
Em relação aos metadados:
Atenção
Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.
Exemplos¶
Exemplo 1: Criar servidor MCP com as ferramentas Cortex Search e Analyst
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"
$$;
Exemplo 2: Criar servidor MCP com a ferramenta de execução SQL
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."
$$;
Exemplo 3: Criar servidor MCP com a ferramenta UDF personalizada
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"
$$;
Exemplo 4: Criar servidor MCP com a ferramenta de procedimento armazenado personalizada
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"
$$;
Exemplo 5: Criar servidor MCP com a ferramenta Agent
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"
$$;