Héberger votre propre serveur MCP
Hérbergez des serveurs MCP personnalisés ou tiers en tant qu’ applications Databricks. Les serveurs MCP personnalisés sont utiles si vous possédez déjà un serveur MCP à déployer, si vous souhaitez exécuter un serveur MCP tiers comme source d’outils ou si vous souhaitez encapsuler une API REST existante sous forme d’outils MCP.
L’accès aux serveurs MCP personnalisés est contrôlé via les autorisations Databricks Apps. Pour surveiller l’activité MCP personnalisée parallèlement à vos autres serveurs MCP et endpoints LLM, utilisez Unity Gateway.
Pour utiliser un serveur MCP personnalisé hébergé dans le code d’agent, consultez Utiliser des serveurs MCP dans des agents personnalisés.
Exigences
- Un serveur MCP hébergé en tant qu'application Databricks doit implémenter un transport compatible HTTP, tel que le transport HTTP diffusable.
Créer un serveur MCP personnalisé à partir du template Apps
Utilisez le template intégré Hello World MCP Server pour créer et déployer un serveur MCP avec des outils d’exemple déjà inclus :
-
Dans la barre latérale, cliquez sur Compute .
-
Cliquez sur le tab Apps .
-
Cliquez sur Créer une application .
-
Sous la catégorie Agents , sélectionnez le Template MCP Server - Hello World .
-
Saisissez un nom d'application commençant par
mcp-(par exemple,mcp-hello-world).
Le nom de l’application doit start par mcp- pour être reconnu comme un serveur MCP dans l’AI Playground.
- Cliquez sur Créer une application .
Databricks déploie l'application avec un exemple de code que vous pouvez personnaliser.
Le Template inclut deux outils d’exemple pour vous aider à start :
health(): un outil de diagnostic qui confirme que le serveur est opérationnel et renvoie des informations sur le statut.get_current_user(): un outil qui récupère les informations de l’utilisateur actuel à l’aide du Databricks SDK, démontrant comment intégrer l’authentification au workspace.
Ajouter un outil personnalisé
Pour ajouter votre propre outil, ouvrez le code source de l’application et définissez une nouvelle fonction à l’aide du décorateur @mcp.tool(). Par exemple, l’outil suivant convertit une chaîne en majuscules :
@mcp.tool()
def uppercase(text: str) -> str:
"""Convert a string to uppercase."""
return text.upper()
Chaque outil doit inclure une docstring. Les agents utilisent la docstring pour comprendre quand appeler l'outil. Après avoir ajouté un outil, redéployez l'application pour la rendre disponible.
Consultez Créer une application à partir d’un Template pour plus de détails sur l’utilisation des Template d’application, ou consultez le code source du Template sur GitHub.
Envelopper une API REST en tant que serveur MCP à partir du Template d’Apps
Utilisez le template MCP Server (OpenAPI) intégré pour exposer n’importe quelle API REST en tant qu’outils MCP sans avoir à écrire de code d’outil personnalisé. Vous fournissez une spécification OpenAPI qui décrit l’API et une connexion Unity Catalog qui s’y authentifie, et le serveur transforme les operations de l’API en outils que n’importe quel agent peut appeler.
Le template déploie un serveur MCP doté de trois outils :
list_api_endpoints: répertorie les endpoints définis dans la spécification OpenAPI.get_api_endpoint_schema: renvoie le schéma de requête et de réponse pour un Endpoint spécifique.invoke_api_endpoint: appelle un endpoint avec les paramètres fournis et renvoie la réponse.
Un agent appelle list_api_endpoints et get_api_endpoint_schema pour découvrir ce que l'API propose, puis appelle invoke_api_endpoint pour exécuter une opération.
Prérequis
Rassemblez les éléments suivants avant de créer l’application :
- Une spécification OpenAPI 3.x pour votre API REST, au format JSON.
- Un volume Unity Catalog pour stocker le fichier de spécification. Voir Que sont les volumes Unity Catalog ?.
- Connexion HTTP Unity Catalog qui s'authentifie auprès de l'API. La connexion prend en charge l'authentification par jeton du porteur, OAuth machine-to-machine (M2M) et OAuth user-to-machine (U2M). Pour en créer une, consultez Créer une connexion au service externe. La création d'une connexion nécessite le privilège
CREATE CONNECTION; si vous ne l'avez pas, demandez à un administrateur du workspace de créer la connexion.
La spécification doit être un document OpenAPI 3.x valide au format JSON. Au minimum, il déclare l’URL de base de l’API sous servers et les opérations à exposer sous paths:
{
"openapi": "3.1.0",
"info": { "title": "Example API", "version": "1.0.0" },
"servers": [{ "url": "https://api.example.com" }],
"paths": {
"/widgets": {
"get": {
"summary": "List widgets",
"responses": { "200": { "description": "A list of widgets" } }
}
}
}
}
Créer le serveur MCP
-
upload votre spécification OpenAPI dans le volume Unity Catalog. Par default, le Template lit
spec.jsonà partir de la racine du volume. -
Dans la barre latérale, cliquez sur Compute .
-
Cliquez sur le tab Apps .
-
Cliquez sur Créer une application .
-
Sous la catégorie Agents , sélectionnez le template MCP Server (OpenAPI) .
-
Pour la ressource de volume Unity Catalog, sélectionnez le volume qui contient votre fichier de spécification. Voir Ajouter des ressources à une application Databricks.
-
Saisissez un nom d'application commençant par
mcp-(par exemple,mcp-my-api).
Le nom de l’application doit start par mcp- pour être reconnu comme un serveur MCP dans l’AI Playground.
- Cliquez sur Créer une application .
Configurez les spécifications et la connexion
Une fois que Databricks a déployé l’application, définissez les variables d’environnement suivantes dans le fichier app.yaml, puis redéployez l’application :
SPEC_FILE_NAME: le chemin d’accès à votre fichier de spécification OpenAPI, relatif à la racine du volume Unity Catalog. Default surspec.json.UC_CONNECTION_NAME: nom de la connexion HTTP Unity Catalog que le serveur utilise pour s'authentifier auprès de l'API.
Une fois l'application redéployée, l'endpoint du serveur MCP est disponible sur https://<app-url>/mcp. Pour appeler le serveur à partir du code de l'agent, consultez Utiliser des serveurs MCP dans les agents personnalisés. Pour connecter un client externe tel que Claude ou Cursor, consultez Connecter des serveurs MCP à des assistants IA et des agents de codage.
Pour connaître les détails de l’implémentation, consultez le code source du template sur GitHub.
Héberger un serveur MCP existant en tant qu'application Databricks
Pour héberger un serveur MCP Python existant en tant qu'application Databricks, suivez ces étapes :
Configurez votre environnement
Avant de déployer votre serveur MCP, authentifiez-vous sur votre Workspace à l’aide d’OAuth.
-
Exécutez la commande suivante dans un terminal local :
Bashdatabricks 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.
-
Ajoutez un
requirements.txtau répertoire racine du serveur MCP et incluezuven tant que dépendance.uvgère l’installation des dépendances supplémentaires définies dans la configuration de votre projet.Txtuv -
Créez un fichier
pyproject.tomlqui définit un point d’entrée de script pour votre serveur.Exemple
pyproject.toml:Toml[project.scripts]
custom-server = "server.main:main"Dans cet exemple :
custom-serverest le nom du script que vous utilisez avecuv runserver.main:mainspécifie le chemin du module (server/main.py) et la fonction (main) à exécuter
-
Ajoutez un fichier
app.yamlspécifiant la commande CLI pour exécuter le serveur MCP à l'aide deuv run.Par default, les applications Databricks écoutent sur le port 8000. Si le serveur écoute sur un port différent, définissez-le à l'aide d'une substitution de variable d'environnement dans le fichier
app.yaml.Exemple
app.yaml:YAMLcommand: [
'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, trouve le chemin d'accès du module et appelle la fonction main().
Déployer le serveur MCP en tant qu’application Databricks
-
Créez une application Databricks pour héberger le serveur MCP :
Bashdatabricks apps create mcp-my-server
Faites précéder le nom de votre application par mcp- pour l’identifier clairement comme un serveur MCP. Cette convention de nommage facilite la découvrabilité et l’organisation dans votre Workspace.
-
Effectuez l’upload du code source vers Databricks et déployez l’application en exécutant les commandes suivantes depuis le répertoire contenant votre fichier
app.yaml:BashDATABRICKS_USERNAME=$(databricks current-user me | jq -r .userName)
databricks sync . "/Users/$DATABRICKS_USERNAME/mcp-my-server"
databricks apps deploy mcp-my-server --source-code-path "/Workspace/Users/$DATABRICKS_USERNAME/mcp-my-server"
Trouver l’URL de votre application déployée
Après le déploiement, vous trouverez l'URL de votre application dans l'interface utilisateur de Databricks. L'endpoint du serveur MCP est disponible à l'adresse https://<app-url>/mcp.
Tarifs
Les serveurs MCP personnalisés sont soumis aux tarifs de Databricks Apps.
Ressources supplémentaires
- Utiliser des serveurs MCP personnalisés dans les agents pour vous connecter au serveur hébergé à partir de Notebooks, d'environnements locaux et de code d'agent.
- Connectez des MCP à des assistants IA et à des agents de codage pour configurer Claude, Cursor, MCP Inspector et d’autres clients externes.