关于 Databricks MCP Server
Databricks MCP Server 通过官方 Python SDK 将 MCP 客户端连接到 Databricks 服务。它覆盖数据、计算、机器学习、管理和引导式工作流,并支持按模块筛选工具。
主要功能
- 01覆盖 28 个服务领域的工具
- 028 个引导式提示词模板
- 03按需加载工具模块
- 04由 SDK 管理身份验证
- 05工作区上下文资源
- 06支持 stdio 和 SSE 传输
适用场景
- 01查询数据并浏览 Unity Catalog
- 02管理计算资源、作业和管道
- 03部署模型并使用 Vector Search
- 04管理工作区用户与权限
MCP 相关
将 Databricks 操作作为 MCP 工具提供,并包含提示词模板和只读工作区资源。客户端可通过 stdio 或 SSE 连接,也可用环境变量筛选工具模块。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx databricks-sdk-mcpDATABRICKS_HOSTYour Databricks workspace URL (e.g. https://adb-123.azuredatabricks.net)DATABRICKS_TOKEN密钥Databricks personal access token or OAuth tokenDATABRICKS_MCP_TOOLS_INCLUDEComma-separated list of tool modules to load (e.g. unity_catalog,sql,compute). Leave empty to load all 263 tools.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Databricks MCP Server
这是一个面向 Databricks 的综合型 Model Context Protocol (MCP) 服务,基于官方的 Databricks Python SDK 构建。
它在 28 个服务领域提供 263 个工具和 8 个提示词模板,让 AI 助手能够全面访问 Databricks 平台。
功能
- SDK 优先:使用
databricks-sdk实现类型安全,并自动保持 API 最新 - 全面覆盖:涵盖 Unity Catalog、SQL、Compute、Jobs、Pipelines、Serving、Vector Search、Apps、Lakebase、Dashboards、Genie、Secrets、IAM、Connections、Experiments 和 Delta Sharing
- 无需自定义身份验证:完全由 SDK 处理身份验证(PAT、OAuth、Azure AD、服务主体均可自动处理)
- 选择性加载:通过环境变量包含或排除工具模块
- MCP 资源:只读工作区上下文(URL、当前用户、身份验证类型)
快速开始
安装
pip install databricks-sdk-mcp
或使用 Docker 运行:
docker run -i -e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=... databricks-mcp
或从源代码安装:
git clone https://github.com/pramodbhatofficial/databricks-mcp-server.git
cd databricks-mcp-server
pip install -e ".[dev]"
身份验证
身份验证由 Databricks SDK 处理。设置以下任一方式:
个人访问令牌(最简单):
export DATABRICKS_HOST=https://your-workspace.databricks.com
export DATABRICKS_TOKEN=dapi...
OAuth(M2M——服务主体):
export DATABRICKS_HOST=https://your-workspace.databricks.com
export DATABRICKS_CLIENT_ID=...
export DATABRICKS_CLIENT_SECRET=...
OAuth(U2M——交互式浏览器登录):
使用短期、自动刷新的 OAuth 令牌以自己的身份进行身份验证。使用
Databricks CLI 登录一次,
令牌会缓存在 ~/.databrickscfg 中一个命名配置文件下:
databricks auth login --host https://your-workspace.databricks.com --profile my-profile
然后将服务指向该配置文件,而不是设置令牌:
export DATABRICKS_CONFIG_PROFILE=my-profile
注意: 如果设置了
DATABRICKS_TOKEN,SDK 会优先使用它,而不是配置文件。 通过配置文件进行身份验证时,请勿设置DATABRICKS_TOKEN/DATABRICKS_HOST。
其他方式:Azure AD、Azure Managed Identity——SDK 会自动检测。
运行
databricks-mcp
这会使用 stdio 传输启动 MCP 服务。
集成
Claude Code(终端)
添加到 ~/.claude/settings.json 或项目的 .claude/settings.json:
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
若要使用 OAuth U2M 而不是令牌,请引用已登录的配置文件(参见
身份验证),并省略 DATABRICKS_HOST/DATABRICKS_TOKEN:
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_CONFIG_PROFILE": "my-profile"
}
}
}
}
然后重启 Claude Code。使用 /mcp 查看已注册的工具并验证配置。
Claude Desktop
添加到 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
重启 Claude Desktop。Databricks 工具将显示在工具选择器中。
Cursor
添加到项目根目录下的 .cursor/mcp.json(全局配置则添加到 ~/.cursor/mcp.json):
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
打开 Cursor Settings > MCP,确认服务已连接。
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
VS Code(Copilot)
添加到项目中的 .vscode/mcp.json:
{
"servers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
Zed
添加到 Zed 的设置文件(~/.config/zed/settings.json):
{
"context_servers": {
"databricks": {
"command": {
"path": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
}
任意 MCP 客户端(通用 stdio)
该服务使用 stdio 传输。可从任何兼容 MCP 的客户端连接:
# Set auth env vars
export DATABRICKS_HOST=https://your-workspace.databricks.com
export DATABRICKS_TOKEN=dapi...
# Start the server (communicates via stdin/stdout)
databricks-mcp
提示:仅加载所需内容
如果 MCP 客户端难以处理大量工具,可使用选择性加载来减少工具数量:
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi...",
"DATABRICKS_MCP_TOOLS_INCLUDE": "unity_catalog,sql,compute,jobs"
}
}
}
}
工具模块
| 模块 | 工具数 | 描述 |
|---|---|---|
unity_catalog | 23 | 目录、架构、表、卷、函数、已注册模型 |
sql | 14 | 仓库、SQL 执行、查询、警报、历史记录 |
workspace | 10 | 笔记本、文件、存储库 |
compute | 18 | 集群、实例池、策略、节点类型、Spark 版本 |
jobs | 13 | 作业、运行、任务、修复、全部取消 |
pipelines | 8 | DLT / Lakeflow 管道 |
serving | 10 | 服务端点、模型版本、OpenAPI |
vector_search | 10 | 向量搜索端点、索引、同步 |
apps | 10 | Databricks Apps 生命周期 |
database | 10 | Lakebase PostgreSQL 实例 |
dashboards | 9 | Lakeview AI/BI 仪表板、已发布视图 |
genie | 5 | Genie AI/BI 对话 |
secrets | 8 | 机密范围和机密 |
iam | 16 | 用户、组、服务主体、权限、当前用户 |
connections | 5 | 外部连接 |
experiments | 14 | MLflow 实验、运行、制品、指标、参数 |
sharing | 11 | Delta Sharing 共享、接收方、提供方 |
files | 12 | DBFS 和 UC Volumes 文件操作 |
grants | 3 | Unity Catalog 权限授予(GRANT/REVOKE) |
storage | 10 | 存储凭据和外部位置 |
metastores | 8 | Unity Catalog 元存储管理 |
online_tables | 3 | 用于低延迟服务的在线表 |
global_init_scripts | 5 | 工作区范围的初始化脚本 |
tokens | 5 | 个人访问令牌管理 |
git_credentials | 5 | 存储库的 Git 凭据管理 |
quality_monitors | 8 | 数据质量监控和刷新 |
command_execution | 4 | 在集群上交互式执行命令 |
workflows | 5 | 复合多步骤操作(工作区状态、架构设置、查询预览) |
选择性加载工具
共有 263 个工具,建议只加载所需模块。这有助于提升 Agent 的性能和工具选择准确性。
基于角色的预设(推荐)
选择符合你角色的预设:
| 预设 | 模块 | 工具数 | 配置 |
|---|---|---|---|
| 数据工程师 | unity_catalog, sql, compute, jobs, pipelines, files, quality_monitors | ~100 | DATABRICKS_MCP_TOOLS_INCLUDE=unity_catalog,sql,compute,jobs,pipelines,files,quality_monitors |
| 机器学习工程师 | serving, vector_search, experiments, compute, unity_catalog, online_tables, files | ~98 | DATABRICKS_MCP_TOOLS_INCLUDE=serving,vector_search,experiments,compute,unity_catalog,online_tables,files |
| 平台管理员 | iam, secrets, tokens, metastores, compute, global_init_scripts, grants, storage | ~85 | DATABRICKS_MCP_TOOLS_INCLUDE=iam,secrets,tokens,metastores,compute,global_init_scripts,grants,storage |
| 应用开发者 | apps, database, sql, files, serving, secrets | ~64 | DATABRICKS_MCP_TOOLS_INCLUDE=apps,database,sql,files,serving,secrets |
| 数据分析师 | sql, unity_catalog, dashboards, genie, workspace | ~61 | DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog,dashboards,genie,workspace |
| 最小配置 | sql, unity_catalog | ~37 | DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog |
在 Claude Code 中使用预设的示例:
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi...",
"DATABRICKS_MCP_TOOLS_INCLUDE": "unity_catalog,sql,compute,jobs,pipelines,files,quality_monitors"
}
}
}
}
自定义筛选
# Only include specific modules
export DATABRICKS_MCP_TOOLS_INCLUDE=unity_catalog,sql,serving
# Exclude specific modules (cannot combine with INCLUDE)
export DATABRICKS_MCP_TOOLS_EXCLUDE=iam,sharing,experiments
如果设置了 INCLUDE,则只加载这些模块。如果设置了 EXCLUDE,则加载除这些模块之外的所有模块。如果两者都设置,则 INCLUDE 优先。
工具发现(适用于 AI Agent)
该服务内置工具发现功能,可帮助 AI Agent 找到合适的工具:
MCP 资源
| URI | 描述 |
|---|---|
databricks://workspace/info | 工作区 URL、当前用户、身份验证类型 |
databricks://tools/guide | 工具目录,包含模块描述、用例和角色预设 |
Agent 可以在连接时读取 databricks://tools/guide,了解可用内容。
发现工具
databricks_tool_guide 工具可帮助 Agent 在对话过程中找到合适的工具:
# Find tools for a specific task
databricks_tool_guide(task="run a SQL query")
databricks_tool_guide(task="deploy an ML model")
databricks_tool_guide(task="create a user")
# Get role-based recommendations
databricks_tool_guide(role="data_engineer")
databricks_tool_guide(role="ml_engineer")
此工具会返回匹配的模块及其描述和使用提示,让 Agent 确切知道要调用哪些 databricks_* 工具。
MCP 提示词(引导式工作流)
此服务包含 8 个提示词模板,引导 AI Agent 完成多步骤的 Databricks 工作流:
| 提示词 | 描述 |
|---|---|
explore_data_catalog | 浏览 Unity Catalog 结构(目录 → 架构 → 表) |
query_data | 查找数据仓库、执行 SQL 并格式化结果 |
debug_failing_job | 调查失败的作业:状态、日志、错误分析 |
setup_ml_experiment | 创建 MLflow 实验并配置跟踪 |
deploy_model | 将模型部署到服务端点 |
setup_data_pipeline | 创建 DLT 管道并配置计划 |
workspace_health_check | 审查集群、数据仓库、作业和端点 |
manage_permissions | 审查并更新工作区对象的权限 |
支持提示词的 MCP 客户端(例如 Claude Desktop 的提示词选择器)会自动显示这些提示词。
Docker
在容器中运行 MCP 服务:
# Build
docker build -t databricks-mcp .
# Run with stdio
docker run -i \
-e DATABRICKS_HOST=https://your-workspace.databricks.com \
-e DATABRICKS_TOKEN=dapi... \
databricks-mcp
# Run with SSE transport
docker run -p 8080:8080 \
-e DATABRICKS_HOST=https://your-workspace.databricks.com \
-e DATABRICKS_TOKEN=dapi... \
databricks-mcp --transport sse --port 8080
# Run with selective modules
docker run -i \
-e DATABRICKS_HOST=https://your-workspace.databricks.com \
-e DATABRICKS_TOKEN=dapi... \
-e DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog \
databricks-mcp
SSE 传输(远程服务)
此服务支持通过 SSE 传输进行远程连接:
# Start as SSE server
databricks-mcp --transport sse --port 8080
# Custom host/port
databricks-mcp --transport sse --host 127.0.0.1 --port 3000
从任何支持 SSE 的 MCP 客户端进行连接:
{
"mcpServers": {
"databricks": {
"url": "http://localhost:8080/sse"
}
}
}
开发
# Install with dev dependencies
pip install -e ".[dev]"
# Lint
ruff check databricks_mcp/
# Test
pytest tests/ -v
作者
Pramod Bhat
许可证
Apache 2.0 —— 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。