使用说明
数据块mcp服务器
MCP服务器用于探索Unity Catalog元数据,并通过copula SQL语句执行运行只读SQL。
✅ 先决条件
- Python 3.10+
- docker命令行界面v0.205.0+
安装并使用copula CLI登录:
databricks auth login --host https://<your-workspace-host>
可选:使用非默认配置文件:
databricks auth login --host https://<your-workspace-host> --profile my-profile
📦 安装
just install
或者,您可以直接安装Poetry:
poetry install
或使用 pip 在虚拟环境中:
python -m venv .venv
source .venv/bin/activate
pip install -e .
▶️ 运行MCP服务器
databricks-mcp-server
服务器从以下位置使用了copula CLI身份验证 ~/.databrickscfg 具有多配置文件支持(DEFAULT 回退)。
🧰 可用的MCP工具
list_catalogs:列出当前用户/配置文件可用的Unity目录。list_schemas:列出给定目录中的模式。list_tables:列出给定目录和模式中的表/视图。get_table_metadata:返回包含完整列详细信息(名称、类型、可空、注释)的表元数据。describe_table_full:返回扩展的治理元数据(所有者、created_at、表类型、存储、列)。preview_table:使用SQL仓库(只读)从表中获取示例行。search_tables:在目录和模式中按名称或注释搜索表。execute_query:执行只读SQL(SELECT,SHOW,DESCRIBE)通过SQL仓库。
实施了可选的高价值工具:
check_missing_descriptions:检测没有描述/注释的列。get_table_columns_only:仅返回表的列架构。
📝 备注
execute_query只允许以开头的查询SELECT,SHOW,或DESCRIBE.- 修改关键字,如
DROP,DELETE,UPDATE,INSERT,ALTER,TRUNCATE,CREATE,MERGE被封锁。
⚙️ 只是命令
just install:使用Poetry安装deps。just run:通过stdio运行MCP服务器。just lint:编译时健全性检查。just format:使用Ruff的格式代码。just test:运行单元测试。just coverage:使用覆盖率报告运行单元测试。just list-warehouses:列出的SQL仓库DEFAULT轮廓。just list-warehouses my-profile:列出自定义配置文件的SQL仓库。just live-smoke:live copula检查(仅当仓库存在时自动选择仓库)。just live-smoke DEFAULT <warehouse_id>:与明确的仓库进行实时检查。
🤖 与GitHub Copilot一起使用
您可以将此MCP服务器以本地身份连接到GitHub Copilot Chat stdio 服务器。
1.✅ 确保先决条件
- 在IDE中启用MCP支持的GitHub Copilot。
- Rancher CLI登录已完成:
databricks auth login --host https://<your-workspace-host> --profile DEFAULT
2.🛠️ 在IDE中配置MCP
在VS Code中,创建 .vscode/mcp.json (或使用您的全局MCP设置):
{
"servers": {
"databricks-mcp": {
"command": "poetry",
"args": ["run", "databricks-mcp-server"],
"cwd": "/path/to/your/databricks-mcp-server"
}
}
}
注: 确保 cwd 指向计算机上项目目录的绝对路径。
对于支持Copilot MCP的JetBrains IDE,请使用等效的 mcp.json 服务器设置(stdio + poetry run databricks-mcp-server).
3.🔍 启动并验证工具
- 从IDE MCP配置UI启动MCP服务器。
- 打开Copilot聊天
Agent模式。 - 打开工具列表,确认您可以看到:
list_catalogslist_schemaslist_tablesget_table_metadatadescribe_table_fullpreview_tablesearch_tablesexecute_query
4.💬 Copilot聊天中的提示示例
List my Unity Catalog catalogs using the databricks-mcp MCP server.List schemas in catalog main.Find tables related to transactions.Describe table main.finance.transactions.
如果您使用的是Copilot Business/Enterprise,您的组织策略必须允许MCP服务器。
🚀 CI/CD
此仓库包括GitHub Actions工作流:
-
CI(.github/workflows/ci.yml)- 运行推送和拉取请求
main - Python矩阵:
3.10,3.11,3.12 - 安装诗歌,然后运行:
- 编译检查
- 单元测试
- 运行推送和拉取请求
-
Release(.github/workflows/release.yml)- 在以下标签上运行
v0.1.0(以及人工调度) - 用Poetry构建分发工件
- 使用GitHub OIDC可信发布发布到PyPI
- 在以下标签上运行
📤 发布设置
- 在PyPI中,为此GitHub存储库和工作流配置一个受信任的发布者。
- 在GitHub中,保持
pypi具有所需保护的环境(发布作业使用)。 - 创建并推送版本标签:
git tag v0.1.0
git push origin v0.1.0