Connecter des agents à des outils tiers avec les services MCP

Important

Cette fonctionnalité est en version bêta. Les administrateurs de compte peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus de la console de compte. Consultez Gérer les préversions d’Azure Databricks.

Un service MCP est un catalogue Unity sécurisable qui inscrit un serveur MCP externe et régit la façon dont les agents l’utilisent. Vous y accédez par son nom à trois niveaux, catalog.schema.mcp_service et l’invoquez via Unity AI Gateway, le plan de contrôle qui régit le trafic de l’IA.

L’inscription d’un serveur MCP en tant que catalogue Unity sécurisable signifie que vous la gérez avec les mêmes primitives que celles qui protègent vos autres ressources de catalogue Unity. Il s’agit notamment des subventions permettant de contrôler qui peut l’appeler, la sélection d’outils pour limiter les outils qu’il expose, les stratégies de service permettant d’autoriser ou de refuser des appels d’outils individuels, ainsi que la journalisation de l’audit et de l’utilisation pour suivre chaque appel.

Il existe deux façons d’utiliser les services MCP :

Approche À utiliser lorsque
Utiliser un service MCP fourni par Databricks Vous souhaitez un outil saaS (Software-as-a-Service) commun ( Slack, GitHub, Google Drive, etc.) avec une configuration nulle. Aucun serveur à héberger et aucune connexion à créer.
Inscrire votre propre serveur MCP externe Vous disposez d’un serveur MCP auto-hébergé ou fourni par un tiers à gérer en tant qu’objet sécurisable de Unity Catalog.

Les services MCP connectent des agents à des services externes. Pour Azure Databricks données, utilisez des serveurs MCP managés ; pour héberger vos propres outils, utilisez un serveur MCP personnalisé.

Tip

Pour obtenir un exemple complet montrant comment enregistrer le serveur MCP GitHub, restreindre ses outils, bloquer les appels destructeurs à l’aide d’une stratégie de service et auditer l’utilisation, suivez Tutoriel : Gouverner l’accès d’un agent de programmation à GitHub MCP.

Fonctionnement

Un agent appelle un service MCP par son URL de passerelle AI Unity, et chaque appel transite par le même chemin régi :

Un agent configuré avec une URL de service MCP appelle le service via Unity AI Gateway. La passerelle autorise l’appel par rapport au service MCP dans le catalogue Unity, qui applique l’octroi EXECUTE, la sélection d’outils et les stratégies de service, puis proxie la requête via une connexion HTTP du catalogue Unity avec des informations d’identification gérées au serveur MCP externe, comme GitHub ou Slack. L’utilisation, l’audit et les enregistrements de trace atterrissent dans les tables système.

  1. Appel : l'agent envoie une requête MCP à l'URL de la passerelle AI Unity du service, authentifiée avec l'identité Azure Databricks de l'appelant.
  2. Autoriser et gouverner : la passerelle vérifie que l’appelant a EXECUTE sur le Service MCP dans Unity Catalog. Le service expose uniquement les outils que vous avez sélectionnés et évalue toute stratégie de service attachée, qui peut autoriser, refuser, exiger une approbation ou transformer l’appel.
  3. Proxy avec informations d’identification managées : la requête est transférée au serveur MCP externe via la connexion HTTP du service. Azure Databricks stocke les informations d’identification et gère les flux OAuth et l’actualisation des jetons, de sorte que l’agent ne les voit jamais.
  4. Journalisation de l’utilisation, de l’audit et des traces : chaque appel est enregistré dans les tables système, ce qui vous permet de surveiller l’utilisation et d’auditer l’activité au fil du temps.

Requirements

  • Un espace de travail activé pour le catalogue Unity.
  • Pour gérer un serveur MCP externe en tant que service MCP, la version bêta de Unity AI Gateway et la version préliminaire des serveurs MCP gérés doivent être activées pour votre compte. Consultez Gérer les préversions d’Azure Databricks.

Services MCP fournis par Databricks

