Rancher高级MCP服务器
     
先进的 模型上下文协议(MCP) 服务器,使AI助手能够深入了解您的copula工作区——43个工具,涵盖依赖关系扫描、影响分析、笔记本审查、作业/流水线操作、SQL执行、目录管理、计算和仓库控制以及Unity catalog卷。
特性
| 域名 | 它做什么 |
|---|---|
| SQL 执行 | 使用可配置的结果限制对ConnectionSQL仓库运行SQL查询 |
| 表信息 | 检查表元数据、模式、列详细信息、行数和存储信息 |
| 依赖关系扫描 | 扫描笔记本、作业和DLT管道以构建工作区依赖关系图(DAG) |
| 图的运算 | 构建、查询和刷新工作区依赖关系图 |
| 影响分析 | 预测列删除、模式更改或管道故障导致的下游中断 |
| 笔记本评论 | 检测性能反模式、编码标准违规,并提出优化建议 |
| 工作和管道运营 | 列出作业/管道,通过错误诊断获取运行状态,触发重新运行 |
| 目录和架构 | 列出目录,列出/描述/创建/删除Unity目录模式 |
| 计算 | 列出集群、检查状态、启动/停止/重新启动集群 |
| SQL仓库 | 列出仓库、检查状态、启动/停止SQL仓库 |
| 工作区操作 | 创建/读取/删除笔记本、上传文件、获取工作区对象元数据 |
| UC卷 | 列出卷、检查元数据、浏览和读取Unity目录卷中的文件 |
演示
Click to play full video
https://github.com/user-attachments/assets/579282ca-bb26-4244-b0c6-3ad26050aca3
涵盖SQL执行、依赖关系扫描、影响分析、笔记本审查和作业/管道操作。
快速开始
先决条件
- Python 3.11+
- 紫外线 --快速Python包管理器
- A. copula工作区 使用SQL仓库
- 一个docker 个人访问令牌
其他身份验证方法: Rancher SDK支持 统一认证 --如果你不设置DATABRICKS_TOKEN,它将回退到Azure CLI、托管身份或.databrickscfgThe.env为了简单起见,下面的设置使用了PAT。 还没有一个copula工作区? 看infra/INSTALL.md使用二头肌进行单命令Azure部署。
1.安装
选项A:从PyPI安装(推荐)
uv pip install databricks-advanced-mcp或者使用pip:
pip install databricks-advanced-mcp选项B:从源代码安装
git clone https://github.com/henrybravo/databricks-advanced-mcp-server.git
cd databricks-advanced-mcp-server创建并激活虚拟环境:
Windows(PowerShell)
uv venv .venv
.\.venv\Scripts\Activate.ps1
uv pip install -e .macOS/Linux
uv venv .venv
source .venv/bin/activate
uv pip install -e .2.配置
cp .env.example .env编辑 .env 使用您的copula凭据:
# Azure Databricks:
DATABRICKS_HOST=https://adb-xxxx.azuredatabricks.net
# Databricks on AWS / GCP:
# DATABRICKS_HOST=https://dbc-xxxx.cloud.databricks.com
DATABRICKS_TOKEN=dapi_your_token
DATABRICKS_WAREHOUSE_ID=your_warehouse_id
# Optional (defaults shown)
# Azure workspaces typically use "main"; AWS/GCP workspaces use "workspace"
DATABRICKS_CATALOG=main
DATABRICKS_SCHEMA=default3.添加到IDE
创建 .vscode/mcp.json 在您的项目中,使用VS Code/GitHub Copilot注册MCP服务器。
选项A:PyPI安装(推荐)
如果你是从PyPI安装的(pip install databricks-advanced-mcp),the databricks-mcp CLI在您的PATH上可用:
{
"servers": {
"databricks-mcp": {
"type": "stdio",
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://adb-xxxx.azuredatabricks.net",
"DATABRICKS_TOKEN": "dapi_your_token",
"DATABRICKS_WAREHOUSE_ID": "your_warehouse_id"
}
}
}
}选项B:虚拟环境(源代码安装)
如果你克隆了仓库并安装到本地 .venv,直接指向Python解释器:
视窗
{
"servers": {
"databricks-mcp": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/Scripts/python.exe",
"args": ["-m", "databricks_advanced_mcp.server"],
"envFile": "${workspaceFolder}/.env"
}
}
}macOS/Linux
{
"servers": {
"databricks-mcp": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["-m", "databricks_advanced_mcp.server"],
"envFile": "${workspaceFolder}/.env"
}
}
}多个工作区
每个MCP服务器实例只连接到一个copula工作区。要同时使用多个工作区,请为每个工作区注册一个单独的服务器条目——每个条目都有自己的凭据:
{
"servers": {
// AWS / GCP workspace
"databricks-cloud": {
"type": "stdio",
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://dbc-xxxx.cloud.databricks.com",
"DATABRICKS_TOKEN": "dapi_cloud_token",
"DATABRICKS_WAREHOUSE_ID": "cloud_warehouse_id",
"DATABRICKS_CATALOG": "workspace"
}
},
// Azure workspace
"databricks-azure": {
"type": "stdio",
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://adb-xxxx.azuredatabricks.net",
"DATABRICKS_TOKEN": "dapi_azure_token",
"DATABRICKS_WAREHOUSE_ID": "azure_warehouse_id",
"DATABRICKS_CATALOG": "main"
}
}
}
}或者,通过源代码安装,您可以使用单独的 .env 每个工作区的文件:
{
"servers": {
"databricks-cloud": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["-m", "databricks_advanced_mcp.server"],
"envFile": "${workspaceFolder}/.env"
},
"databricks-azure": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["-m", "databricks_advanced_mcp.server"],
"envFile": "${workspaceFolder}/.env_azure"
}
}
}4.开始使用
配置后,您的AI助手可以调用下面43个工具中的任何一个。以下是按域组织的示例提示:
探索您的数据
- *“哪些表存在于
analytics模式?"* - *“显示的架构和元数据
main.sales.orders"* - *“运行一个查询,按状态对订单进行计数和求和
main.sales.orders"*
Unity目录和模式
- *“列出我有权访问的所有目录”*
- *“分析目录中存在哪些模式?”*
- *“描述
main.default架构“* - *“创建一个名为
staging在分析目录中”*
了解依赖关系
- *“构建完整的工作区依赖关系图”*
- *“上游和下游依赖关系是什么
main.default.customers?"* - *“扫描
/Shared/mandated_broker_v2_etl_pipeline用于表格参考的笔记本”* - *“扫描所有作业并显示其表依赖关系”*
在做出更改之前评估影响
- *“如果我摔了,会有什么破的
customer_id列从main.default.customers?"* - *“删除的影响是什么
amount列和重命名status到order_status在main.sales.orders?"*
检查笔记本电脑质量
- *“审查
/Shared/mandated_broker_v2_etl_pipeline性能问题”* - *“审查
/Shared/analysis对于所有问题——性能、编码标准和优化”*
监控作业和管道
- *“列出工作区中的所有作业”*
- *“作业12345的当前状态如何?”*
- *“显示DLT管道的管道状态”*
- *“使用参数env=prod触发作业67890的新运行”*
计算和SQL仓库
- *“显示集群abc-123的状态”*
- *“列出所有正在运行的群集”*
- *“停止开发SQL仓库”*
- *“目前哪些仓库处于活动状态?”*
工作空间和体积
- *“将ETL笔记本导出为源”*
- *“笔记本在/Workspace/Users/me/analysis上的状态如何?”*
- *“原始数据卷中有哪些文件?”*
- *“从设置卷读取config.json文件”*
MCP工具
SQL和表(3个工具)
| 工具 | 说明 |
|---|---|
execute_query | 对一个ConnectionSQL仓库执行SQL |
get_table_info | 获取表元数据--列、行数、属性、存储 |
list_tables | 列出catalog.schema中的表 |
依赖性扫描(4个工具)
| 工具 | 说明 |
|---|---|
scan_notebook | 扫描笔记本以查找表/列引用 |
scan_jobs | 扫描所有作业以查找表依赖关系 |
scan_dlt_pipelines | 扫描所有DLT管道以查找源/目标表 |
scan_dlt_pipeline | 按ID扫描单个DLT管道以查找源/目标表 |
图形操作(3个工具)
| 工具 | 说明 |
|---|---|
build_dependency_graph | 构建完整的工作空间依赖关系图 |
get_table_dependencies | 获取表的上游/下游依赖关系 |
refresh_graph | 使依赖关系图缓存无效并重新生成 |
影响分析和审查(2个工具)
| 工具 | 说明 |
|---|---|
analyze_impact | 分析列删除/模式更改/管道故障的影响 |
review_notebook | 查看笔记本以了解问题、反模式和优化 |
作业和管道运营(6个工具)
| 工具 | 说明 |
|---|---|
list_jobs | 列出具有状态和计划信息的作业 |
get_job_status | 通过错误诊断获取详细的作业运行状态 |
list_pipelines | 列出DLT管道的状态和更新状态 |
get_pipeline_status | 使用事件日志获取管道更新详细信息 |
trigger_rerun | 触发最新失败作业运行的重新运行(需要确认) |
trigger_job_run | 使用可选参数触发全新的作业运行(需要确认) |
目录和模式(5个工具)
| 工具 | 说明 |
|---|---|
list_catalogs | 列出当前主体可访问的所有Unity目录 |
list_schemas | 列出目录中的所有架构 |
describe_schema | 获取架构元数据、所有者、注释和属性 |
create_schema | 在目录中创建新架构(需要确认) |
drop_schema | 删除架构--必须为空(需要确认) |
计算(5个工具)
| 工具 | 说明 |
|---|---|
list_clusters | 列出所有具有状态、创建者和节点类型的集群 |
get_cluster_status | 获取详细的集群状态、spark版本和配置 |
start_cluster | 启动已终止的群集(需要确认) |
stop_cluster | 停止(终止)正在运行的集群(需要确认) |
restart_cluster | 重新启动正在运行的群集(需要确认) |
SQL仓库(4个工具)
| 工具 | 说明 |
|---|---|
list_warehouses | 列出所有SQL仓库的状态、大小和类型 |
get_warehouse_status | 获取详细的仓库配置、扩展和自动停止设置 |
start_warehouse | 启动已停止的SQL仓库(需要确认) |
stop_warehouse | 停止正在运行的SQL仓库(需要确认) |
工作空间操作(7个工具)
| 工具 | 说明 |
|---|---|
list_workspace_notebooks | 列出工作区路径中的所有笔记本 |
create_job | 创建新的copula作业(需要确认) |
create_notebook | 在工作区中创建笔记本(需要确认) |
workspace_upload | 将本地文件上传到工作区(需要确认) |
read_notebook | 读取/导出笔记本的内容(SOURCE或HTML) |
delete_workspace_item | 删除笔记本或文件夹(需要确认) |
get_workspace_status | 获取工作区对象的元数据(类型、语言、已修改) |
UC卷(4个工具)
| 工具 | 说明 |
|---|---|
list_volumes | 在Catalog.schema中列出Unity目录卷 |
get_volume_info | 获取卷元数据(类型、存储位置、所有者) |
list_volume_files | 列出卷内的文件和目录 |
read_volume_file | 从卷中读取文件内容 |
配置参考
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
DATABRICKS_HOST | 是 | -- | 工作区URL(https://adb-xxx.azuredatabricks.net 对于Azure, https://dbc-xxx.cloud.databricks.com 适用于AWS/GCP) |
DATABRICKS_TOKEN | 是 | -- | 个人访问令牌或服务主体令牌 |
DATABRICKS_WAREHOUSE_ID | 是 | -- | 查询执行的SQL仓库ID |
DATABRICKS_CATALOG | 没有 | main | 不合格表名的默认目录--使用 workspace 适用于AWS/GCP |
DATABRICKS_SCHEMA | 没有 | default | 非限定表名的默认架构 |
GRAPH_CACHE_TTL | 没有 | 3600 | 依赖图缓存TTL(秒) |
GRAPH_REFRESH_INTERVAL | 没有 | 0 | 每N秒在后台自动刷新一次图形。 0 禁用自动刷新 |
安全说明: 这execute_query工具可以运行 任何SQL 针对您的仓库,包括DDL(DROP TABLE,ALTER TABLE)DML(DELETE,UPDATE).使用最小权限服务主体(请参见 安全与治理 下面)而不是生产环境中的个人管理员PAT。
云提供商说明
此服务器经过测试 Azure数据集 和 AWS上的copula (.cloud.databricks.com).主要区别:
| 特性 | Azure | AWS/GCP |
|---|---|---|
| 主机格式 | https://adb-xxx.azuredatabricks.net | https://dbc-xxx.cloud.databricks.com |
| 默认目录 | main | workspace |
| 工作区根对象 | DIRECTORY | DIRECTORY 和 REPO |
所有工具都可以在两个平台上运行。集 DATABRICKS_CATALOG 以匹配工作区的默认目录。
安全与治理
推荐:特权最低的服务负责人
避免将个人管理员PAT存储在 .env 或VS代码配置。相反,创建一个仅具有所需权限的专用服务主体:
-- Grant read access on the catalog and schema
GRANT USE CATALOG ON CATALOG main TO `sp-databricks-mcp`;
GRANT USE SCHEMA ON SCHEMA main.default TO `sp-databricks-mcp`;
GRANT SELECT ON SCHEMA main.default TO `sp-databricks-mcp`;
-- For job operations (trigger_rerun, trigger_job_run, get_job_status)
-- Grant CAN_MANAGE_RUN on specific jobs only, via the Databricks UI or API集 DATABRICKS_TOKEN 服务主体的OAuth令牌或M2M秘密。Rancher SDK支持 OAuth M2M身份验证 本机-不需要PAT。
工具风险等级
| 风险 | 工具 | 注释 |
|---|---|---|
| 只读 | execute_query (仅限选择), get_table_info, list_tables, scan_*, list_*, get_*, describe_schema, build_dependency_graph, get_table_dependencies, analyze_impact, review_notebook, read_notebook, read_volume_file | 具有只读权限的安全 |
| 突变 | trigger_rerun, trigger_job_run, create_schema, start_cluster, stop_cluster, restart_cluster, start_warehouse, stop_warehouse, create_job, create_notebook, workspace_upload | 需要 confirm=True |
| 破坏性的 | drop_schema, delete_workspace_item, execute_query 带DDL/DML | 需要 confirm=True;仔细确定权限范围 |
Unity目录ACL
全部 execute_query 和 get_table_info 调用尊重Unity目录行/列级安全性。如果代币的本金不足 SELECT 在表上,操作失败并出现权限错误——这是预期的正确行为。
查询保护
限制 execute_query 对于只读语句,请限制SQL仓库的通道策略或为此MCP服务器使用专用的只读仓库。
基础设施(可选)
如果您需要配置新的Azure Rancher工作区 infra/ 目录包含:
main.bicep--Azure二头肌模板(高级SKU,启用Unity目录)deploy.ps1--一个命令PowerShell部署脚本INSTALL.md--详细的分步部署指南
cd infra
./deploy.ps1 -ResourceGroupName rg-databricks-mcp -Location eastus2发展
# Install with dev dependencies
uv pip install -e ".[dev]"
# Run tests (excluding live integration tests)
uv run pytest tests/ --ignore=tests/test_workspace_ops_live.py -v
# Run tests with coverage report
uv run pytest tests/ --cov=src/databricks_advanced_mcp --cov-report=term-missing --ignore=tests/test_workspace_ops_live.py
# Lint
uv run ruff check src/ tests/
# Type check
uv run mypy src/建筑
src/databricks_advanced_mcp/
├── server.py # FastMCP server + CLI entry point
├── config.py # Pydantic settings from env vars
├── client.py # Databricks SDK client factory
├── tools/ # MCP tool implementations (43 tools across 13 modules)
│ ├── __init__.py # Central registration of all tool modules
│ ├── sql_executor.py # SQL execution (1 tool)
│ ├── table_info.py # Table metadata (2 tools)
│ ├── dependency_scanner.py # Scan notebooks/jobs/pipelines (4 tools)
│ ├── graph_ops.py # Build/query/refresh dependency graph (3 tools)
│ ├── impact_analysis.py # Impact analysis (1 tool)
│ ├── notebook_reviewer.py # Notebook review (1 tool)
│ ├── job_pipeline_ops.py # Job & pipeline operations (6 tools)
│ ├── workspace_listing.py # Workspace listing (1 tool)
│ ├── workspace_ops.py # Workspace mutations + read/delete (6 tools)
│ ├── catalog_ops.py # Unity Catalog & schema management (5 tools)
│ ├── compute_ops.py # Cluster management (5 tools)
│ ├── warehouse_ops.py # SQL warehouse management (4 tools)
│ └── volume_ops.py # Unity Catalog volumes (4 tools)
├── parsers/ # Code parsing engines
│ ├── sql_parser.py # sqlglot-based SQL extraction
│ ├── notebook_parser.py # Databricks notebook cell parsing
│ └── dlt_parser.py # DLT pipeline definition parsing
├── graph/ # Dependency graph
│ ├── models.py # Node, Edge, DependencyGraph data models
│ ├── builder.py # Graph builder (orchestrates scans)
│ └── cache.py # In-memory graph cache with TTL
└── reviewers/ # Notebook review rule engines
├── performance.py # Performance anti-patterns
├── standards.py # Coding standards checks
└── suggestions.py # Optimization suggestions许可证
______________________________________________________________________
欢迎投稿!看 贡献.md 获取设置说明、PR清单和所需功能列表。
