Databricks MCP 服务器是一个为 Databricks 实现模型完成协议(MCP)的服务器,通过 MCP 协议提供对 Databricks 功能的访问。它使得由大型语言模型 (LLM) 支持的工具能够与 Databricks 集群、作业、笔记本等进行交互,极大地拓展了 Databricks 的应用场景。
Databricks MCP 服务器允许通过 MCP 协议访问 Databricks 功能,使基于大型语言模型(LLM)的工具能与 Databricks 集群、作业、笔记本等进行交互。以下是快速上手的步骤。
使用以下命令克隆 Databricks MCP 服务器仓库:
git clone https://github.com/your-organization/databricks-mcp-server.git
进入项目目录后,安装所有依赖项:
pip install -r requirements.txt
运行以下命令启动 MCP 服务器:
python src/server.py
在 examples/ 文件夹中,您可以找到直接使用服务器的示例:
from databricks_mcp.client import DatabricksMCPClient
client = DatabricksMCPClient('http://localhost:8080', 'your_token')
cluster_info = client.get_cluster(cluster_id)
print(cluster_info)
在 examples/ 文件夹中,您还可以找到使用 MCP 客户端的示例:
from databricks_mcp.client import DatabricksMCPClient
client = DatabricksMCPClient('http://localhost:8080', 'your_token')
response = client.run_job(job_id)
print(response)
Databricks MCP 服务器提供了丰富的工具,方便对 Databricks 资源进行管理:
| 工具名称 | 功能描述 |
|---|---|
list_clusters |
列出所有集群 |
get_cluster |
获取指定集群的详细信息 |
start_cluster |
启动指定集群 |
stop_cluster |
停止指定集群 |
delete_cluster |
删除指定集群 |
create_job |
创建新作业 |
list_jobs |
列出所有作业 |
get_job |
获取指定作业的详细信息 |
run_job |
运行指定作业 |
cancel_run |
取消指定运行 |
delete_run |
删除指定运行 |
create_notebook |
创建新笔记本 |
list_notebooks |
列出所有笔记本 |
get_notebook |
获取指定笔记本的详细信息 |
run_notebook |
运行指定笔记本 |
要启动服务器,请使用以下脚本:
# 启动 MCP 服务器
.\scripts\start_server.ps1
# 以 detached 模式启动
.\scripts\start_server.ps1 -Detached
要停止正在运行的服务器,请使用以下脚本:
# 停止 MCP 服务器
.\scripts\stop_server.ps1
项目的详细结构如下所示:
Databricks-MCP-Server/
├── src/
│ ├── server.py # 主服务器文件
│ └── client.py # MCP 客户端实现
├── tests/
│ ├── test_clusters.py # 测试集群功能
│ └── test_jobs.py # 测试作业功能
├── scripts/
│ ├── start_server.ps1 # 启动服务器的脚本
│ └── stop_server.ps1 # 停止服务器的脚本
├── examples/
│ ├── direct_usage.py # 直接使用示例
│ └── mcp_client_usage.py # MCP 客户端使用示例
└── pyproject.toml # 项目配置文件
项目使用以下源代码分析工具:
# 运行所有代码检查工具
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 运行测试:
# 运行所有测试
pytest
# 生成代码覆盖率报告
pytest --cov
项目文档位于 docs/ 文件夹中,您可以查阅 API 文档和开发指南。
欢迎为该项目做出贡献!请 fork 仓库并在提交之前创建一个拉取请求。
该项目在 LICENSE 下开源。