Azure Databricks fournit des services MCP prêts à l’emploi dans le system.ai schéma pour les applications SaaS courantes, afin que les agents puissent atteindre ces outils sans héberger ou inscrire votre propre serveur MCP. Chacun est un service MCP intégré que vous adressez par son nom de catalogue Unity. Pour accorder un accès à un agent, accordez-le EXECUTE sur le service (par exemple) system.ai.github: aucune configuration de connexion n’est requise. Les services intégrés sont fournis avec des outils gérés par la plateforme et une stratégie de service intégrée, par exemple pour bloquer les opérations d’écriture. Vous les régissez avec des subventions plutôt qu’avec des fonctions personnalisées de sélection d’outils ou de stratégie.

MCP Service Se connecte au
system.ai.slack Slack
system.ai.github GitHub
system.ai.atlassian Jira et Confluence
system.ai.google_drive Google Drive
system.ai.google_calendar Calendrier Google
system.ai.gmail Gmail
system.ai.sharepoint Microsoft SharePoint

Pour Google Drive, Gmail, Google Calendar ou SharePoint, ces services intégrés gèrent OAuth pour vous, sans inscription d’application requise.

Inscrire un serveur MCP externe

Inscrivez votre propre serveur MCP externe en tant que service MCP en cinq étapes :

  1. Créez une connexion de catalogue Unity au serveur MCP.
  2. Créez le service MCP à partir de cette connexion.
  3. Authentifiez-vous, si la connexion utilise OAuth par utilisateur.
  4. Accordez l’accès à vos collègues.
  5. Appelez le service, puis régissez-le avec la sélection d’outils et les stratégies de service.

Le serveur MCP externe doit utiliser le mécanisme de transport HTTP Streamable. Vous avez besoin de ces autorisations :

  • Pour créer la connexion, CREATE CONNECTION sur le schéma où vous la créez.
  • Pour créer un service MCP, USE CATALOG et USE SCHEMA sur le catalogue parent et le schéma, CREATE SERVICE sur le schéma et USE CONNECTION sur la connexion que le service MCP référence.
  • Pour invoquer un service MCP, EXECUTE sur le service MCP, USE CATALOG et USE SCHEMA sur son catalogue parent et son schéma, ainsi qu’une affectation à l’espace de travail où vous soumettez la requête.

Warning

L’appel d’un service MCP ne nécessite aucun privilège sur la connexion sous-jacente.EXECUTE Le service MCP est suffisant. N’accordez USE CONNECTION pas aux utilisateurs finaux : il leur permet d’appeler le serveur externe directement via la connexion, ou d’inscrire leur propre service MCP sur celui-ci, en contournant la sélection de l’outil, les stratégies de service et l’audit de votre service MCP. Réservez l’accès aux connexions pour les auteurs de services et les administrateurs.

Créer une connexion

Un service MCP fait référence à une connexion HTTP du catalogue Unity qui stocke en toute sécurité le point de terminaison et les informations d’identification du serveur externe. Azure Databricks exécute un proxy managé devant celui-ci pour gérer l'authentification et l'actualisation des jetons. Vous n'incorporez donc pas d'informations d'identification dans votre agent ou code client.

Créez la connexion au niveau du schéma afin qu’elle soit régie en même temps que le service MCP. Vous pouvez le configurer à l’avance avec les étapes ci-dessous ou en créer un pendant que vous créez le service MCP en cliquant sur Créer une connexion. Les connexions au niveau du metastore sont prises en charge, mais pas recommandées.

Choisissez l’une des deux façons suivantes :

Créer une connexion HTTP

Pour n’importe quel serveur MCP, y compris les serveurs auto-hébergés ou tiers :

  1. Accédez à Catalog>Connections>Create connection( Créer une connexion).
  2. Sélectionnez HTTP comme type de connexion.
  3. Entrez l’URL du serveur MCP.
  4. Choisissez un type d’authentification : jeton du porteur, OAuth M2M, OAuth U2M ou Inscription dynamique du client. Pour plus d’informations sur l’installation, consultez Créer une connexion au service externe.

Pour les fournisseurs managed-OAuth (Glean, GitHub, Atlassian et Slack), Azure Databricks gère les informations d'identification. Vous n'inscrivez donc pas votre propre application OAuth. Consultez les fournisseurs OAuth gérés.

