Verbinden Sie Agenten mit Tools von Drittanbietern über MCP Services

Ein MCP-Dienst ist ein durch Unity Catalog gesichertes Objekt, das einen externen MCP-Server registriert und regelt, wie Agenten ihn verwenden. Sie adressieren es anhand des Namens der drei Ebenen, catalog.schema.mcp_serviceund rufen sie über Unity AI Gateway auf, die Steuerungsebene für die Steuerung des KI-Datenverkehrs.

Wenn Sie einen MCP-Server als Unity Catalog-Sicherungsobjekt registrieren, verwalten Sie ihn mit denselben grundlegenden Mechanismen, mit denen auch Ihre anderen Unity Catalog-Objekte geschützt werden. Dazu gehören Berechtigungen, mit denen gesteuert wird, wer sie aufrufen kann, die Toolauswahl, um zu begrenzen, welche Tools sie bereitstellt, Servicerichtlinien, um einzelne Toolaufrufe zuzulassen oder zu verweigern, sowie Audit- und Nutzungsprotokollierung, um jeden Aufruf nachzuverfolgen.

Note

MCP-Dienste sind eine von mehreren Möglichkeiten, Agenten mit externen MCPs und Tools zu verbinden, und die empfohlene, wenn der Dienst einen MCP-Server veröffentlicht. Für die vollständige Auswahl an Optionen, einschließlich verwalteter OAuth, des Unity Catalog Connections-Proxys und des direkten Aufrufs von REST-APIs, siehe diese Übersicht.

Es gibt zwei Möglichkeiten zur Verwendung von MCP-Diensten:

Approach Verwenden Sie, wenn
Verwenden eines von Databricks bereitgestellten MCP-Diensts Du möchtest ein gängiges Software-as-a-Service (SaaS)-Tool wie Slack, GitHub oder Google Drive ohne Einrichtung. Kein Server zum Hosten und keine Verbindung zum Erstellen.
Registrieren Ihres eigenen externen MCP-Servers Sie verfügen über einen selbst gehosteten oder von einem Drittanbieter bereitgestellten MCP-Server, den Sie als absicherbares Objekt in Unity Catalog verwalten können.

Anforderungen

  • Ein Arbeitsbereich, der für den Unity-Katalog aktiviert ist.

So funktioniert es

Ein Agent ruft einen MCP-Dienst über seine Unity AI Gateway-URL auf, und jeder Anruf fließt über denselben geregelten Pfad:

Ein Agent, der mit einer MCP-Dienst-URL konfiguriert ist, ruft den Dienst über Unity AI Gateway auf. Das Gateway autorisiert den Aufruf des MCP-Diensts im Unity-Katalog, der die EXECUTE-Gewährung, Toolauswahl und Dienstrichtlinien erzwingt, und proxyt dann die Anforderung über eine Unity-Katalog-HTTP-Verbindung mit verwalteten Anmeldeinformationen an den externen MCP-Server, z. B. GitHub oder Slack. Verwendungs-, Überwachungs- und Ablaufverfolgungsdatensätze landen in Systemtabellen.

  1. Aufruf: Der Agent sendet eine MCP-Anforderung an die Unity AI Gateway-URL des Diensts, die mit der Azure Databricks Identität des Anrufers authentifiziert wurde.
  2. Autorisierung und Steuerung: Das Gateway überprüft, ob der Aufrufer über EXECUTE für den MCP Service in Unity Catalog verfügt. Der Dienst macht nur die tools verfügbar, die Sie ausgewählt haben , und wertet jede angefügte Dienstrichtlinie aus, die die Genehmigung für den Anruf zulassen, verweigern oder erfordern kann.
  3. Proxy mit verwalteten Anmeldeinformationen: Die Anforderung wird über die HTTP-Verbindung des Diensts an den externen MCP-Server weitergeleitet. Azure Databricks speichert die Anmeldeinformationen und verarbeitet OAuth-Flüsse und Tokenaktualisierungen, sodass der Agent sie nie sieht.
  4. Nutzungs-, Audit- und Ablaufverfolgungsprotokolle: Jeder Aufruf wird in Systemtabellen aufgezeichnet, sodass Sie die Nutzung überwachen und Aktivitäten im Zeitverlauf auditieren können.

