Databricks MCP服务器

一个连接Databricks API的模型上下文协议(MCP)服务器,允许LLM运行SQL查询、列出作业和获取作业状态。

  • by JordiNeil
  • Python
  • 本地部署
  • 50 星标
  • 更新于
在 GitHub 查看 JordiNeil/mcp-databricks-server

使用说明

_CHMCP服务器

模型上下文协议(MCP)服务器,连接到Databricks API,允许LLM运行SQL查询、列出作业并获取作业状态。

特性

  • 在ConnectionSQL仓库上运行SQL查询
  • 列出所有Databricks工作
  • 获取特定copula作业的状态
  • 获取关于copula作业的详细信息

先决条件

  • Python 3.7+
  • docker工作区,包括:
    • 个人访问令牌
    • SQL仓库端点
    • 运行查询和访问作业的权限

设置

  1. 克隆此存储库
  2. 创建并激活虚拟环境(推荐):
    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 安装依赖项:
    pip install -r requirements.txt
    
  4. 创建一个 .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
    
  5. 测试您的连接(可选但推荐):
    python test_connection.py
    

获取copula凭据

  1. 主机:您的copula实例URL(例如。, your-instance.cloud.databricks.com)
  2. 代币:在copula中创建个人访问令牌:
    • 转到用户设置(单击右上角的用户名)
    • 选择“开发人员”选项卡
    • 点击“访问令牌”下的“管理”
    • 生成新令牌,并立即保存
  3. HTTP路径:对于您的SQL仓库:
    • 转到ViewModel中的SQL仓库
    • 选择您的仓库
    • 查找连接详细信息并复制HTTP路径

运行服务器

启动MCP服务器:

python main.py

您可以使用检查器通过运行以下命令来测试MCP服务器

npx @modelcontextprotocol/inspector python3 main.py

可用的MCP工具

以下MCP工具可用:

  1. run_sql_query(sql:str) -在ConnectionSQL仓库上执行SQL查询
  2. list_jobs() -列出工作区中的所有copula作业
  3. get_job_status(job_id:int) -通过ID获取特定copula作业的状态
  4. get_job_details(job_id:int) -获取有关特定copula作业的详细信息

LLM使用示例

当与支持MCP协议的LLM一起使用时,此服务器可以与您的copula环境进行自然语言交互:

  • “显示数据库中的所有表”
  • “运行查询以统计客户表中的记录”
  • 列出我的所有Databricks工作
  • “检查作业#123的状态”
  • “显示作业#456的详细信息”

故障排除

连接问题

  • 确保您的copula主机是正确的,并且不包括 https:// 前缀
  • 检查您的SQL仓库是否正在运行且可访问
  • 验证您的个人访问令牌是否具有必要的权限
  • 运行附带的测试脚本: python test_connection.py

安全考虑

  • 您的Rancher个人访问令牌可直接访问您的工作区
  • 保护您的 .env 文件,永远不要将其提交到版本控制中
  • 考虑仅使用具有适当权限范围的ViewModel令牌
  • 在安全环境中运行此服务器