Databricks MCP服务器

Databricks MCP服务器是一个用于与Databricks交互的模型上下文协议服务器,支持执行SQL查询、管理仪表板、保存查询、查询历史和作业。适用于数据分析和自动化任务。

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

使用说明

_CHMCP服务器

一个用于与ViewModel交互的模型上下文协议(MCP)服务器——执行SQL查询、管理仪表板、保存的查询、查询历史和作业。

在代理模式下使用时,它可以迭代请求以执行复杂任务。与Unity Catalog元数据结合使用会更好。

特性

SQL和目录

  • execute_sql_query --执行SQL查询并返回格式化结果
  • list_schemas --列出目录中的架构
  • list_tables --列出架构中的表
  • describe_table --描述表的列和类型
  • list_views --列出目录/架构中的视图
  • get_view_definition --获取视图的DDL

仪表板(AI/BI湖景)

  • list_dashboards --列出所有带分页的仪表板
  • get_dashboard --获取仪表板详细信息和序列化内容
  • create_dashboard --创建新仪表板
  • update_dashboard --更新名称、内容或仓库
  • publish_dashboard --为观众发布草稿
  • unpublish_dashboard --删除已发布版本(保留草稿)
  • trash_dashboard --移至垃圾箱(可回收)

保存的查询

  • list_saved_queries --列出已保存的SQL查询
  • get_saved_query --获取查询详细信息和SQL文本
  • create_saved_query --创建新的已保存查询
  • update_saved_query --更新名称、SQL文本或描述
  • delete_saved_query --移至垃圾箱

查询历史

  • get_query_history --使用筛选器(仓库、状态、用户)查看最近的查询执行情况

工作

  • list_jobs --列出工作区中的所有作业
  • list_job_runs --列表运行(按作业筛选,活动/已完成)
  • get_job_run --获取详细的跑步信息
  • run_job --立即触发作业
  • cancel_job_run --取消活动跑步

先决条件

  • Python 3.10+
  • Rancher个人访问令牌
  • 紫外线 (推荐)或pip

Mews的默认设置

服务器附带默认的 Mews Rancher开发环境 和那个 即席SQL仓库 用于大多数日常工作:

变量 默认值 是否需要覆盖?
DATABRICKS_HOST https://adb-5769108933149883.3.azuredatabricks.net 否(除非使用其他工作区)
DATABRICKS_SQL_WAREHOUSE_ID 3fad3bbb3022870c 否(除非使用其他仓库)
DATABRICKS_TOKEN (无) 是的,您必须提供自己的令牌

要获取您的令牌: Databricks UI>用户设置>开发人员>访问令牌


安装

大多数Mews用户只需设置 DATABRICKS_TOKEN。主机和仓库ID已内置。

克劳德代码

选项1:CLI(推荐)

claude mcp add \
  --transport stdio \
  --env DATABRICKS_TOKEN=your-token \
  databricks -- uv run --directory /path/to/mcp-databricks-server python main.py

选项2:JSON配置

claude mcp add-json databricks '{
  "type": "stdio",
  "command": "uv",
  "args": ["run", "--directory", "/path/to/mcp-databricks-server", "python", "main.py"],
  "env": {
    "DATABRICKS_TOKEN": "your-token"
  }
}'

选项3:直接编辑设置

添加 ~/.claude/settings.json 在...之下 mcpServers:

{
  "mcpServers": {
    "databricks": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-databricks-server", "python", "main.py"],
      "env": {
        "DATABRICKS_TOKEN": "your-token"
      }
    }
  }
}

验证 /mcp 在Claude Code内部检查服务器是否已连接。

克劳德桌面

编辑您的配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

(通过Claude菜单>设置>开发人员>编辑配置访问)

{
  "mcpServers": {
    "databricks": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-databricks-server", "python", "main.py"],
      "env": {
        "DATABRICKS_TOKEN": "your-token"
      }
    }
  }
}

保存后重新启动Claude Desktop。

光标

一键安装:

手动设置:

添加 .cursor/mcp.json (项目层面)或 ~/.cursor/mcp.json (全球):

{
  "mcpServers": {
    "databricks": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-databricks-server", "python", "main.py"],
      "env": {
        "DATABRICKS_TOKEN": "your-token"
      }
    }
  }
}

转到“设置”>“工具和MCP”以验证服务器负载。

没有uv(普通Python)

将上述任何配置中的命令/args替换为:

{
  "command": "python",
  "args": ["/path/to/mcp-databricks-server/main.py"]
}

确保先安装依赖项:

cd /path/to/mcp-databricks-server
pip install -r requirements.txt

使用不同的工作区或仓库

如果你需要覆盖默认值(例如连接到生产工作区或其他仓库),请将这些环境变量添加到你的配置中:

{
  "env": {
    "DATABRICKS_TOKEN": "your-token",
    "DATABRICKS_HOST": "https://your-other-instance.azuredatabricks.net",
    "DATABRICKS_SQL_WAREHOUSE_ID": "your-other-warehouse-id"
  }
}

环境设置(替代:.env文件)

您可以创建一个 .env 服务器目录中的文件:

DATABRICKS_TOKEN=your-token

或者覆盖所有默认值:

DATABRICKS_HOST=https://your-instance.azuredatabricks.net
DATABRICKS_TOKEN=your-token
DATABRICKS_SQL_WAREHOUSE_ID=your-warehouse-id

服务器加载 .env 自动通过 python-dotenv.


示例用法

# SQL
execute_sql_query("SELECT * FROM my_catalog.my_schema.my_table LIMIT 10")
list_schemas("my_catalog")
describe_table("my_catalog.my_schema.my_table")

# Dashboards
list_dashboards()
get_dashboard("04aab30f-99ea-4444-90c1-0c85852f216c")
create_dashboard("Monthly Report", parent_path="/Users/me@company.com")

# Saved Queries
list_saved_queries()
create_saved_query("Top Customers", "SELECT * FROM customers ORDER BY revenue DESC LIMIT 100")

# Query History
get_query_history(max_results=10, status="FAILED")

# Jobs
list_jobs()
run_job(11223344)
list_job_runs(job_id=11223344, completed_only=True)

故障排除

服务器未连接:运行 python main.py 直接检查导入错误。确保安装了所有依赖项。

身份验证错误:验证您的令牌是否有效,以及您的SQL仓库是否正在运行。

缺少依赖项: pip install databricks-sdk httpx python-dotenv "mcp[cli]"

长时间运行的查询:服务器轮询最多10分钟(可在中配置 dbapi.py).


权限

  • SQL仓库:令牌用户需要仓库访问权限(SQL仓库>权限)
  • 数据访问:令牌用户需要对查询的目录/模式/表进行SELECT
  • 仪表盘:可以管理创建/更新/发布操作的权限
  • 工作:运行/取消操作的适当作业权限

为了安全起见,请使用具有最低必要权限的专用令牌,并定期轮换。


依赖项