项目介绍
Databricks MCP 服务器
这是一个连接到 Databricks API 的模型上下文协议(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 凭证
- 主机:你的 Databricks 实例 URL(例如,
your-instance.cloud.databricks.com)
- 令牌:在 Databricks 中创建个人访问令牌:
- 转到用户设置(点击右上角的用户名)
- 选择“开发者”标签
- 在“访问令牌”下点击“管理”
- 生成一个新的令牌,并立即保存它
- HTTP 路径:对于你的 SQL 仓库:
- 转到 Databricks 中的 SQL 仓库
- 选择你的仓库
- 查找连接详情并复制 HTTP 路径
启动服务器
启动 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 环境进行交互:
- “显示数据库中的所有表”
- “运行查询以计算客户表中的记录数”
- “列出我的所有 Databricks 作业”
- “检查作业 #123 的状态”
- “显示作业 #456 的详细信息”
故障排除
连接问题
- 确保你的 Databricks 主机正确且不包含
https:// 前缀
- 检查你的 SQL 仓库是否正在运行且可访问
- 验证你的个人访问令牌具有必要的权限
- 运行包含的测试脚本:
python test_connection.py
安全注意事项
- 你的 Databricks 个人访问令牌提供了对你工作区的直接访问
- 保护你的
.env 文件,切勿将其提交到版本控制中
- 考虑仅使用具有适当权限范围的 Databricks 令牌
- 在安全环境中运行此服务器