Databricks MCP Server
使用说明(Markdown 格式)
-
项目简介 这是一套基于 MCP(Model Context Protocol)的服务器实现,专为 Databricks 平台设计。通过注册一组 MCP Tool,服务器向 MCP 客户端(如 Claude 的 MCP 客户端)提供只读的 SQL 查询、元数据浏览、Delta Lake 信息、作业与管线监控、以及集群指标等能力,确保对外提供一致、可扩展的上下文服务。
-
主要功能点
- SQL 与元数据工具:执行只读 SQL 查询(严格防止写操作),查看/catalogs/schemas/tables,获取表结构等元数据。
- Delta Lake 与权限工具:查看表历史、详细信息、权限(SHOW GRANTS)以及 Unity Catalog 的卷信息。
- 作业与管线工具:列出、获取作业与管线状态,以及历史事件。
- 计算与监控工具:列出查询历史、仓库、集群、以及集群指标与事件。
- 支持多种交互场景:通过 MCP 框架注册工具,提供一致的 JSON-RPC 交互模型,便于 LLM 客户端进行查询与调用。
- 安全性设计:服务器为只读服务,限制性操作防护明确(仅允许 SELECT/SHOW/DESCRIBE 等),并通过环境变量获取凭据。
-
安装步骤
- 克隆仓库并进入目录。
- 安装依赖工具(示例中使用 uv 包管理器进行同步安装)。
- 将环境变量模板复制为实际配置文件(如 .env),并填入 Databricks 的连接信息。
- 直接运行服务器:standalone 方式通过命令启动服务器(如 uv run python server.py),也可以通过 Claude 的 MCP 配置连接该服务器。
-
服务器配置(MCP 客户端需要的最小启动信息) 说明:MCP 客户端需要知道如何启动此 MCP 服务器,以及需要的参数。以下为配置要点描述(JSON 格式示例信息,实际需在客户端配置中填写,不在代码中暴露):
- server_name: 数据源服务器的名称,应与服务端标识相匹配。
- command: 启动服务器的命令,例如 uv。
- args: 启动参数,如 ["run","python","server.py"],用于在客户端环境中启动服务端进程。
- env(可选,用于浏览器端或无服务器执行环境的环境变量): 包含 DATABRICKS_SERVER_HOSTNAME、DATABRICKS_HTTP_PATH、DATABRICKS_TOKEN 等变量的占位信息,客户端不需要直接使用,但如果需要本地测试可以通过环境变量注入。具体字段如下:
- DATABRICKS_SERVER_HOSTNAME: 你的 Databricks 工作区主机名(如 your-workspace.cloud.databricks.com)。
- DATABRICKS_HTTP_PATH: Databricks SQL 接入路径,例如 /sql/1.0/warehouses/your-warehouse-id。
- DATABRICKS_TOKEN: 个人访问令牌,用于鉴权。
备注:MCP 客户端本身不需要你在此处暴露具体凭据,服务器端应通过环境变量读取并建立连接。本说明仅给出启动与参数信息的结构,实际使用时请按你的部署环境提供相应信息。
-
基本使用方法
- 启动服务器:在支持的环境中执行启动命令,让 MCP 服务器进程在线。
- 配置客户端:在 Claude 等 MCP 客户端中,将该服务器作为一个 MCP 服务源加入配置(指定 server_name、command、args 等),使客户端能够发送请求、调用工具并获取结果。
- 使用场景:向服务器发起只读 SQL 查询、获取表结构、列出作业、查看 Delta Lake 历史等操作,LLM 客户端即可将结果用于对话或决策支持。