返回市场
databricks-mcp-服务器

databricks-mcp-服务器

作者:JustTryAI40 星标更新:2025-03-24

项目介绍

Databricks MCP Server

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

特性

  • MCP协议支持:实现MCP协议,允许LLMs与Databricks进行交互。
  • Databricks API集成:提供对Databricks REST API功能的访问。
  • 工具注册:将Databricks功能暴露为MCP工具。
  • 异步支持:使用asyncio构建,以实现高效操作。

可用工具

Databricks MCP Server暴露了以下工具:

  • list_clusters:列出所有Databricks集群。
  • create_cluster:创建一个新的Databricks集群。
  • terminate_cluster:终止一个Databricks集群。
  • get_cluster:获取特定DDatabricks集群的信息。
  • 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 (在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设置项目:

    # 创建并激活虚拟环境
    uv venv
    
    # 在Windows上
    .\.venv\Scripts\activate
    
    # 在Linux/Mac上
    source .venv/bin/activate
    
    # 在开发模式下安装依赖项
    uv pip install -e .
    
    # 安装开发依赖项
    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资源:

# 查看所有集群
uv run scripts/show_clusters.py

# 查看所有笔记本
uv run scripts/show_notebooks.py

项目结构

databricks-mcp-server/
├── src/                             # 源代码
│   ├── __init__.py                  # 使src成为一个包
│   ├── __main__.py                  # 包的主要入口点
│   ├── main.py                      # MCP服务器的入口点
│   ├── api/                         # Databricks API客户端
│   ├── core/                        # 核心功能
│   ├── server/                      # 服务器实现
│   │   ├── databricks_mcp_server.py # 主MCP服务器
│   │   └── app.py                   # 测试用的FastAPI应用
│   └── cli/                         # 命令行界面
├── tests/                           # 测试目录
├── scripts/                         # 辅助脚本
│   ├── start_mcp_server.ps1         # 服务器启动脚本(Windows)
│   ├── run_tests.ps1                # 测试运行脚本
│   ├── show_clusters.py             # 显示集群的脚本
│   └── show_notebooks.py            # 显示笔记本的脚本
├── examples/                        # 示例用法
├── docs/                            # 文档
└── pyproject.toml                   # 项目配置

请参阅project_structure.md以获得更详细的项目结构视图。

开发

代码标准

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

代码检查

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

# 运行所有检查器
uv run pylint src/ tests/
uv run flake8 src/ tests/
uv run mypy src/

测试

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

# 使用方便的脚本运行所有测试
.\scripts\run_tests.ps1

# 带覆盖率报告运行
.\scripts\run_tests.ps1 -Coverage

# 带详细输出运行特定测试
.\scripts\run_tests.ps1 -Verbose -Coverage tests/test_clusters.py

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

# 运行所有测试
uv run pytest tests/

# 带覆盖率报告运行
uv run pytest --cov=src tests/ --cov-report=term-missing

项目的最低代码覆盖率为80%。

文档

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

示例

请检查examples/目录以获取使用示例。要运行示例:

# 使用uv运行示例脚本
uv run examples/direct_usage.py
uv run examples/mcp_client_usage.py

贡献

欢迎贡献!请随意提交拉取请求。

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

许可证

此项目采用MIT许可证——详情见LICENSE文件。