MCP-Konnektoren

Übersicht

Ein MCP-Konnektor in Snowflake verbindet Snowflake Intelligence und Cortex Agenten mit einem entfernten Model Context Protocol (MCP)-Server, sodass der Agent Tools erkennen und aufrufen kann, die von Anbietern wie Atlassian Jira, Salesforce oder Ihren eigenen benutzerdefinierten Anwendungen bereitgestellt werden Durch MCP-Konnektoren können Ihre Agenten über die Beantwortung von Fragen hinaus gehen und Aktionen in Unternehmenssystemen durchführen, z. B. das Erstellen von Jira-Tickets, das Aktualisieren von Salesforce-Datensätzen oder das Posten in Slack, und das alles innerhalb der verwalteten Umgebung von Snowflake.

Wie MCP-Konnektoren funktionieren

Administratoren erstellen ein externes MCP-Serverobjekt, das auf eine API-Integration verweist, die OAuth-Anmeldeinformationen enthält. Snowflake unterstützt Standard-OAuth mit Anmeldeinformationen (Client-ID, Clientgeheimnis) sowie die dynamische Clientregistrierung (DCR). Sie können aus einer Reihe von verfügbaren MCP-Konnektoren auswählen oder Ihren eigenen Konnektor erstellen. Nachdem der MCP-Konnektor zum Agenten hinzugefügt wurde, können sich Benutzer mit dem Drittanbieterdienst authentifizieren und die Tools direkt mit Cortex Agents und in Snowflake Intelligence verwenden.

Einrichtungsablauf

Mit diesen Schritten können Sie einen MCP-Konnektor erstellen und in Ihren Snowflake-Workflows verwenden:

  1. Einrichten durch den Anbieter: Der Kontoadministrator erstellt einen MCP-Server auf dem Dashboard des Anbieters (z. B. Salesforce oder Atlassian) und erhält OAuth-Anmeldeinformationen.

  2. API-Integration: Der Kontoadministrator erstellt eine API-Integration in Snowflake, in der die Server-URL, Client-ID, das Clientgeheimnis und OAuth-Endpunkte gespeichert werden.

  3. Externe MCP-Servererstellung: Der Kontoadministrator erstellt ein externes MCP-Serverobjekt, das auf die API-Integration verweist.

  4. Agentenkonfiguration: Der Entwickler des Agenten fügt den externen MCP-Server zur Spezifikation eines Cortex Agents hinzu.

  5. Benutzerauthentifizierung: Snowflake Intelligence-Benutzer verbinden sich mit dem MCP-Server über die Snowflake Intelligence-Schnittstelle und authentifizieren sich gegenüber dem Drittanbieterdienst mittels OAuth.

Erkennen und Aufrufen von Tools

Wenn ein Agent aufgerufen wird, ruft er die Liste der verfügbaren Tools von jedem konfigurierten externen MCP-Server unter Verwendung der tools/list-Methode ab. Während der Orchestrierung ruft der Agent bestimmte Tools auf, indem er die tools/call-Methode nutzt und die erforderlichen Argumente übergibt. Snowflake überprüft, ob sowohl der MCP-Server als auch dessen zugrunde liegende API-Integration aktiviert wurden, bevor ein Tool-Aufruf ausgeführt wird.

Zugriffssteuerung

In der folgenden Tabelle sind die Berechtigungen beschrieben, die für externe MCP-Serveroperationen erforderlich sind:

Berechtigung

Objekt

Erforderlich für

CREATE EXTERNAL MCP SERVER

Schema

Erstellen eines externen MCP-Servers

OWNERSHIP

MCP Server

Löschen des MCP-Servers

MODIFY

MCP Server

Aktualisieren, Löschen, Beschreiben, Anzeigen und Verwenden des MCP-Servers

USAGE

MCP Server

Verbinden mit dem MCP-Server und Erkennungstools

USAGE

API-Integration

Verbinden mit dem MCP-Server und Erkennungstools

OWNERSHIP oder MODIFY

API-Integration

Aktivieren, Deaktivieren oder Löschen der API-Integration

Standardmäßig verfügen nur Kontoadministratoren über diese Berechtigungen.

Wichtig

Externe MCP-Server werden nicht von Snowflake bereitgestellt, gewartet oder überprüft. Durch die Verbindung mit einem externen MCP-Server sind Sie dafür verantwortlich, die Vertrauenswürdigkeit des Servers zu überprüfen, sicherzustellen, dass Sie über die Rechte für den Zugriff und die Verarbeitung der bereitgestellten Daten verfügen, und alle geltenden Gesetze sowie die Bedingungen Dritter, die diese Daten regeln, einzuhalten Snowflake übernimmt keine Garantie oder Unterstützung für externe MCP-Server und ist nicht verantwortlich für Fehler, Datenverluste oder Sicherheitsvorfälle, die sich aus der Verwendung ergeben.

