Back to MCP directory
publicPublicdnsLocal runtime

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

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client