CREATE MCP SERVER¶
Erstellt einen neuen MCP-Server (Modellkontext-Protokoll) oder ersetzt einen bestehenden MCP-Server
- Siehe auch:
Syntax¶
CREATE [ OR REPLACE ] MCP SERVER [ IF NOT EXISTS ] <name>
FROM SPECIFICATION $$<specification_yaml>$$
Parameter¶
nameZeichenfolge, die den Bezeichner für den MCP-Server angibt. Der Wert muss für das Schema, in dem der MCP-Server erstellt wird, eindeutig sein.
Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B.
"My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.
FROM SPECIFICATION $$specification_yaml$$Gibt die YAML-Spezifikation an, die die Tools und die Konfiguration für den MCP-Server definiert.
Die Spezifikation muss ein
tools-Array mit einer oder mehreren Tool-Definitionen enthalten. Jedes Tool muss Folgendes angeben:name: Eindeutiger Bezeichner für das Tooltype: Tool-Typ (siehe unterstützte Tool-Typen)title: Von Menschen lesbarer Titel für das Tooldescription: Eine Beschreibung, was das Tool macht
Unterstützte Tool-Typen:
CORTEX_SEARCH_SERVICE_QUERY: Cortex Search Service-ToolCORTEX_ANALYST_MESSAGE: Cortex Analyst-ToolSYSTEM_EXECUTE_SQL: SQL-AusführungstoolCORTEX_AGENT_RUN: Cortex Agent-ToolCUSTOM: Kundenspezifisches Tool für UDFs und gespeicherte Prozeduren
Tool-spezifische Anforderungen:
Für
CORTEX_SEARCH_SERVICE_QUERY-,CORTEX_ANALYST_MESSAGE- undCORTEX_AGENT_RUN-Tools:identifier: Vollqualifizierter Name des zugrunde liegenden Objekts (z. B.database.schema.object_name)
Für
CUSTOM-Tools:identifier: Vollqualifizierter Name der UDF oder der gespeicherten Prozedur.config: Konfigurationsobjekt, das Folgendes angibt:type: Entwederfunction(für UDF) oderprocedure(für gespeicherte Prozedur)warehouse: Warehouse, das für die Ausführung verwendet werden sollinput_schema: JSON-Schema, das die Funktions-/Prozedurparameter definiert
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
|---|---|
CREATE MCP SERVER |
Schema |
USAGE |
Schema |
Für Tools, die auf andere Objekte verweisen, sind zusätzliche Berechtigungen erforderlich:
Berechtigung |
Objekt |
|---|---|
USAGE |
Cortex Search Service (für CORTEX_SEARCH_SERVICE_QUERY-Tools) |
SELECT |
Semantische Ansicht (für CORTEX_ANALYST_MESSAGE-Tools) |
USAGE |
Cortex Agent (für CORTEX_AGENT_RUN-Tools) |
USAGE |
Benutzerdefinierte Funktion oder gespeicherte Prozedur (für CUSTOM-Tools) |
USAGE |
Warehouse (für CUSTOM-Tools) |
Für das Ausführen von Operationen für ein Objekt in einem Schema ist mindestens eine Berechtigung für die übergeordnete Datenbank und mindestens eine Berechtigung für das übergeordnete Schema erforderlich.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Die Klauseln OR REPLACE und IF NOT EXISTS schließen sich gegenseitig aus. Sie können nicht beide in der gleichen Anweisung verwendet werden.
CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.
CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.
Wenn Sie Hostnamen für MCP-Serververbindungen konfigurieren, verwenden Sie Bindestriche (
-) anstelle von Unterstrichen (_). MCP-Server haben Verbindungsprobleme bei Hostnamen, die Unterstriche enthalten.Das MCP-Serverspezifikationen werden als Metadaten gespeichert und können mit DESCRIBE MCP SERVER angezeigt werden.
Mehrere Tools können in einer einzigen MCP-Serverspezifikation definiert werden.
Toolnamen müssen innerhalb eines einzelnen MCP-Servers eindeutig sein.
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Beispiel 1: Einen MCP-Server mit Cortex Search- und Analyst-Tools erstellen
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"
$$;
Beispiel 2: MCP-Server mit dem SQL-Ausführungstool erstellen
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."
$$;
Beispiel 3: MCP-Server mit einem kundenspezifischen UDF-Tool erstellen
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"
$$;
Beispiel 4: MCP-Server mit Tool für kundenspezifische gespeicherte Prozeduren erstellen
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"
$$;
Beispiel 5: MCP-Server mit Agent-Tool erstellen
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"
$$;