Einrichten unterstützter MCP-Konnektoren

Sie können sich mit minimalem Konfigurationsaufwand mit den folgenden MCP-Servern verbinden

  • Atlassian

  • GitHub

  • Glean

  • Linear

  • Salesforce

Mit diesen MCP-Anbietern durchlaufen Sie den folgenden Workflow:

  1. Geben Sie in die Anbieterdetails im Typfeld API_USER_AUTHENTICATION an.

  2. Richten Sie die Anbieterkonfiguration ein, die für jeden Anbieter eindeutig ist.

  3. Referenzieren Sie diese API-Integration bei der Erstellung des externen MCP-Server-Objekts.

Bemerkung

Für OAuth-Autorisierungscodeabläufe muss der Client einen URL-Callback bereitstellen, nachdem die Zustimmung zum externen Dienstanbieter erteilt wurde. Der externe Dienstanbieter sendet den Benutzer an den URL-Callback, um den Ablauf zu beenden. Im Allgemeinen müssen zwei URLs an die OAuth-App-Konfiguration übergeben werden:

  • Für Cortex Code-CLI: <account_url>/oauth/complete-secret

  • Für Snowflake Intelligence- und Snowsight-UI: <snowsight_url>/oauth/complete-secret

Die Snowsight-URL kann über SYSTEM$ALLOWLIST oder SYSTEM$ALLOWLIST_PRIVATELINK abgerufen werden, je nachdem, ob PrivateLink verwendet wird. Wählen Sie den Typ SNOWSIGHT_DEPLOYMENT, der mit apps-api (für öffentlichen Zugang) oder app.<region>.privatelink.snowflakecomputing (für PrivateLink ) beginnt.

  1. Navigieren Sie zu Admin.atlassian.com.

  2. Wählen Sie im linken Navigationsbereich die Option Apps > AI Settings > Rovo MCP Server aus.

  3. Unter Your domains wählen Sie Add Domain aus, um zwei Callback-URLs hinzuzufügen, wie im Hinweis oben beschrieben.

  4. Wählen Sie Add aus.

  5. Melden Sie sich bei Snowsight an.

  6. Wählen Sie im Navigationsmenü die Option AI & ML » Agents aus.

  7. Wählen Sie Settings aus.

  8. Wählen Sie Tools and Connectors aus.

  9. Wählen Sie Browse Connectors aus.

  10. Wählen Sie Atlassian aus.

  11. Geben Sie einen Namen und eine Beschreibung für den MCP-Server ein.

  12. Unter Server URL geben Sie https://mcp.atlassian.com/v1/mcp ein.

  13. Wählen Sie die Datenbank und das Schema aus, wo der MCP-Server erstellt wird.

  14. Wählen Sie Add aus.

Das folgende Beispiel zeigt die SQL-Befehle, um die API-Integration und den MCP-Server für Atlassian zu erstellen.

-- 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;

Kundenspezifische MCP-Konnektoren

Sie können benutzerdefinierte Konnektoren auch manuell konfigurieren, um eine Verbindung zu einem beliebigen MCP-kompatiblem Endpunkt herzustellen.

  1. Stellen Sie die vollständige OAuth-Konfiguration als Teil der API-Integrationserstellung bereit:

     -- 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;
    

    Alternativ können Sie auch API-Integration mit DCR verwenden:

    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. Erstellen Sie das MCP-Serverobjekt:

    -- 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. Referenzieren Sie den MCP-Server in der Konfiguration des Agenten:

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

OAuth-Parameter für benutzerdefinierte MCP-Server

In der folgenden Tabelle beschreibt den OAuth-Parameter für benutzerdefinierte MCP-Server:

Parameter

Typ

Erforderlich

Standard

Beschreibung

OAUTH_CLIENT_ID

STRING

Ja

Keine

Client-ID des MCP-Serveranbieters

OAUTH_CLIENT_SECRET

STRING

Ja

Keine

Clientgeheimnis des MCP-Serveranbieters

OAUTH_DISCOVERY_URL

STRING

Nein

Keine

OpenID Connect Discovery URL für die automatische Endpunkt-Auflösung

OAUTH_TOKEN_ENDPOINT

STRING

Ja

Keine

Endpunkt für den Austausch von Autorisierungscodes für Zugriffstoken

OAUTH_AUTHORIZATION_ENDPOINT

STRING

Ja

Keine

Endpunkt, an dem Benutzer die Verbindung autorisieren

OAUTH_CLIENT_AUTH_METHOD

STRING

