Databricks交互管理服务器
一种模型上下文协议服务器,使大型语言模型能够通过自然语言与Databricks工作区交互,从而实现SQL查询执行和作业管理操作。
服务介绍
Databricks MCP 服务器
一个连接到 Databricks API 的 Model Context Protocol (MCP) 服务器,允许 LLMs 运行 SQL 查询、列出作业并获取作业状态。
功能
- 在 Databricks SQL 仓库上运行 SQL 查询
- 列出所有 Databricks 作业
- 获取特定 Databricks 作业的状态
- 获取关于 Databricks 作业的详细信息
前提条件
- Python 3.7+
- Databricks 工作区,包含以下内容:
- 个人访问令牌
- SQL 仓库端点
- 执行查询和访问作业的权限
设置
- 克隆此仓库
- 创建并激活虚拟环境(推荐):
python -m venv .venv source .venv/bin/activate # 在 Windows 上: .venv\Scripts\activate - 安装依赖项:
pip install -r requirements.txt - 在根目录中创建一个
.env文件,并添加以下变量:DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com DATABRICKS_TOKEN=your-personal-access-token DATABRICKS_HTTP_PATH=/sql/1.0/warehouses/your-warehouse-id - 测试连接(可选但推荐):
python test_connection.py
获取 Databricks 凭证
- Host:您的 Databricks 实例 URL(例如
your-instance.cloud.databricks.com) - Token:在 Databricks 中创建个人访问令牌:
- 转到用户设置(点击右上角的用户名)
- 选择“Developer”选项卡
- 点击“Access tokens”下的“Manage”
- 生成一个新的令牌,并立即保存
- HTTP Path:对于您的 SQL 仓库:
- 转到 Databricks 中的 SQL 仓库
- 选择您的仓库
- 查找连接详情并复制 HTTP Path
运行服务器
启动 MCP 服务器:
python main.py
您可以使用检查器测试 MCP 服务器,运行:
npx @modelcontextprotocol/inspector python3 main.py
可用的 MCP 工具
以下是可用的 MCP 工具:
- run_sql_query(sql: str) - 在您的 Databricks SQL 仓库上执行 SQL 查询
- list_jobs() - 列出工作区中的所有 Databricks 作业
- get_job_status(job_id: int) - 通过 ID 获取特定 Databricks 作业的状态
- get_job_details(job_id: int) - 获取特定 Databricks 作业的详细信息
使用 LLMs 的示例
当与支持 MCP 协议的 LLMs 一起使用时,此服务器使您能够以自然语言与 Databricks 环境进行交互:
- "显示数据库中的所有表"
- "运行查询以统计 customer 表中的记录数"
- "列出我的所有 Databricks 作业"
- "检查作业 #123 的状态"
- "显示关于作业 #456 的详细信息"
故障排除
连接问题
- 确保您的 Databricks 主机正确且不包含
https://前缀 - 检查您的 SQL 仓库是否正在运行且可访问
- 验证您的个人访问令牌具有必要的权限
- 运行随附的测试脚本:
python test_connection.py
安全考虑
- 您的 Databricks 个人访问令牌提供了直接访问您的工作区的权限
- 确保您的
.env文件安全,并且永远不要将其提交到版本控制中 - 考虑仅使用具有适当权限范围的 Databricks 令牌
- 在安全的环境中运行此服务器