Installer à partir de la Place de marché

Utilisez un serveur MCP organisé à partir de Azure Databricks Marketplace avec une connexion préconfigurée. Consultez Obtenir l’accès aux serveurs MCP externes.

Créer le service MCP

Vous pouvez créer un service MCP à partir de l’interface utilisateur ou avec l’API REST. La version bêta ne prend pas en charge SQL DDL pour les services MCP.

Interface utilisateur

  1. Dans votre espace de travail Azure Databricks, accédez à AI Gateway>MCPs>Inscrire le serveur MCP ou accédez au catalogue, sélectionnez un schéma, puis cliquez sur Créer> unservice MCP.
  2. Entrez le catalogue, le schéma et un nom pour le service MCP. Le nom ne peut pas être modifié après la création.
  3. Sélectionnez une connexion HTTP existante au serveur MCP, ou cliquez sur Créer une connexion pour en créer une. Parcourir sous un schéma pour sélectionner une connexion au niveau du schéma ; pour utiliser une connexion au niveau du metastore, désactivez Parcourir sous un schéma.
  4. Sous Outils, sélectionnez les outils à mettre à disposition. Voir Sélectionner les outils exposés.
  5. Si vous le souhaitez, ajoutez un commentaire qui décrit le service MCP.
  6. Cliquez sur Créer. Le service MCP est publié dans le catalogue et le schéma que vous avez spécifiés.

REST API

Créez un service MCP qui fait référence à une connexion HTTP de catalogue Unity existante. Définissez parent le schéma cible et mcp_service_id le nom du service :

databricks api post \
  "/api/2.1/unity-catalog/mcp-services?parent=schemas/main.default&mcp_service_id=my_mcp" \
  --json '{
    "comment": "External MCP server",
    "config": {
      "connection": {
        "name": "connections/main.default.my_connection"
      },
      "include_tool_selectors": []
    }
  }'

include_tool_selectors détermine quels outils le service expose. Une liste vide expose tous les outils. Voir Sélectionner les outils exposés.

Mettez à jour un service MCP existant avec une PATCH demande et un update_mask qui nomme les champs à modifier :

databricks api patch \
  "/api/2.1/unity-catalog/mcp-services/main.default.my_mcp?update_mask=comment" \
  --json '{ "comment": "Updated description" }'

Authenticate

Si le service MCP fait référence à une connexion qui utilise OAuth par utilisateur, effectuez une connexion unique avant le premier appel :

  1. Ouvrez la page de détails du service MCP dans l’Explorateur de catalogues.
  2. Cliquez sur Connexion et terminez le flux de consentement OAuth du fournisseur.
  3. Une fois connecté, la page de détails affiche automatiquement la liste des outils découverts.

Unity Catalog stocke le jeton associé à votre identité. Si vous appelez le service MCP avant de vous connecter, AI Gateway retourne une erreur vous invitant à vous authentifier.

Accorder l’accès aux membres de l’équipe

Par défaut, seul le propriétaire du service MCP peut l’appeler. Accordez l’autorisation EXECUTE pour permettre à d’autres utilisateurs, groupes ou identités de service d’invoquer le service. Une seule EXECUTE subvention couvre tous les outils du service.

Interface utilisateur

  1. Ouvrez le service MCP dans l’explorateur de catalogue, ou accédez à AI Gateway>MCPs et sélectionnez le service.
  2. Accédez à l’onglet Autorisations.
  3. Cliquez sur Accorder.
  4. Sélectionnez les utilisateurs, les groupes ou les principaux de service auxquels accorder l’accès.
  5. Sélectionnez le privilège EXECUTE .
  6. Cliquez sur Accorder.

REST API

databricks api patch \
  "/api/2.1/unity-catalog/permissions/mcp_service/main.default.my_mcp" \
  --json '{
    "changes": [
      { "principal": "data-team", "add": ["EXECUTE"] }
    ]
  }'

Appeler un service MCP

Essayez un service MCP dans AI Playground, à partir de la ligne de commande ou de votre agent ou du code client.

