Databricks

Busque dados empresariais e automatize ações de desenvolvedor na plataforma Databricks.

Documentação

Servidores MCP Databricks

Test Status

Sumário

Servidores MCP gerenciados Databricks

O Databricks fornece servidores MCP prontos para uso que permitem que agentes consultem dados e acessem ferramentas no Unity Catalog. As permissões são sempre aplicadas, para que agentes e usuários só possam acessar as ferramentas e os dados aos quais têm permissão. Para mais informações, consulte a documentação do Databricks AWS|Azure|GCP.

Visão geral

Uma coleção experimental de servidores MCP para ajudar agentes de IA a buscar dados empresariais do Databricks, automatizar ações comuns de desenvolvimento no Databricks, etc:

  • status: Deprecated Servidor Unity Catalog Databricks: Busque dados e execute ferramentas registradas no Unity Catalog, tornando os agentes cientes dos seus dados empresariais. Nota: este servidor está obsoleto; o Databricks recomenda usar Servidores MCP gerenciados em vez disso.
  • status: Under construction Servidor de ferramentas de desenvolvimento Databricks: Execute ações comuns de desenvolvimento no Databricks, como criar e atualizar notebooks, executar jobs, etc. Este servidor ainda não está utilizável, mas contribuições são bem-vindas! Nota: se você estiver desenvolvendo dentro do produto Databricks (por exemplo, usando notebooks Databricks), recomendamos usar o Databricks Assistant

O conjunto de servidores e ferramentas neste repositório é fluido e evoluirá com o tempo. Recebemos contribuições para este repositório - por favor, primeiro leia as diretrizes para contribuidores para agilizar o processo e descobrir áreas onde a ajuda é necessária.

Servidor Unity Catalog

status: Beta

Visão geral

Um servidor Model Context Protocol que expõe dados estruturados e não estruturados no Unity Catalog (índices de busca vetorial, funções e espaços Genie), como ferramentas.

Demo image

Uso (localmente via transporte stdio)

  1. Instale o uv
  2. Instale o Python usando uv python install 3.12
  3. Configure as credenciais do Databricks com acesso às APIs necessárias
  4. Adicione o servidor à configuração do seu cliente MCP. Por exemplo, para usar este servidor com o Claude Desktop, adicione o seguinte ao seu claude_desktop_config.json:
{
  "mcpServers": {
    "databricks_unity_catalog": {
      "command": "/path/to/uv/executable/uv",
      "args": [
        "--directory",
        "/path/to/this/repo",
        "run",
        "unitycatalog-mcp",
        "-s",
        "your_catalog.your_schema",
        "-g",
        "genie_space_id_1,genie_space_id_2"
      ]
    }
  }
}

Ferramentas suportadas

A lista de ferramentas suportadas por este servidor é inferida dinamicamente no momento da inicialização com base nas funções e índices de busca vetorial dentro do esquema Unity Catalog especificado, bem como em quaisquer espaços Genie especificados. Em particular, o servidor expõe as seguintes ferramentas:

  • Funções UC: para cada função UC, o servidor expõe uma ferramenta com o mesmo nome, argumentos e tipo de retorno da função
  • Índices de busca vetorial: para cada índice de busca vetorial, o servidor expõe uma ferramenta para consultar esse índice de busca vetorial
  • Espaços Genie: para cada espaço Genie, o servidor expõe ferramentas para gerenciar conversas e enviar perguntas ao espaço

Implantando o servidor UC MCP em Databricks Apps

Você pode implantar o servidor MCP Unity Catalog como um aplicativo Databricks. Para isso, siga as instruções abaixo:

  1. Entre no diretório do projeto e crie a wheel:
cd /path/to/this/repo
uv build --wheel

Existem duas maneiras de implantar o servidor em Databricks Apps: usando a CLI databricks bundle ou usando a CLI databricks apps. Dependendo da sua preferência, você pode escolher qualquer um dos métodos.

Usando a CLI databricks bundle

Para implantar o servidor usando a CLI databricks bundle, siga estes passos:

  1. Defina as variáveis de ambiente para schema_full_name e genie_space_ids e execute o comando bundle deploy:
