Partilhar via


Hospede servidores MCP personalizados usando aplicativos Databricks

Hospede seus próprios servidores MCP personalizados ou de terceiros como aplicativos Databricks. Os servidores MCP personalizados são úteis se você já tiver um servidor MCP que deseja implantar ou se quiser executar um servidor MCP de terceiros como fonte de ferramentas.

Requirements

  • Um servidor MCP hospedado como uma aplicação Databricks deve implementar um transporte compatível com HTTP, como o transporte HTTP transmissível.

Hospedar um servidor MCP como um aplicativo Databricks

Consulte GitHub - modelo de servidor MCP personalizado para obter um exemplo de como escrever seu próprio servidor MCP e implantá-lo como um aplicativo Databricks.

Para hospedar um servidor Python MCP existente como um aplicativo Databricks, siga estas etapas:

Configurar o ambiente

Antes de implantar seu servidor MCP, autentique-se em seu espaço de trabalho usando OAuth.

  1. Execute o seguinte em um terminal local:

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

Configurar o servidor MCP

Use uv para gerenciamento de dependência e ferramentas unificadas ao implantar seu servidor MCP.

  1. Adicione um requirements.txt ao diretório raiz do servidor MCP e inclua uv como uma dependência.

    Quando você adiciona uv ao requirements.txt, ele lida com a instalação de dependências adicionais definidas na configuração do projeto.

    uv
    
    
  2. Crie um pyproject.toml arquivo que defina um ponto de entrada de script para seu servidor.

    Exemplo pyproject.toml:

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

    Neste exemplo:

    • custom-server é o nome do script que você usa com uv run
    • server.main:main especifica o caminho do módulo (server/main.py) e a função (main) a serem executados
  3. Adicione um app.yaml ficheiro especificando o comando CLI para executar o servidor MCP usando uv run.

    Por padrão, os aplicativos Databricks escutam na porta 8000. Se o servidor escutar em uma porta diferente, defina-a usando uma substituição de app.yaml no arquivo.

    Exemplo app.yaml:

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

Quando executa uv run custom-server, o uv procura a definição de script, localiza o caminho do módulo e chama a função main().

Implantar o servidor MCP como um aplicativo Databricks

  1. Crie um aplicativo Databricks para hospedar o servidor MCP:

    databricks apps create custom-mcp-server
    
  2. Carregue o código-fonte no Databricks e implante o aplicativo executando os seguintes comandos do diretório que contém seu app.yaml arquivo:

    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"
    

Encontre o URL do aplicativo implantado

Após a implantação, você pode encontrar a URL do aplicativo na interface do usuário do Databricks. O ponto de extremidade do servidor MCP está disponível em https://<app-url>/mcp.

Conectar-se ao servidor MCP personalizado

Clique nas guias para ver como se conectar a um servidor MCP de vários ambientes.

Ambiente local

Autentique-se em seu espaço de trabalho usando OAuth conforme descrito em Configurar seu ambiente.

O exemplo a seguir mostra como se conectar ao servidor MCP personalizado e listar as ferramentas disponíveis:

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 serviço)

Use uma entidade de serviço para aceder à aplicação Databricks hospedada num notebook 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 do agente (em nome do usuário)

Configure a autorização em nome do usuário. Consulte Autenticação em nome do usuário.

O exemplo a seguir mostra como ativar o acesso em nome de um usuário usando ModelServingUserCredentials para aceder à aplicação Databricks hospedada a partir de um 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 o modelo de agente usando o escopo apps.apps. Consulte Autenticação em nome do usuário.

Código do agente (principal de serviço)

Habilite a autenticação do Sistema usando o principal de serviço para acessar o aplicativo Databricks hospedado de um 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 o modelo de agente usando DatabricksApps como recurso. Consulte Passagem de autenticação automática.

Exemplos de blocos de anotações: Criar um agente com servidores Databricks MCP

Os cadernos a seguir mostram como criar agentes LangGraph e OpenAI que utilizam ferramentas MCP com servidores MCP personalizados disponíveis nos aplicativos Databricks.

Agente de chamada de ferramentas LangGraph MCP

Obter bloco de notas

Agente de chamada de ferramentas OpenAI MCP

Obter bloco de notas

Recursos adicionais

O livro de receitas de aplicativos fornece exemplos de código de ponta a ponta para integrar servidores MCP com diferentes estruturas:

Para obter o código-fonte completo e exemplos adicionais, consulte o repositório Databricks Apps Cookbook.