Tester le service MCP

AI Playground (Terrain de jeu IA)

Testez les outils d’un service MCP dans l’interface utilisateur sans écrire de code :

  1. Accédez à AI Playground dans votre espace de travail Azure Databricks.
  2. Sélectionnez un modèle avec l’étiquette Outils activée .
  3. Cliquez sur Outils > + Ajouter un outil , puis sélectionnez Serveurs MCP.
  4. Sélectionnez serveurs MCP externes, puis sélectionnez le service MCP.
  5. Discutez avec le modèle pour voir comment il appelle les outils du service MCP.

Vous pouvez également tester à partir de Genie Code : consultez Ajouter des serveurs MCP à l’Assistant.

CURL

Pour une vérification rapide de la ligne de commande, utilisez la requête générée sur la page de détails du service MCP. Dans Prise en main, cliquez sur Générer un jeton d’accès pour copier un jeton d’accès dans les exemples de requête. Les exemples transmettent le jeton sous forme de jeton de porteur dans l’en-tête Authorization.

Vous pouvez également authentifier l’interface CLI Databricks sur votre espace de travail, puis l’utiliser databricks auth token pour obtenir un jeton d’accès OAuth :

databricks auth login --host https://<workspace-url>

Toutes les demandes sont envoyées au même point de terminaison de service MCP : la JSON-RPC method dans le corps de la demande sélectionne l’opération. Répertorier les outils exposés par le service :

TOKEN=$(databricks auth token | jq -r .access_token)

curl -s -X POST \
  "https://<workspace-url>/ai-gateway/mcp-services/main.default.my_mcp" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Appelez un outil :

curl -s -X POST \
  "https://<workspace-url>/ai-gateway/mcp-services/main.default.my_mcp" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"<tool_name>","arguments":{}}}'

À utiliser depuis le code de l’agent ou un agent de programmation

Assurer la gouvernance d’un service MCP

Sélectionner les outils exposés

Par défaut, un service MCP met à disposition tous les outils fournis par le serveur MCP. Pour rendre disponible uniquement un sous-ensemble, sélectionnez les outils lorsque vous créez le service MCP ou mettez à jour la sélection ultérieurement. Chaque sélecteur est comparé aux noms d’outils : un modèle se terminant par * indique une correspondance de préfixe (get_* correspond à get_me et à get_issue), et toute autre valeur indique une correspondance exacte (search_repositories correspond uniquement à cet outil).

Interface utilisateur

Dans le flux de création, sous Outils :

  • Sélectionnez Sélectionner manuellement pour sélectionner chaque outil individuellement.
  • Sélectionnez Avancé pour entrer des modèles de sélection, en utilisant le préfixe et les règles de correspondance exacte décrites ci-dessus.
  • Activez l’option Inclure automatiquement les outils ajoutés à ce serveur à l’avenir pour rendre disponibles les nouveaux outils à mesure qu’ils sont ajoutés par le serveur MCP.

REST API

Pour modifier la sélection de l’outil après la création, définissez include_tool_selectors avec une PATCH demande. Limitez un service aux outils uniquement get_* :

databricks api patch \
  "/api/2.1/unity-catalog/mcp-services/main.default.my_mcp?update_mask=config.include_tool_selectors" \
  --json '{
    "config": {
      "include_tool_selectors": ["get_*"]
    }
  }'

Réinitialisez pour rendre tous les outils disponibles en définissant include_tool_selectors sur une liste vide.

Les outils que vous ne sélectionnez pas n’apparaissent pas, tools/listet le service MCP rejette un tools/call outil non sélectionné :

{ "code": -32003, "message": "Tool not allowed by MCP service configuration." }

Appliquer une stratégie de service

Une stratégie de service évalue chaque appel d’outil avant son exécution (ON CALL) et, éventuellement, son résultat (ON RESULT). Une règle peut autoriser, refuser, exiger une approbation humaine ou transformer la demande — par exemple pour bloquer des opérations destructrices ou masquer des données personnelles — sans modifier les outils disponibles. Les politiques de service font partie de la gouvernance de l’IA dans Unity Catalog.