BUNDLE_VAR_schema_full_name=catalog.schema BUNDLE_VAR_genie_space_ids=[\"space1\",\"space2\"] \
  databricks bundle deploy -p your-profile-name
  1. Implante o aplicativo:
BUNDLE_VAR_schema_full_name=catalog.schema BUNDLE_VAR_genie_space_ids=[\"space1\",\"space2\"] \
  databricks bundle run mcp-on-apps -p your-profile-name

Observe que BUNDLE_VAR_genie_space_ids deve ser exatamente como mostrado acima, com as aspas duplas escapadas, sem espaços e com os colchetes incluídos.

Para conectar ao seu aplicativo, use o transporte Streamable HTTP com a seguinte URL:

https://your-app-url.usually.ends.with.databricksapps.com/api/mcp/

Observe o /api/mcp/ final na URL. Isso é necessário para que o servidor funcione corretamente, incluindo a barra final.

Você também precisará definir o cabeçalho Authorization como Bearer <your_token> no seu cliente. Você pode obter o token executando o seguinte comando:

databricks auth token -p your-profile-name

Se você é um desenvolvedor iterando na implementação do servidor, pode repetir os passos #2 e #3 para enviar suas últimas modificações do servidor para o seu aplicativo Databricks.

Observe que ambas as variáveis devem ser fornecidas nos comandos deploy e run. A variável schema_full_name é usada para determinar o esquema a ser usado para o servidor, enquanto a variável genie_space_ids é usada para determinar quais espaços Genie usar.

Usando a CLI databricks apps

Para implantar o servidor usando a CLI databricks apps, siga estes passos:

  1. Entre no diretório do projeto e crie a wheel:
cd /path/to/this/repo
uv build --wheel
  1. Configure o arquivo app.yml na raiz do diretório do projeto. Você pode usar o seguinte exemplo como ponto de partida:
command: ["uvicorn", "databricks.labs.mcp.servers.unity_catalog.app:app"]
env:
  - name: SCHEMA_FULL_NAME
    value: catalog.schema
  - name: GENIE_SPACE_IDS
    value: '["space1","space2"]'
  1. Implante o aplicativo usando a CLI databricks apps:
uv build --wheel
databricks sync ./build -p <your-profile-name> /Workspace/Users/my-email@org.com/my-app
databricks apps deploy my-app-name -p <your-profile-name> --source-code-path /Workspace/Users/my-email@org.com/my-app
databricks apps start my-app-name -p <your-profile-name>

Conectando-se ao servidor UC MCP implantado em Databricks Apps

Após a implantação do aplicativo, você pode se conectar a ele usando o transporte Streamable HTTP no seu cliente MCP, como Claude Desktop ou MCP inspector. Para fazer isso, você precisa definir a URL de destino como a URL do seu aplicativo + o sufixo /api/mcp/. Exemplo de URL completa:

https://your-app-url.usually.ends.with.databricksapps.com/api/mcp/

Observe que a URL deve terminar com /api/mcp/ (incluindo a barra final), pois isso é necessário para que o servidor funcione corretamente. Para conectar ao aplicativo, você também precisa definir o cabeçalho Authorization como Bearer <your_token>, onde <your_token> é o token que você pode obter executando o seguinte comando:

databricks auth token -p your-profile-name

Observe que o service principal do aplicativo deve ter as permissões necessárias para acessar o esquema Unity Catalog e os espaços Genie. Você pode fazer isso atribuindo as permissões apropriadas ao service principal no Unity Catalog e no Genie.

Servidor de Ferramentas de Desenvolvimento

Este servidor está atualmente em construção. Ainda não é utilizável, mas contribuições são bem-vindas!

Implantando um servidor MCP personalizado em Databricks Apps

Se você gostaria de implantar um servidor MCP personalizado em Databricks Apps, dê uma olhada na implementação de referência aqui. Ela fornece um guia passo a passo sobre como criar um servidor MCP personalizado e implantá-lo em Databricks Apps.

Suporte

Observe que todos os projetos na organização GitHub databrickslabs são fornecidos apenas para sua exploração e não são formalmente suportados pela Databricks com Acordos de Nível de Serviço (SLAs). Eles são fornecidos COMO ESTÃO e não fazemos nenhuma garantia de qualquer tipo. Não envie um ticket de suporte relacionado a quaisquer problemas decorrentes do uso desses projetos.

Quaisquer problemas descobertos através do uso deste projeto devem ser registrados como Issues do GitHub no Repositório. Eles serão revisados conforme o tempo permitir, mas não há SLAs formais para suporte.

Contribuindo

Recebemos contribuições :) - veja CONTRIBUTING.md para detalhes. Certifique-se de ler este guia antes de enviar pull requests, para garantir que sua contribuição tenha a melhor chance de ser aceita.