Nein

CLIENT_SECRET_BASIC

Authentifizierungsmethode: CLIENT_SECRET_BASIC oder CLIENT_SECRET_POST

MCP-Konnektoren zum Cortex Agent hinzufügen

Nach der MCP-Serverobjekterstellung referenziert der Agentenentwickler es in der Cortex Agent-Konfiguration. MCP-Konnektoren sind im Agent Admin-UI verfügbar, wo Entwickler MCP-Konnektoren durchsuchen und auswählen können, die auf Kontoebene konfiguriert sind. Sie können auch SQL oder API verwenden, um MCP-Konnektoren zu Ihren Agenten hinzuzufügen.

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option AI & ML » Agents aus.

  3. Wählen Sie in der Liste der Agenten den entsprechenden Agenten aus.

  4. Wählen Sie MCP Connectors aus.

  5. Wählen Sie aus der Liste Available Connectors den Konnektor aus, den Sie hinzufügen möchten.

  6. Überprüfen Sie die Details des Konnektors und wählen Sie Add to agent aus.

Cortex Agenten, die auf diese MCP-Server verweisen, können auf vom Anbieter bereitgestellte Tools zugreifen. Beispielsweise umfassen die Tools bei Atlassian das Erstellen von Jira-Tickets, das Kommentieren von Tickets, das Erstellen von Confluence-Seiten sowie das Aktualisieren bestehender Seiten.

Wenn der Agent aufgerufen wird, ruft er die Toolliste von jedem MCP-Server ab und bezieht diese Tools in seine Orchestrierung ein. Der Agent wählt Tools basierend auf der Anfrage des Benutzers und den vom MCP-Server bereitgestellten Tool-Beschreibungen aus und ruft diese auf.

Verwenden von MCP-Konnektoren in Snowflake Intelligence

Snowflake Intelligence-Benutzer verbinden sich mit externen MCP-Servern über die Snowflake Intelligence-Schnittstelle:

  1. Navigieren Sie zu Snowflake Intelligence, indem Sie die Anweisungen unter Zugriff auf den Agenten befolgen.

  2. Öffnen Sie das Quellenfenster und wählen Sie Connectors aus.

  3. Wählen Sie Connect neben dem gewünschten Konnektor. Sie können auch Manage Connections auswählen. Wählen Sie dann Connect.

  4. Der Benutzer wird auf die Seite des Authentifizierungsdienstes eines Drittanbieters weitergeleitet, um die Verbindung zu genehmigen.

  5. Nach der Authentifizierung wird der Konnektor als Connected in der Liste der Quellen angezeigt. Sie können nun mit dem Agenten interagieren, um Informationen vom externen MCP-Server zu erhalten.

Um die Verbindung zum Server zu trennen, kann der Benutzer Folgendes tun:

  1. Wählen Sie Manage Connections aus.

  2. Wählen Sie MCP Server und dann Disconnect aus.

Benutzer können Konnektoren im Dropdown-Menü „Quellen“ verbinden und trennen, um sie in die Orchestrierung des Agenten einzubeziehen oder davon auszuschließen. Konnektoren, die nicht im Connected-Status enthalten, sind bei der Orchestrierung nicht enthalten.

Wenn das Authentifizierungstoken eines Benutzers abläuft, forder Snowflake Intelligence den Benutzer auf, sich erneut zu authentifizieren.

Verwenden von MCP Konnektoren in Agent:run API

Agent:run API stellt eine Verbindung zu MCP-Servern über die Clientschnittstelle her. Verwenden Sie die folgenden Funktionen, um Benutzer mit dem Drittanbieterdienst zu authentifizieren:

  • Funktion zum Starten des OAuth-Ablaufs:

    -- Returns authorization URI to authenticate through the third-party service
    SELECT SYSTEM$START_USER_OAUTH_FLOW('<API_INTEGRATION_NAME>');
    
  • Funktion zum Beenden des OAuth-Ablaufs:

    SYSTEM$FINISH_OAUTH_FLOW( '<query_string>' )
    

SYSTEM$START_USER_OAUTH_FLOW gibt eine Autorisierungs-URL für API-Integrationen mit API_PROVIDER = EXTERNAL_MCP zurück. Öffnen Sie die URL in einem Browser, um die Zustimmung zu vervollständigen, und führen Sie dann SYSTEM$FINISH_OAUTH_FLOW in derselben Sitzung mit der Abfragezeichenfolge aus der Umleitungs-URL aus. Weitere Informationen zu SYSTEM$FINISH_OAUTH_FLOW finden Sie unter SYSTEM$FINISH_OAUTH_FLOW.

Verwalten von MCP-Servern

Auflisten und Beschreiben von MCP-Servern

