Aller au contenu principal

Utiliser des serveurs MCP dans des agents personnalisés

info

Aperçu

Cette fonctionnalité est en Aperçu public.

Connectez le code de votre agent à n'importe quel serveur MCP sur Databricks : serveurs gérés par Databricks, serveurs MCP externes enregistrés en tant que services MCP et serveurs personnalisés hébergés en tant qu'applications Databricks. Ils exposent tous la même interface MCP, le code de l'agent est donc identique. Ce qui diffère, c'est l' URL du serveur et la manière dont vous vous authentifiez .

La bibliothèque Python databricks-mcp gère l'authentification auprès des serveurs MCP Databricks, de sorte que le même code client fonctionne sur les trois types de serveurs.

Obtenez l’URL de votre serveur

Configurez d’abord le serveur MCP, puis utilisez son URL dans les exemples suivants :

Type de serveur

Modèle d’URL

Installer

Géré

https://<workspace-hostname>/api/2.0/mcp/<service>/<path>

Serveurs gérés disponibles

Externe (service MCP)

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

Connectez les agents aux outils avec les services MCP

Personnalisé

https://<app-url>/mcp

Hébergez votre propre serveur MCP

Type de serveur

Modèle d’URL

Installer

Géré

https://<workspace-hostname>/api/2.0/mcp/<service>/<path>

Serveurs gérés disponibles

Externe (service MCP)

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

Connectez les agents aux outils avec les services MCP

Personnalisé

https://<app-url>/mcp

Hébergez votre propre serveur MCP

Découvrez les serveurs et outils MCP disponibles

Avant d’écrire le code de l’agent, déterminez quels serveurs et outils vous pouvez utiliser. Ne codez pas en dur les noms de serveurs, les noms d’outils ou les formes d’arguments de mémoire ; confirmez-les à partir du Workspace.

  • Parcourir les serveurs dans le workspace. Accédez à AI Gateway > MCPs pour voir les serveurs MCP qui vous sont disponibles. Databricks fournit des serveurs intégrés prêts à l’emploi : serveurs MCP gérés pour vos propres données et fonctions Unity Catalog (Genie spaces, index de recherche vectorielle et fonctions Unity Catalog), ainsi que des system.ai services MCP intégrés pour des outils SaaS tiers tels que Slack, GitHub, Google Drive, Google Calendar, Gmail et Microsoft 365.

  • Lister les services MCP par programmation. Lister les services MCP dans n’importe quel catalogue et schéma avec l’API REST Unity Catalog. Par exemple, les services intégrés :

    Bash
    databricks api get "/api/2.1/unity-catalog/mcp-services?parent=schemas/system.ai&page_size=100"

    Remplacez system.ai par votre propre <catalog>.<schema> pour trouver les services que vous avez enregistrés. page_size est limité à 100 et la réponse inclut un next_page_token lorsque d'autres services existent. Pour énumérer chaque service dans un schéma, répétez la requête avec page_token=<next_page_token> jusqu’à ce que la réponse ne renvoie aucun jeton :

    Bash
    token=""
    while :; do
    page=$(databricks api get "/api/2.1/unity-catalog/mcp-services?parent=schemas/system.ai&page_size=100&page_token=$token")
    echo "$page"
    token=$(echo "$page" | jq -r '.next_page_token // empty')
    [ -z "$token" ] && break
    done
  • Lister les outils d’un serveur à partir du code. Pointez un DatabricksMCPClient vers n’importe quelle URL de serveur et appelez list_tools() pour obtenir le nom, la description et le schéma d’entrée de chaque outil au moment de l’exécution, comme indiqué dans Connecter et lister les outils. C’est le moyen fiable de connaître les outils et arguments exacts d’un serveur.

Configurez votre environnement

  1. Utilisez OAuth pour vous authentifier sur votre workspace :

    Bash
    databricks auth login --host https://<workspace-hostname>
  2. Lorsque vous y êtes invité, saisissez un nom de profil et notez-le pour plus tard. Le nom de profil default est DEFAULT.

  3. Vérifiez que vous disposez d’un environnement local avec Python 3.12 ou version ultérieure, puis installez les dépendances :

    Bash
    pip install -U "mcp>=1.9" "databricks-sdk[openai]" "mlflow>=3.1.0" "databricks-agents>=1.0.0" "databricks-mcp"

    Les exemples de framework d’agents ci-dessous nécessitent leur propre SDK. Ajoutez openai-agents databricks-openai pour le SDK OpenAI Agents, ou databricks-langchain langgraph pour LangGraph.

Connecter et lister les outils

