Compartir a través de


Hospedaje de servidores MCP personalizados mediante aplicaciones de Databricks

Hospede sus propios servidores MCP personalizados o de terceros como aplicaciones de Databricks. Los servidores MCP personalizados son útiles si ya tiene un servidor MCP que desea implementar o si desea ejecutar un servidor MCP de terceros como origen de herramientas.

Requirements

Hospedar un servidor MCP como una aplicación de Databricks

Consulte GitHub: plantilla de servidor MCP personalizada para obtener un ejemplo de cómo escribir su propio servidor MCP e implementarlo como una aplicación de Databricks.

Para hospedar un servidor MCP de Python existente como una aplicación de Databricks, siga estos pasos:

Configuración del entorno

Antes de implementar el servidor MCP, autentíquese en el área de trabajo mediante OAuth.

  1. Ejecute lo siguiente en un terminal local:

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

Configuración del servidor MCP

Use uv para la administración de dependencias y las herramientas unificadas al implementar el servidor MCP.

  1. Agregue un requirements.txt elemento al directorio raíz del servidor MCP e incluya uv como dependencia.

    Al agregar uv a requirements.txt, controla la instalación de dependencias adicionales definidas en la configuración del proyecto.

    uv
    
    
  2. Cree un pyproject.toml archivo que defina un punto de entrada de script para el servidor.

    Ejemplo pyproject.toml:

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

    En este ejemplo:

    • custom-server es el nombre del script que se usa con uv run
    • server.main:main especifica la ruta de acceso del módulo (server/main.py) y la función (main) que se van a ejecutar.
  3. Agregue un app.yaml archivo que especifique el comando de la CLI para ejecutar el servidor MCP mediante uv run.

    De forma predeterminada, las aplicaciones de Databricks escuchan en el puerto 8000. Si el servidor escucha en un puerto diferente, establézcalo mediante una invalidación de variable de entorno en el app.yaml archivo.

    Ejemplo app.yaml:

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

Al ejecutar uv run custom-server, uv busca la definición del script, busca la ruta de acceso del módulo y llama a la main() función .

Implementación del servidor MCP como una aplicación de Databricks

  1. Cree una aplicación de Databricks para hospedar el servidor MCP:

    databricks apps create custom-mcp-server
    
  2. Cargue el código fuente en Databricks e implemente la aplicación ejecutando los siguientes comandos desde el directorio que contiene app.yaml el archivo:

    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"
    

Búsqueda de la dirección URL de la aplicación implementada

Después de la implementación, puede encontrar la dirección URL de la aplicación en la interfaz de usuario de Databricks. El punto de conexión del servidor MCP está disponible en https://<app-url>/mcp.

Conexión al servidor MCP personalizado

Haga clic en las pestañas para ver cómo conectarse a un servidor MCP desde varios entornos.

Entorno local

Autentíquese en el área de trabajo mediante OAuth, como se describe en Configuración del entorno.

En el ejemplo siguiente se muestra cómo conectarse al servidor MCP personalizado y enumerar las herramientas 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 servicio)

Use un principal de servicio para acceder a la aplicación de Databricks hospedada en un notebook de 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}")

Código del agente (en nombre del usuario)

Configure la autorización en nombre del usuario. Ver Autenticación en nombre del usuario.

En el ejemplo siguiente se muestra cómo habilitar el acceso en nombre del usuario mediante ModelServingUserCredentials para acceder a la aplicación hospedada de Databricks desde un agente:

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}")

Registre el modelo del agente mediante el ámbito apps.apps. Ver Autenticación en nombre del usuario.

Código del agente (principal de servicio)

Habilite la autenticación del sistema utilizando una entidad de servicio para acceder a la aplicación hospedada de Databricks desde un agente:

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}")

Registre el modelo del agente como un recurso mediante DatabricksApps. Consulte Paso automático de autenticación.

Cuadernos de ejemplo: Compilación de un agente con servidores MCP de Databricks

En los cuadernos siguientes se muestra cómo crear agentes langGraph y OpenAI que llaman a herramientas de MCP con servidores MCP personalizados hospedados en aplicaciones de Databricks.

Agente de llamada a herramientas MCP de LangGraph

Obtener el cuaderno

Agente de llamada a herramientas de MCP de OpenAI

Obtener el cuaderno

Recursos adicionales

El libro de recetas de aplicaciones proporciona ejemplos de código de un extremo a otro para integrar servidores MCP con diferentes marcos:

Para obtener código fuente completo y ejemplos adicionales, consulte el repositorio Cookbook de Aplicaciones de Databricks.