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.

Databricks MCP 服务器

一个用于 Databricks 的模型完成协议 (MCP) 服务器,可通过 MCP 协议访问 Databricks 功能。这使得基于 LLM 的工具能够与 Databricks 集群、作业、笔记本等进行交互。

特征

  • MCP 协议支持:实现 MCP 协议以允许 LLM 与 Databricks 交互
  • Databricks API 集成:提供对 Databricks REST API 功能的访问
  • 工具注册:将 Databricks 功能公开为 MCP 工具
  • 异步支持:使用 asyncio 构建,可实现高效运行

可用工具

Databricks MCP 服务器公开以下工具:

  • list_clusters :列出所有 Databricks 集群
  • create_cluster :创建一个新的 Databricks 集群
  • 终止Databricks 集群
  • get_cluster :获取有关特定 Databricks 集群的信息
  • start_cluster :启动已终止的 Databricks 集群
  • list_jobs :列出所有 Databricks 作业
  • run_job :运行 Databricks 作业
  • list_notebooks :列出工作区目录中的笔记本
  • export_notebook :从工作区导出笔记本
  • list_files :列出 DBFS 路径中的文件和目录
  • 执行SQL 语句

安装

先决条件

  • Python 3.10 或更高版本
  • uv包管理器(推荐用于 MCP 服务器)

设置

  1. 如果尚未安装uv ,请安装它:
    # MacOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows (in PowerShell) irm https://astral.sh/uv/install.ps1 | iex
    安装后重新启动终端。
  2. 克隆存储库:
    git clone https://github.com/JustTryAI/databricks-mcp-server.git cd databricks-mcp-server
  3. 使用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. 设置环境变量:
    # 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
    您还可以基于.env.example模板创建.env文件。

运行 MCP 服务器

要启动 MCP 服务器,请运行:

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

这些包装脚本将执行位于scripts目录中的实际服务器脚本。服务器将启动并准备好接受 MCP 协议连接。

您也可以直接从脚本目录运行服务器脚本:

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

查询 Databricks 资源

该存储库包含用于快速查看 Databricks 资源的实用程序脚本:

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

项目结构

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

请参阅project_structure.md来了解项目结构的更详细视图。

发展

代码标准

  • Python 代码遵循 PEP 8 风格指南,每行最大长度为 100 个字符
  • 使用 4 个空格缩进(不使用制表符)
  • 对字符串使用双引号
  • 所有类、方法和函数都应该有 Google 风格的文档字符串
  • 除测试外,所有代码都需要类型提示

代码检查

该项目使用以下 linting 工具:

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

测试

该项目使用 pytest 进行测试。要运行测试:

# 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

您还可以直接使用 pytest 运行测试:

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

该项目的目标是最低代码覆盖率达到 80%。

文档

  • API 文档是使用 Sphinx 生成的,可以在docs/api目录中找到
  • 所有代码都包含 Google 风格的文档字符串
  • 请参阅examples/目录以获取使用示例

示例

查看examples/目录以获取用法示例。要运行示例,请执行以下操作:

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

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

  1. 确保您的代码遵循项目的编码标准
  2. 为任何新功能添加测试
  3. 根据需要更新文档
  4. 提交前验证所有测试均已通过

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

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

实现模型完成协议 (MCP) 的服务器,允许 LLM 通过自然语言与 Databricks 资源(包括集群、作业、笔记本和 SQL 执行)进行交互。

  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