Unity Catalog元数据探索工具

用于探索Unity Catalog元数据并通过Databricks SQL执行只读查询的服务器工具。

  • by DXcarlos
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 DXcarlos/databricks-mcp-server

使用说明

数据块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_catalogs
    • list_schemas
    • list_tables
    • get_table_metadata
    • describe_table_full
    • preview_table
    • search_tables
    • execute_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

📤 发布设置

  1. 在PyPI中,为此GitHub存储库和工作流配置一个受信任的发布者。
  2. 在GitHub中,保持 pypi 具有所需保护的环境(发布作业使用)。
  3. 创建并推送版本标签:
git tag v0.1.0
git push origin v0.1.0