Databricks MCP Server

by JustTryAI
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides access to Databricks functionality through tools that allow interacting with clusters (listing, creating, terminating, starting), jobs (listing, running), notebooks (listing, exporting), files (browsing DBFS paths), and executing SQL queries on a Databricks instance.

  • Used for implementing test endpoints and API functionality for the MCP server, enabling proper API interaction with Databricks services.

Servidor MCP de Databricks

Un servidor de Protocolo de Finalización de Modelos (MCP) para Databricks que proporciona acceso a la funcionalidad de Databricks mediante el protocolo MCP. Esto permite que las herramientas basadas en LLM interactúen con clústeres, trabajos, cuadernos y más de Databricks.

Características

  • Compatibilidad con el protocolo MCP : implementa el protocolo MCP para permitir que los LLM interactúen con Databricks
  • Integración de API de Databricks : proporciona acceso a la funcionalidad de API REST de Databricks
  • Registro de herramientas : expone la funcionalidad de Databricks como herramientas MCP
  • Compatibilidad asincrónica : desarrollada con asyncio para un funcionamiento eficiente

Herramientas disponibles

El servidor MCP de Databricks expone las siguientes herramientas:

  • list_clusters : enumera todos los clústeres de Databricks
  • create_cluster : crea un nuevo clúster de Databricks
  • interrupt_cluster : Terminar un clúster de Databricks
  • get_cluster : obtener información sobre un clúster específico de Databricks
  • start_cluster : Iniciar un clúster de Databricks terminado
  • list_jobs : Lista todos los trabajos de Databricks
  • run_job : Ejecutar un trabajo de Databricks
  • list_notebooks : enumera los cuadernos en un directorio de espacio de trabajo
  • export_notebook : Exportar un cuaderno desde el espacio de trabajo
  • list_files : enumera archivos y directorios en una ruta DBFS
  • execute_sql : Ejecutar una sentencia SQL

Instalación

Prerrequisitos

  • Python 3.10 o superior
  • Gestor de paquetes uv (recomendado para servidores MCP)

Configuración

  1. Instala uv si aún no lo tienes:
    # MacOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows (in PowerShell) irm https://astral.sh/uv/install.ps1 | iex
    Reinicie su terminal después de la instalación.
  2. Clonar el repositorio:
    git clone https://github.com/JustTryAI/databricks-mcp-server.git cd databricks-mcp-server
  3. Configurar el proyecto con uv :
    # Create and activate virtual environment uv venv # On Windows .\.venv\Scripts\activate # On Linux/Mac source .venv/bin/activate # Install dependencies in development mode uv pip install -e . # Install development dependencies uv pip install -e ".[dev]"
  4. Configurar variables de entorno:
    # Windows set DATABRICKS_HOST=https://your-databricks-instance.azuredatabricks.net set DATABRICKS_TOKEN=your-personal-access-token # Linux/Mac export DATABRICKS_HOST=https://your-databricks-instance.azuredatabricks.net export DATABRICKS_TOKEN=your-personal-access-token
    También puede crear un archivo .env basado en la plantilla .env.example .

Ejecución del servidor MCP

Para iniciar el servidor MCP, ejecute:

# Windows .\start_mcp_server.ps1 # Linux/Mac ./start_mcp_server.sh

Estos scripts de contenedor ejecutarán los scripts del servidor ubicados en el directorio scripts . El servidor se iniciará y estará listo para aceptar conexiones del protocolo MCP.

También puede ejecutar directamente los scripts del servidor desde el directorio de scripts:

# Windows .\scripts\start_mcp_server.ps1 # Linux/Mac ./scripts/start_mcp_server.sh

Consulta de recursos de Databricks

El repositorio incluye scripts de utilidad para ver rápidamente los recursos de Databricks:

# View all clusters uv run scripts/show_clusters.py # View all notebooks uv run scripts/show_notebooks.py

Estructura del proyecto

databricks-mcp-server/ ├── src/ # Source code │ ├── __init__.py # Makes src a package │ ├── __main__.py # Main entry point for the package │ ├── main.py # Entry point for the MCP server │ ├── api/ # Databricks API clients │ ├── core/ # Core functionality │ ├── server/ # Server implementation │ │ ├── databricks_mcp_server.py # Main MCP server │ │ └── app.py # FastAPI app for tests │ └── cli/ # Command-line interface ├── tests/ # Test directory ├── scripts/ # Helper scripts │ ├── start_mcp_server.ps1 # Server startup script (Windows) │ ├── run_tests.ps1 # Test runner script │ ├── show_clusters.py # Script to show clusters │ └── show_notebooks.py # Script to show notebooks ├── examples/ # Example usage ├── docs/ # Documentation └── pyproject.toml # Project configuration

Consulte project_structure.md para obtener una vista más detallada de la estructura del proyecto.

Desarrollo

Estándares de código

  • El código Python sigue la guía de estilo PEP 8 con una longitud de línea máxima de 100 caracteres
  • Utilice 4 espacios para sangría (sin tabulaciones)
  • Utilice comillas dobles para las cadenas
  • Todas las clases, métodos y funciones deben tener cadenas de documentación al estilo de Google
  • Las sugerencias de tipo son necesarias para todo el código, excepto las pruebas.

Pelusa

El proyecto utiliza las siguientes herramientas de linting:

# Run all linters uv run pylint src/ tests/ uv run flake8 src/ tests/ uv run mypy src/

Pruebas

El proyecto utiliza PyTest para realizar pruebas. Para ejecutar las pruebas:

# Run all tests with our convenient script .\scripts\run_tests.ps1 # Run with coverage report .\scripts\run_tests.ps1 -Coverage # Run specific tests with verbose output .\scripts\run_tests.ps1 -Verbose -Coverage tests/test_clusters.py

También puedes ejecutar las pruebas directamente con pytest:

# Run all tests uv run pytest tests/ # Run with coverage report uv run pytest --cov=src tests/ --cov-report=term-missing

El objetivo del proyecto es una cobertura de código mínima del 80%.

Documentación

  • La documentación de la API se genera utilizando Sphinx y se puede encontrar en el directorio docs/api
  • Todo el código incluye cadenas de documentación al estilo de Google
  • Consulte el directorio examples/ para ver ejemplos de uso

Ejemplos

Consulta el directorio examples/ para ver ejemplos de uso. Para ejecutar ejemplos:

# Run example scripts with uv uv run examples/direct_usage.py uv run examples/mcp_client_usage.py

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

  1. Asegúrese de que su código siga los estándares de codificación del proyecto
  2. Agregar pruebas para cualquier nueva funcionalidad
  3. Actualice la documentación según sea necesario
  4. Verifique que todas las pruebas pasen antes de enviar

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor que implementa el Protocolo de finalización de modelos (MCP) para permitir que los LLM interactúen con los recursos de Databricks, incluidos clústeres, trabajos, cuadernos y ejecución de SQL a través del lenguaje natural.

  1. Features
    1. Available Tools
      1. Installation
        1. Prerequisites
        2. Setup
      2. Running the MCP Server
        1. Querying Databricks Resources
          1. Project Structure
            1. Development
              1. Code Standards
              2. Linting
            2. Testing
              1. Documentation
                1. Examples
                  1. Contributing
                    1. License
                      ID: t233w8d0a5