返回 MCP 目录
public公开dns本地运行

mcp-databricks-server

这是一个基于Model Context Protocol (MCP)的服务器,用于通过Databricks Statement Execution API执行SQL查询,支持复杂任务迭代和Unity Catalog元数据集成。

article

README

🚀 Databricks MCP 服务端

Databricks MCP 服务端是一个模型上下文协议(MCP)服务器,可借助 Statement Execution API 在 Databricks 上执行 SQL 查询。它能利用 Databricks API 执行 SQL 请求以检索数据,在代理模式下,还能成功迭代多个请求来执行复杂任务。与 Unity Catalog 元数据搭配使用,效果更优。

✨ 主要特性

  • 执行 Databricks 上的 SQL 查询
  • 列出目录中的可用架构
  • 列出架构中的表
  • 描述表结构

📦 安装指南

系统要求

  • Python 3.10+ 版本
  • 若计划通过 uv 安装,请确保已 安装

安装步骤

  1. 安装所需的依赖项:
pip install -r requirements.txt

或使用 uv

uv pip install -r requirements.txt
  1. 设置环境变量:
    • 选项 1:使用 .env 文件(推荐) 创建一个包含 Databricks 凭据的 .env 文件:
DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com
DATABRICKS_TOKEN=your-databricks-access-token
DATABRICKS_SQL_WAREHOUSE_ID=your-sql-warehouse-id
- 选项 2:通过命令行设置
export DATABRICKS_HOST="your-databricks-instance.cloud.databricks.com"
export DATABRICKS_TOKEN="your-databricks-access-token"
export DATABRICKS_SQL_WAREHOUSE_ID="your-sql-warehouse-id"

🔧 技术细节

权限要求

  • SQL 仓库权限:确保用户具有执行查询的权限。
  • Catalog 和 Schema 访问:根据组织的安全策略配置对特定目录、架构和表的访问。
  • 最佳实践
    • 定期轮换访问令牌。
    • 避免将敏感信息硬编码到代码中。

运行服务器

独立运行

python dbapi.py

与 Cursor 集成

在 Agent Composer 或其他 MCP 客户端中,可以使用以下工具:

execute_sql_query("SELECT * FROM my_schema.my_table LIMIT 10")
list_schemas("my_catalog")
list_tables("my_catalog.my_schema")
describe_table("my_catalog.my_schema.my_table")

处理长时间运行的查询

服务器设计用于处理长时间运行的查询,通过轮询 Databricks API 直到查询完成或超时。默认超时时间为 10 分钟(60 次重试,间隔为 10 秒),可以在 dbapi.py 文件中根据需要调整。

依赖项

  • httpx:用于向 Databricks API 发送 HTTP 请求
  • python-dotenv:用于从 .env 文件加载环境变量
  • mcp:模型上下文协议库
  • asyncio:用于异步操作
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端