Von Databricks bereitgestellte MCP-Dienste

Azure Databricks stellt MCP-Dienste im system.ai Schema für gängige SaaS-Anwendungen bereit, sodass Agents diese Tools erreichen können, ohne Ihren eigenen MCP-Server zu hosten oder zu registrieren. Jeder ist ein integrierter MCP-Dienst, den Sie anhand des Unity-Katalognamens adressieren. Um einem Agenten Zugriff zu gewähren, gewähren Sie EXECUTE für den Dienst (zum Beispiel system.ai.github). Keine Einrichtung der Verbindung erforderlich. Integrierte Dienste werden mit plattformverwalteten Tools und einer integrierten Dienstrichtlinie geliefert, z. B. einer, um Schreibvorgänge zu blockieren. Sie steuern sie mit Zuschüssen und nicht mit benutzerdefinierten Toolauswahl- oder Richtlinienfunktionen.

MCP-Dienst Verbindet mit
system.ai.slack Slack
system.ai.github GitHub
system.ai.atlassian Jira und Confluence
system.ai.google_drive Google Drive
system.ai.google_calendar Google Kalender
system.ai.gmail Gmail
system.ai.microsoft_365 Microsoft 365 (SharePoint, Outlook und Teams)

Für Google Drive, Gmail, Google Calendar oder Microsoft 365 verarbeiten diese integrierten Dienste OAuth für Sie, ohne dass eine App-Registrierung erforderlich ist.

Rufen Sie einen integrierten MCP-Dienst auf

Adressieren Sie einen integrierten Dienst über seine Unity AI Gateway URL, mit dem vollständig qualifizierten Namen im Pfad. Verwenden Sie den Namen genau so, wie er erscheint, mit seinen Punkten und Unterstreichern, und codieren Sie ihn nicht per URL:

https://<workspace-hostname>/ai-gateway/mcp-services/<catalog>.<schema>.<mcp-service>

Um den Dienst aus dem Agentencode aufzurufen, richten Sie DatabricksMCPClient oder ein Agenten-Framework auf diese URL. Siehe Verwenden von MCP-Servern in benutzerdefinierten Agenten.

Entdecken Sie die Werkzeuge eines Dienstes und lesen Sie dessen Ergebnisse

Jeder MCP-Dienst stellt unterschiedliche Tools bereit. Ermitteln Sie diese daher zur Laufzeit, anstatt Namen fest zu hinterlegen. Rufen Sie DatabricksMCPClient.list_tools() (oder tools/list) auf, um den Namen, die Beschreibung und das Eingabeschema des jeweiligen Tools zu erhalten. Siehe Verwenden von MCP-Servern in benutzerdefinierten Agenten.

Lesen Sie das Ergebnis eines Tool Call aus dem result Feld. Seine Form hängt davon ab, ob das Werkzeug strukturierte Ausgabe definiert:

  • Eingegebene Ausgabe. Ein Werkzeug kann ein outputSchema deklarieren und ein typisiertes JSON-Objekt in structuredContent zurückgeben. Wenn structuredContent vorhanden ist, verwenden Sie es direkt. Es ist kein Parsing erforderlich. Einige Azure Databricks-Tools, wie die Genie-Tools, funktionieren auf diese Weise.
  • Textausgabe. Wenn es keine structuredContentgibt, lesen Sie stattdessen die Textblöcke. Der erste Block enthält ein JSON-Dokument, also result.content[0].text als JSON parsen.
  • Keines von beidem. MCP benötigt kein Ausgabeschema. Wenn ein Tool keine Ausgabefelder definiert, prüfen Sie eine Beispielantwort, um seine Ausgabefelder kennenzulernen.

