mcpField
D
Databricks MCP Server

Databricks MCP Server

本地服务
github.com/JustTryAI云与基础设施5085 周前更新

关于 Databricks MCP Server

Databricks MCP 服务通过 REST API 向 LLM 工具开放集群、作业、笔记本和文件等功能,适合需要从 MCP 客户端管理 Databricks 资源的场景。

主要功能

  1. 01列出、创建和管理集群
  2. 02列出并运行作业
  3. 03浏览和导出笔记本
  4. 04列出 DBFS 文件
  5. 05执行 SQL 语句

适用场景

  1. 01查看或启动 Databricks 集群
  2. 02运行 Databricks 作业
  3. 03导出工作区笔记本
  4. 04查询 DBFS 文件或执行 SQL

MCP 相关

该服务将 Databricks REST API 功能注册为 MCP 工具,供 MCP 客户端调用。它支持管理集群、作业、笔记本、文件及 SQL 操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Databricks MCP 服务

Databricks 的 Model Completion Protocol(MCP)服务,可通过 MCP 协议访问 Databricks 功能。这样一来,由大模型驱动的工具便可与 Databricks 集群、作业、笔记本等进行交互。

功能

  • MCP 协议支持:实现 MCP 协议,使大模型能够与 Databricks 交互
  • Databricks API 集成:提供对 Databricks REST API 功能的访问
  • 工具注册:将 Databricks 功能作为 MCP 工具提供
  • 异步支持:基于 asyncio 构建,运行高效

可用工具

Databricks MCP 服务提供以下工具:

  • list_clusters:列出所有 Databricks 集群
  • create_cluster:创建新的 Databricks 集群
  • terminate_cluster:终止 Databricks 集群
  • get_cluster:获取特定 Databricks 集群的信息
  • start_cluster:启动已终止的 Databricks 集群
  • list_jobs:列出所有 Databricks 作业
  • run_job:运行 Databricks 作业
  • list_notebooks:列出工作区目录中的笔记本
  • export_notebook:从工作区导出笔记本
  • list_files:列出 DBFS 路径中的文件和目录
  • execute_sql:执行 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 协议连接。

你也可以直接从 scripts 目录运行服务脚本:

# 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 风格的文档字符串
  • 除测试外,所有代码都必须包含类型提示
代码检查

项目使用以下代码检查工具:

# 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 Request。

  1. 确保代码遵循项目的编码规范
  2. 为任何新功能添加测试
  3. 按需更新文档
  4. 提交前确认所有测试均通过

许可证

本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。