mcpField
D
Databricks MCP Server

Databricks MCP Server

本地服务
github.com/pramodbhatofficial数据库05 周前更新

关于 Databricks MCP Server

Databricks MCP Server 通过官方 Python SDK 将 MCP 客户端连接到 Databricks 服务。它覆盖数据、计算、机器学习、管理和引导式工作流,并支持按模块筛选工具。

主要功能

  1. 01覆盖 28 个服务领域的工具
  2. 028 个引导式提示词模板
  3. 03按需加载工具模块
  4. 04由 SDK 管理身份验证
  5. 05工作区上下文资源
  6. 06支持 stdio 和 SSE 传输

适用场景

  1. 01查询数据并浏览 Unity Catalog
  2. 02管理计算资源、作业和管道
  3. 03部署模型并使用 Vector Search
  4. 04管理工作区用户与权限

MCP 相关

将 Databricks 操作作为 MCP 工具提供,并包含提示词模板和只读工作区资源。客户端可通过 stdio 或 SSE 连接,也可用环境变量筛选工具模块。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"pramodbhatofficial-databricks-sdk": {
"command": "uvx",
"args": [
"databricks-sdk-mcp"
],
"env": {
"DATABRICKS_HOST": "<DATABRICKS_HOST>",
"DATABRICKS_TOKEN": "<DATABRICKS_TOKEN>",
"DATABRICKS_MCP_TOOLS_INCLUDE": "<DATABRICKS_MCP_TOOLS_INCLUDE>"
}
}
}
}
启动命令uvx databricks-sdk-mcp
需要配置的环境变量
DATABRICKS_HOSTYour Databricks workspace URL (e.g. https://adb-123.azuredatabricks.net)
DATABRICKS_TOKEN密钥Databricks personal access token or OAuth token
DATABRICKS_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypidatabricks-sdk-mcp0.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Databricks MCP Server

PyPI CI Python 3.10+ License: Apache 2.0

这是一个面向 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_catalog23目录、架构、表、卷、函数、已注册模型
sql14仓库、SQL 执行、查询、警报、历史记录
workspace10笔记本、文件、存储库
compute18集群、实例池、策略、节点类型、Spark 版本
jobs13作业、运行、任务、修复、全部取消
pipelines8DLT / Lakeflow 管道
serving10服务端点、模型版本、OpenAPI
vector_search10向量搜索端点、索引、同步
apps10Databricks Apps 生命周期
database10Lakebase PostgreSQL 实例
dashboards9Lakeview AI/BI 仪表板、已发布视图
genie5Genie AI/BI 对话
secrets8机密范围和机密
iam16用户、组、服务主体、权限、当前用户
connections5外部连接
experiments14MLflow 实验、运行、制品、指标、参数
sharing11Delta Sharing 共享、接收方、提供方
files12DBFS 和 UC Volumes 文件操作
grants3Unity Catalog 权限授予(GRANT/REVOKE)
storage10存储凭据和外部位置
metastores8Unity Catalog 元存储管理
online_tables3用于低延迟服务的在线表
global_init_scripts5工作区范围的初始化脚本
tokens5个人访问令牌管理
git_credentials5存储库的 Git 凭据管理
quality_monitors8数据质量监控和刷新
command_execution4在集群上交互式执行命令
workflows5复合多步骤操作(工作区状态、架构设置、查询预览)

选择性加载工具

共有 263 个工具,建议只加载所需模块。这有助于提升 Agent 的性能和工具选择准确性。

基于角色的预设(推荐)

选择符合你角色的预设:

预设模块工具数配置
数据工程师unity_catalog, sql, compute, jobs, pipelines, files, quality_monitors~100DATABRICKS_MCP_TOOLS_INCLUDE=unity_catalog,sql,compute,jobs,pipelines,files,quality_monitors
机器学习工程师serving, vector_search, experiments, compute, unity_catalog, online_tables, files~98DATABRICKS_MCP_TOOLS_INCLUDE=serving,vector_search,experiments,compute,unity_catalog,online_tables,files
平台管理员iam, secrets, tokens, metastores, compute, global_init_scripts, grants, storage~85DATABRICKS_MCP_TOOLS_INCLUDE=iam,secrets,tokens,metastores,compute,global_init_scripts,grants,storage
应用开发者apps, database, sql, files, serving, secrets~64DATABRICKS_MCP_TOOLS_INCLUDE=apps,database,sql,files,serving,secrets
数据分析师sql, unity_catalog, dashboards, genie, workspace~61DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog,dashboards,genie,workspace
最小配置sql, unity_catalog~37DATABRICKS_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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。