Zum Beispiel system.ai.google_calendar zeigt Lesewerkzeuge wie calendar_event_list, deren JSON-Ergebnis ein items Array von Ereignissen enthält (jedes mit id, summary, start, end, status, locationund Links). Die Tools und Ergebnisformate eines anderen Dienstes unterscheiden sich völlig, daher sollten Sie dies immer mit tools/list und anhand eines Beispielaufrufs überprüfen.

Note

Integrierte Dienste verwalten ihre eigenen OAuth-Scopes. Ein Dienst stellt standardmäßig möglicherweise nur eine schreibgeschützte Teilmenge seiner Werkzeuge bereit, wenn seine integrierte Dienstrichtlinie Schreibvorgänge blockiert.

Registrieren eines externen MCP-Servers

Für jeden externen MCP-Server, der nicht von verwaltetem OAuth oder den von Databricks bereitgestellten MCP-Diensten abgedeckt ist, registrieren Sie ihn als MCP-Service, um ihn als Unity-Katalog-Securable zu verwalten. Siehe Registrieren eines externen MCP-Servers.

Authentifizierung und Sicherheit

Azure Databricks verwendet verwaltete MCP-Proxys und Unity Catalog HTTP-Verbindungen, um die Authentifizierung für externe MCP-Server sicher zu verarbeiten.

  • Gemeinsame Prinzipalauthentifizierung: Alle Benutzer teilen beim Zugriff auf den externen Dienst dieselben Anmeldeinformationen. Dazu gehören Bearertoken, OAuth Machine-to-Machine (M2M) und OAuth User-to-Machine Shared Authentication. Verwenden Sie dies, wenn der externe Dienst keinen benutzerspezifischen Zugriff erfordert oder wenn ein einzelnes Dienstkonto ausreicht.
  • Benutzerspezifische Authentifizierung (OAuth U2M pro Benutzer):Jeder Benutzer authentifiziert sich mit seinen eigenen Anmeldeinformationen. Der externe Dienst empfängt Anforderungen im Namen des einzelnen Benutzers und ermöglicht die benutzerspezifische Zugriffssteuerung, Überwachung und Verantwortlichkeit. Verwenden Sie dies beim Zugriff auf nutzerspezifische Ressourcen, z. B. die GitHub-Repositorys, Slack-Nachrichten oder den Kalender eines Benutzers.

Azure Databricks behandelt OAuth-Flüsse und Tokenaktualisierung, sodass Endbenutzer keine Token sehen. Sie können Ihre externen MCP-Verbindungen zusammen mit Ihren LLM-Endpunkten über Unity AI Gateway anzeigen und verwalten. Ausführliche Konfigurationsanweisungen für jede Authentifizierungsmethode finden Sie unter HTTP-Verbindungen.

Aktivieren Sie den Zugriff pro Benutzer (im Namen des Benutzers)

Einige Dienste lesen Daten, die zu einem bestimmten Nutzer gehören, wie zum Beispiel dessen Kalender oder E-Mail. Für diese Dienste wird das Benutzer-OAuth verwendet, sodass jeder Aufruf als der Benutzer ausgeführt wird, der ihn erstellt hat, und nicht als gemeinsame Identität. Dies gilt für integrierte system.ai.* Dienste wie system.ai.google_calendar, system.ai.gmail, und system.ai.microsoft_365, sowie für externe Dienste, die Sie mit einer Benutzerauthentifizierung registrieren.

