
Databricks MCP Server

Overview
基本能力
产品定位
Databricks MCP Server 是一个为 Databricks 设计的 MCP 服务器,通过 MCP 协议提供对 Databricks 功能的访问,使 LLM 驱动的工具能够与 Databricks 集群、作业、笔记本等进行交互。
核心功能
- MCP 协议支持:实现 MCP 协议,允许 LLM 与 Databricks 交互。
- Databricks API 集成:提供对 Databricks REST API 功能的访问。
- 工具注册:将 Databricks 功能暴露为 MCP 工具。
- 异步支持:基于 asyncio 构建,支持高效操作。
适用场景
- 通过 LLM 驱动的工具管理 Databricks 集群。
- 自动化执行 Databricks 作业和笔记本。
- 查询和管理 Databricks 文件系统(DBFS)中的文件和目录。
- 执行 SQL 语句并获取结果。
工具列表
- 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 语句。
常见问题解答
- 如何设置环境变量?:可以通过命令行或
.env
文件设置DATABRICKS_HOST
和DATABRICKS_TOKEN
。 - 如何启动服务器?:使用提供的脚本
start_mcp_server.ps1
(Windows)或start_mcp_server.sh
(Linux/Mac)。 - 如何运行测试?:使用
run_tests.ps1
脚本或直接运行pytest
。
使用教程
使用依赖
- Python 3.10 或更高版本。
uv
包管理器(推荐用于 MCP 服务器)。
安装教程
- 安装
uv
: ```bash # MacOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (in PowerShell) irm https://astral.sh/uv/install.ps1 | iex ``` 安装完成后重启终端。
-
克隆仓库:
bash git clone https://github.com/JustTryAI/databricks-mcp-server.git cd databricks-mcp-server
-
设置项目: ```bash # 创建并激活虚拟环境 uv venv
# Windows ..venv\Scripts\activate
# Linux/Mac source .venv/bin/activate
# 安装依赖 uv pip install -e .
# 安装开发依赖 uv pip install -e ".[dev]" ```
- 设置环境变量: ```bash # 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` 文件。
调试方式
- 启动 MCP 服务器: ```bash # Windows .\start_mcp_server.ps1
# Linux/Mac ./start_mcp_server.sh ```
- 查询 Databricks 资源: ```bash # 查看所有集群 uv run scripts/show_clusters.py
# 查看所有笔记本 uv run scripts/show_notebooks.py ```
- 运行测试: ```bash # 运行所有测试 .\scripts\run_tests.ps1
# 运行特定测试 .\scripts\run_tests.ps1 -Verbose -Coverage tests/test_clusters.py ```