Auflisten aller externer MCP-Server in verschiedenen Bereichen:

-- 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;

Die Ausgabe umfasst den Servernamen, die Datenbank, das Schema, den Eigentümer, den Typ (vorgefertigt oder benutzerdefiniert), MCP-Server-URL, Zustand (aktiviert oder deaktiviert) und zugehörige API-Integration.

So zeigen Sie die vollständige Konfiguration eines bestimmten Servers an:

DESCRIBE EXTERNAL MCP SERVER mycompany_mcp_server;

Deaktivieren und Aktivieren Sie MCP-Server

Deaktivieren Sie einen MCP-Server durch Ändern seiner zugrunde liegenden API-Integration. Das Deaktivieren macht sofort alle Benutzer-Token ungültig und löst einen Aufruf an den Revocation-Endpunkt des MCP-Servers aus Geheimnisse werden nicht gelöscht, wenn Sie eine Integration deaktivieren. Sie verfallen auf natürliche Weise, wenn die Integration lange genug deaktiviert bleibt.

-- 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;

Warnung

Wenn Sie eine API-Integration deaktivieren, verlieren alle Agenten, die diesen MCP-Server verwenden, sofort den Zugriff auf seine Tools. Snowflake Intelligence zeigt Benutzern eine Warnung an, wenn ein Konnektor deaktiviert ist. Beim erneuten Aktivieren müssen sich die Benutzer erneut authentifizieren, als würden sie sich zum ersten Mal verbinden.

Sie können keinen neuen MCP-Server erstellen, der auf eine deaktivierte API-Integration verweist. Während der Ausführung des Agenten überprüft Snowflake sowohl den MCP-Server als auch die API-Integration und verwendet nur aktivierte Server.

Löschen eines MCP-Servers

Löschen Sie den MCP-Server zuerst und dann die API-Integration. Nur Rollen mit der OWNERSHIP-Berechtigung können Löschungen ausführen.

-- 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;

Warnung

Das Löschen einer API-Integration löscht permanent alle OAuth-Konfigurationen und gespeicherten Geheimnisse. Stellen Sie sicher, dass derzeit keine Agenten den MCP-Server verwenden, bevor Sie ihn löschen. Sie müssen beide Objekte von Grund auf neu erstellen, wenn Sie sie erneut benötigen.

Wichtige Hinweise und Best Practices

  • Benutzerdefinierte MCP-Server: Verwenden Sie benutzerdefinierte Server, wenn Sie eine Verbindung zu MCP-Endpunkten herstellen, die nicht in der Liste der verfügbaren MCP-Konnektoren sind. Snowflake unterstützt Benutzerauthentifizierungstypen für Atlassian, GitHub, Glean, Linear und Salesforce in der API-Integration.

  • Zugriff mit geringsten erforderlichen Berechtigungen: Gewähren Sie jeder Rolle nur die geringsten erforderlichen Berechtigungen. Der Zugriff auf einen MCP-Server gewährt nicht automatisch Zugriff auf dessen Tools; Sie müssen die Berechtigungen für jedes Tool separat erteilen.

  • OAuth-Authentifizierung: Snowflake unterstützt nur die Verwendung von OAuth für alle MCP-Serververbindungen.

  • Deaktivieren oder Löschen: Deaktivieren einer API-Integration behält ihre Konfiguration bei, macht aber sofort alle Benutzer-Token ungültig und blockiert Tool-Aufrufe. Löschen einer API-Integration löscht sie zusammen mit allen gespeicherten Geheimnissen dauerhaft. Deaktivieren Sie die Integration, wenn Sie Wartungsarbeiten durchführen. Löschen Sie die Integration bei einer Stilllegung.

  • Formatierung von Hostnamen: Verwenden Sie Bindestriche (-) anstelle von Unterstrichen (_) in Hostnamen bei der Konfiguration von MCP-Serververbindungen. Hostnamen mit Unterstrichen verursachen Verbindungsprobleme.

Einschränkungen

Es gelten die folgenden Einschränkungen für MCP-Konnektoren:

  • Überwachung: MCP-Tool-Aufrufe werden nicht in der Überwachungstabelle protokolliert.

  • MCP-Protokollbereich: Externe MCP-Server unterstützen nur Tool-Funktionen. Ressourcen, Eingabeaufforderungen, Roots, Benachrichtigungen, Versionsverhandlungen, Lebenszyklusphasen und Sampling werden nicht unterstützt.

  • Deaktivierte Integrationen: Sie können keinen MCP-Server erstellen, der auf eine deaktivierte API-Integration verweist.

  • Format von Hostnamen: Hostnamen dürfen Bindestriche und keine Unterstriche enthalten.