article
README
🚀 Databricks MCP 服务端
Databricks MCP 服务端是一个模型上下文协议(MCP)服务器,可借助 Statement Execution API 在 Databricks 上执行 SQL 查询。它能利用 Databricks API 执行 SQL 请求以检索数据,在代理模式下,还能成功迭代多个请求来执行复杂任务。与 Unity Catalog 元数据搭配使用,效果更优。
✨ 主要特性
- 执行 Databricks 上的 SQL 查询
- 列出目录中的可用架构
- 列出架构中的表
- 描述表结构
📦 安装指南
系统要求
- Python 3.10+ 版本
- 若计划通过
uv安装,请确保已 安装
安装步骤
- 安装所需的依赖项:
pip install -r requirements.txt
或使用 uv:
uv pip install -r requirements.txt
- 设置环境变量:
- 选项 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:用于异步操作
扫码联系在线客服