Partager via


Héberger des serveurs MCP personnalisés à l’aide d’applications Databricks

Hébergez vos propres serveurs MCP personnalisés ou tiers en tant qu’applications Databricks. Les serveurs MCP personnalisés sont utiles si vous disposez déjà d’un serveur MCP que vous souhaitez déployer ou si vous souhaitez exécuter un serveur MCP tiers en tant que source d’outils.

Requirements

  • Un serveur MCP hébergé en tant qu’application Databricks doit implémenter un transport compatible HTTP, tel que le transport HTTP streamable.

Héberger un serveur MCP en tant qu’application Databricks

Consultez GitHub - modèle de serveur MCP personnalisé pour obtenir un exemple d’écriture de votre propre serveur MCP et de le déployer en tant qu’application Databricks.

Pour héberger un serveur MCP Python existant en tant qu’application Databricks, procédez comme suit :

Configurer votre environnement

Avant de déployer votre serveur MCP, authentifiez-vous auprès de votre espace de travail à l’aide d’OAuth.

  1. Exécutez ce qui suit dans un terminal local :

    databricks auth login --host https://<your-workspace-hostname>
    

Configurer le serveur MCP

Utilisez uv pour la gestion des dépendances et les outils unifiés lors du déploiement de votre serveur MCP.

  1. Ajoutez un requirements.txt au répertoire racine du serveur MCP et incluez-le uv en tant que dépendance.

    Lorsque vous ajoutez uv à requirements.txt, il gère l’installation de dépendances supplémentaires définies dans la configuration de votre projet.

    uv
    
    
  2. Créez un fichier qui définit un pyproject.toml point d’entrée de script pour votre serveur.

    Exemple pyproject.toml:

    [project.scripts]
    custom-server = "server.main:main"
    

    Dans cet exemple :

    • custom-server est le nom de script que vous utilisez avec uv run
    • server.main:main spécifie le chemin d’accès du module (server/main.py) et la fonction (main) à exécuter
  3. Ajoutez un fichier app.yaml spécifiant la commande CLI pour exécuter le serveur MCP en utilisant uv run.

    Par défaut, les applications Databricks écoutent sur le port 8000. Si le serveur écoute sur un port différent, définissez-le à l’aide d’une modification de variable d'environnement dans le fichier app.yaml.

    Exemple app.yaml:

    command: [
        'uv',
        'run',
        'custom-server', # This must match a script defined in pyproject.toml
      ]
    

Lorsque vous exécutez uv run custom-server, uv recherche la définition du script, recherche le chemin du module et appelle la main() fonction.

Déployer le serveur MCP en tant qu’application Databricks

  1. Créez une application Databricks pour héberger le serveur MCP :

    databricks apps create custom-mcp-server
    
  2. Chargez le code source dans Databricks et déployez l’application en exécutant les commandes suivantes à partir du répertoire contenant votre app.yaml fichier :

    DATABRICKS_USERNAME=$(databricks current-user me | jq -r .userName)
    databricks sync . "/Users/$DATABRICKS_USERNAME/custom-mcp-server"
    databricks apps deploy custom-mcp-server --source-code-path "/Workspace/Users/$DATABRICKS_USERNAME/custom-mcp-server"
    

Rechercher l’URL de votre application déployée

Après le déploiement, vous trouverez l’URL de votre application dans l’interface utilisateur Databricks. Le point de terminaison du serveur MCP est disponible à l’adresse https://<app-url>/mcp.

Se connecter au serveur MCP personnalisé

Cliquez sur les onglets pour voir comment se connecter à un serveur MCP à partir de différents environnements.

Environnement local

Authentifiez-vous auprès de votre espace de travail à l’aide d’OAuth, comme décrit dans Configurer votre environnement.

L’exemple suivant montre comment se connecter au serveur MCP personnalisé et répertorier les outils disponibles :

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

# Replace with your deployed app URL
# Example: https://custom-mcp-server-6051921418418893.staging.aws.databricksapps.com/mcp
mcp_server_url = "https://<app-url>/mcp"

databricks_cli_profile = "DEFAULT"
workspace_client = WorkspaceClient(profile=databricks_cli_profile)

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")

Notebook (principal de service)

Utilisez un "service principal" pour accéder à l'application Databricks hébergée dans un bloc-notes Databricks.

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

# Replace with your deployed app URL
mcp_server_url = "https://<app-url>/mcp"

workspace_client = WorkspaceClient(
    host="<workspace-url>",
    client_id="<client-id>",
    client_secret="<client-secret>"
)

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")

Code de l’agent (pour le compte de l'utilisateur)

Configurez l’autorisation au nom de l’utilisateur. Consultez l’authentification au nom de l’utilisateur.

L'exemple suivant montre comment activer l'accès représentant l'utilisateur à l'aide de ModelServingUserCredentials pour accéder à l'application Databricks hébergée depuis un agent :

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
from databricks.sdk.credentials_provider import ModelServingUserCredentials

# Replace with your deployed app URL
mcp_server_url = "https://app-url>/mcp"

workspace_client = WorkspaceClient(credentials_strategy=ModelServingUserCredentials())

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")

Enregistrer le modèle d’agent à l’aide de l’étendue apps.apps. Consultez l’authentification au nom de l’utilisateur.

Code de l’agent (principal de service)

Activez l’authentification système à l’aide du principal de service pour accéder à l’application Databricks hébergée à partir d’un agent :

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

# Replace with your deployed app URL
mcp_server_url = "https://<app-url>/mcp"

workspace_client = WorkspaceClient()

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")

Enregistrer le modèle d'agent en utilisant DatabricksApps comme ressource. Consultez Transfert direct d’authentification automatique.

Exemples de notebooks : Créer un agent avec des serveurs Databricks MCP

Les notebooks suivants montrent comment créer des agents LangGraph et OpenAI qui appellent des outils MCP avec des serveurs MCP personnalisés hébergés sur des applications de Databricks.

Agent d’appel d’outils MCP LangGraph

Obtenir un ordinateur portable

Agent d’appel d’outils OPENAI MCP

Obtenir un ordinateur portable

Ressources supplémentaires

Le livre de recettes des applications fournit des exemples de code de bout en bout pour intégrer des serveurs MCP à différents frameworks :

Pour obtenir du code source complet et des exemples supplémentaires, consultez le référentiel de livre de recettes Databricks Apps.