Um den Zugriff im Namen eines Agenten einzurichten:

  1. Stellen Sie sicher, dass der aufrufende Nutzer den Dienst aufrufen kann. Der Aufruf eines MCP-Dienstes erfordert zwei Dinge:

    • EXECUTE im Dienst.
    • USE CATALOG und USE SCHEMA auf seinem Stammkatalog und Schema. EXECUTE Allein reicht nicht aus, denn Unity Catalog überprüft auch die Elternkette (siehe Zugriff auf Teammitglieder gewähren).

    Wie Sie diese gewähren, hängt vom jeweiligen Dienst ab:

    • Integrierte system.ai.* Dienste: Benutzer des Kontos besitzen diese Berechtigungen auf system und system.ai bereits standardmäßig, sodass Sie in der Regel keine Berechtigungen gewähren müssen.
    • Individuelle Dienste in Ihrem eigenen Katalog und Schema: Erteile dem aufrufenden Benutzer oder Gruppe die entsprechenden Berechtigungen (nicht nur den Service Principal der App) über den Berechtigungstab jedes Securable im Katalogexplorer oder mit der REST-API. SQL DDL ist für MCP-Dienste nicht verfügbar.

    Um über die REST-API zu autorisieren, ersetzen Sie Ihre eigenen <catalog>.<schema>.<service>:

    databricks api patch "/api/2.1/unity-catalog/permissions/mcp_service/<catalog>.<schema>.<service>" \
      --json '{ "changes": [ { "principal": "data-team", "add": ["EXECUTE"] } ] }'
    databricks api patch "/api/2.1/unity-catalog/permissions/catalog/<catalog>" \
      --json '{ "changes": [ { "principal": "data-team", "add": ["USE_CATALOG"] } ] }'
    databricks api patch "/api/2.1/unity-catalog/permissions/schema/<catalog>.<schema>" \
      --json '{ "changes": [ { "principal": "data-team", "add": ["USE_SCHEMA"] } ] }'
    
  2. Füge den Anwendungsbereich der ai-gateway Benutzer-API zu deiner App hinzu, damit das weitergeleitete Benutzertoken den Dienst erreichen kann. Deklarieren Sie user_api_scopes: [ai-gateway] in der App-Ressource und rufen Sie den Dienst mit dem benutzerspezifischen Client (get_user_workspace_client()) auf. Siehe Authentifizierung bei MCP-Diensten und einen Agenten erstellen und ihn in Databricks Apps bereitstellen.

  3. Jeder Nutzer stimmt einmal zu. Beim ersten Anruf muss ein Nutzer einen einmaligen OAuth-Login durchführen. Deine App erhält einen Login-Link, der dem Nutzer angezeigt wird, oder der Nutzer kann den Dienst im Katalog-Explorer öffnen und auf Einloggen klicken.

Note

Du kannst diesen EXECUTE Zugriff nicht über ein Bundle gewähren. Eine Ressource für Declarative Automation Bundles uc_securable unterstützt nur die absicherbaren Objekte VOLUME, TABLE, FUNCTION und CONNECTION, nicht jedoch MCP Services. Daher müssen Sie EXECUTE separat gewähren, entweder über die UI oder die oben genannte REST-API. Vorsicht: databricks bundle validate Es markiert den fehlenden Zuschuss nicht, sodass der Agent sauber deployen kann und erst scheitert, wenn er den Service zum ersten Mal anruft.

Einschränkungen

Für MCP-Dienste gelten folgende Einschränkungen:

  • SQL DDL für MCP-Dienste (z. B. CREATE MCP SERVICE) ist nicht verfügbar. Erstellen und verwalten Sie MCP-Dienste mit der Benutzeroberfläche oder der REST-API.
  • Sie können nur externe MCP-Server als eigenen MCP-Dienst registrieren. Das Registrieren von Genie-, Apps- oder Unity-Katalog-Entitätsquellen als MCP-Dienst wird derzeit nicht unterstützt. Azure Databricks bietet auch integrierte MCP-Dienste für gängige SaaS-Apps.
  • Die Toolauswahl unterstützt Präfixe (get_*) und genaue Übereinstimmungsmuster. Ausschlussmuster (z. B !delete_*. ) werden nicht unterstützt.
  • Die globale Unity-Katalogsuche zeigt keine MCP-Dienste an.

Externe MCP-Serververbindungen weisen außerdem die folgenden Einschränkungen auf:

Nächste Schritte