Pour rédiger une fonction de stratégie et l’associer à un service MCP, consultez Stratégies de service pour les ressources sécurisables d’IA et Créer et associer une stratégie de service.

Définir les limites de débit

Limitez la fréquence à laquelle les agents peuvent appeler un service MCP pour contrôler les coûts et protéger le serveur externe. Consultez Configurer les limites de débit pour les services IA à l’aide de Unity AI Gateway.

Surveiller l’utilisation

Unity AI Gateway enregistre l’activité de chaque service MCP dans les tables système du catalogue Unity :

  • Utilisation : volume d’appel, erreurs et latence dans system.ai_gateway.usage (filtre service_type = 'MCP_SERVICE'). Consultez l’utilisation du modèle pour les services Unity AI Gateway.
  • Audit : modifications du plan de contrôle (createMcpService, updateMcpService, deleteMcpService) et chaque appel (mcpCall) dans system.access.audit. Consultez la référence de la table de système d’audit.
  • Traces : les demandes d’appel d’outils, les réponses et les décisions de stratégie sont capturées par la journalisation des traces, qui est activée une fois au niveau du compte et partagée sur tous les services MCP.
  • Tableau de bord : le trafic du serveur MCP externe apparaît dans le tableau de bord intégré de l’utilisation de la passerelle IA Unity. Consultez le tableau de bord d’utilisation intégré.

Pour toutes les tables système du catalogue Unity, consultez la référence des tables système. Pour obtenir une vue d’ensemble de la gouvernance du trafic IA, consultez gouvernance de l’IA dans le catalogue Unity.

Authentification et sécurité

Azure Databricks utilise des proxys MCP managés et des connexions HTTP du catalogue Unity pour gérer en toute sécurité l’authentification auprès de serveurs MCP externes.

  • Authentification partagée du principal : tous les utilisateurs partagent les mêmes identifiants lors de l’accès au service externe. Cela inclut le jeton d'accès de détenteur, l’authentification OAuth Machine-to-Machine (M2M) et l’authentification partagée utilisateur-à-machine OAuth. Utilisez cette option lorsque le service externe ne nécessite pas d’accès spécifique à l’utilisateur ou lorsqu’un seul compte de service est suffisant.
  • Authentification par utilisateur (OAuth U2M par utilisateur) : chaque utilisateur s’authentifie avec ses propres informations d’identification. Le service externe reçoit des demandes pour le compte de l’utilisateur individuel, en activant le contrôle d’accès, l’audit et la responsabilité spécifiques à l’utilisateur. Utilisez-le lors de l'accès à des ressources spécifiques à l'utilisateur, telles que les dépôts GitHub utilisateur, les messages Slack ou le calendrier.

Azure Databricks gère les flux OAuth et l'actualisation des jetons, de sorte que les utilisateurs finaux ne voient pas de jetons. Vous affichez et gérez vos connexions MCP externes en même temps que vos points de terminaison LLM à partir de Unity AI Gateway. Pour obtenir des instructions de configuration détaillées pour chaque méthode d’authentification, consultez les connexions HTTP.

Limitations

Pendant la version bêta, les limitations suivantes s’appliquent aux services MCP :

  • Sql DDL pour les services MCP (par exemple, CREATE MCP SERVICE) n’est pas disponible. Créez et gérez les services MCP avec l’interface utilisateur ou l’API REST.
  • Vous pouvez inscrire uniquement des serveurs MCP externes en tant que votre propre service MCP. L’enregistrement de sources Genie, Apps ou d’entités Unity Catalog en tant que service MCP n’est actuellement pas pris en charge. Azure Databricks fournit également des services MCP intégrés pour les applications SaaS courantes.
  • La sélection de l’outil prend en charge les modèles de préfixe (get_*) et de correspondance exacte. Les modèles d’exclusion (par exemple) !delete_*ne sont pas pris en charge.
  • La recherche globale du catalogue Unity ne surface pas les services MCP.

Les connexions de serveur MCP externes présentent également les limitations suivantes :

Étapes suivantes