Créez un DatabricksMCPClient avec l'URL du serveur et listez ses outils. Le même client fonctionne pour les URL de serveurs gérés, externes (service MCP) et personnalisés :

Python
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

workspace_client = WorkspaceClient(profile="DEFAULT")
host = workspace_client.config.host

# Use a managed, MCP Service, or custom server URL:
mcp_server_url = f"{host}/api/2.0/mcp/functions/system/ai"

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)
tools = mcp_client.list_tools()
print(f"Available tools: {[t.name for t in tools]}")

Pour appeler un outil directement :

Python
result = mcp_client.call_tool("system__ai__python_exec", {"code": "print('Hello, world!')"})
print(result.content)
remarque

Le compute serverless doit être activé dans votre workspace pour exécuter des outils system.ai gérés.

S’authentifier

Sélectionnez la méthode d’authentification qui correspond à l’emplacement où votre agent s’exécute. Pour un service MCP externe, l’appelant doit également disposer de EXECUTE sur le service. AI Gateway applique cette autorisation à chaque appel.

Authentifiez-vous sur votre workspace avec OAuth (voir Configurer votre environnement) et transmettez le profil au client :

Python
workspace_client = WorkspaceClient(profile="DEFAULT")
mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

Créer un agent

Utilisez un framework d'agent pour transformer les outils du serveur MCP en agent. Pointez le framework vers l'URL du serveur et transmettez votre WorkspaceClient authentifié.

Python
import asyncio
from agents import Agent, Runner
from databricks.sdk import WorkspaceClient
from databricks_openai.agents import McpServer


async def main():
workspace_client = WorkspaceClient()
host = workspace_client.config.host

async with McpServer(
url=f"{host}/ai-gateway/mcp-services/main.default.github_mcp",
name="github-mcp",
workspace_client=workspace_client,
) as mcp_server:
agent = Agent(
name="Local agent",
instructions="You are a helpful assistant with access to external services.",
model="databricks-claude-sonnet-4-5",
mcp_servers=[mcp_server],
)
result = await Runner.run(agent, "List my open GitHub pull requests.")
print(result.final_output)


asyncio.run(main())

Exemples de notebooks

Les notebooks suivants montrent comment créer des agents LangGraph et OpenAI qui appellent des outils MCP sur des serveurs MCP gérés, externes et personnalisés :

Agent d'appel d'outils LangGraph MCP

Agent d'appel d'outils OpenAI MCP

Agent d'appel d'outils MCP du SDK Agents

Déployez votre agent

Databricks recommande de déployer les agents sur Databricks Apps, ce qui vous permet de gérer entièrement le code de l'agent, la configuration du serveur et le versioning basé sur Git. Alternativement, déployez sur Model Serving.

Quel que soit votre choix, accordez à l'agent l'accès à toutes les ressources dont dépendent ses serveurs MCP. Par exemple, CAN_RUN sur un Genie Agent ou SELECT sur un index de recherche IA.

Déclarez chaque ressource utilisée par votre agent, y compris les ressources derrière chaque serveur MCP, sous resources.apps.<app>.resources dans databricks.yml, puis déployez le bundle pour accorder l’accès au Service Principal Databricks de l’application. Par exemple, pour un agent qui utilise les serveurs gérés Genie et AI Search :

YAML
resources:
apps:
my_agent_app:
name: 'my-agent-app'
source_code_path: ./
resources:
- name: 'llm'
serving_endpoint:
name: 'databricks-claude-sonnet-4-5'
permission: 'CAN_QUERY'
- name: 'genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
- name: 'vector_index'
uc_securable:
securable_full_name: '<catalog>.<schema>.<index-name>'
securable_type: 'TABLE'
permission: 'SELECT'
Bash
databricks bundle deploy
databricks bundle run my_agent_app

Pour le workflow complet de création et de déploiement, consultez Créer un agent et le déployer sur Databricks Apps. Pour tous les types de ressources et les valeurs d’autorisation, consultez Authentification des agents.

remarque

Start from an agent template: il fournit le point d’entrée MLflow AgentServer (exécuté avec uv run start-app), l’assistant get_user_workspace_client() pour l’accès au nom de l’utilisateur, et un databricks.yml. Pin l’interpréteur avec requires-python = ">=3.12,<3.13" et commit uv.lock afin que l’image de build Databricks Apps ne résolve pas une version plus récente de Python (par exemple, 3.14) qui ne dispose pas de wheels préconstruits pour certaines dépendances de l’agent. Pour un service MCP, accordez également à l’appelant un accès hors bande (voir Activer l’accès par utilisateur (accès au nom de l’utilisateur)) ; bundle validate passe sans cela.

Étapes suivantes