Everything Agent Databricks DevTools MCP 服务器
使用说明(简明易懂,面向开发者和集成方):
-
项目简介
- 该仓库中包含一个基于 MCP 的后端服务器实现,专门为 Databricks 数据访问和 SQL 工具提供上下文服务。服务器通过 JSON-RPC 与客户端通信,能够读取资源、注册和执行工具,以及渲染和返回查询结果。
-
主要功能点
- 提供以下 MCP 工具(Tools):
- list_catalogs(列出 Unity Catalog 的 Catalog)
- list_schemas(列出指定 Catalog 的 Schemas)
- list_tables(列出 Catalog.Schemas 下的 Tables)
- describe_table(描述全限定表的列信息)
- table_metadata(获取 FULLY QUALIFIED TABLE 的 DESCRIBE DETAIL 元数据)
- preview_data(对表进行 LIMITED 行数据预览)
- 内部对 SQL 的执行通过 Databricks SQL API 封装实现,包括:
- 自动解析返回的列信息、行数据和总行数
- 错误处理(包含 SQL 失败消息和 API 调用错误)
- 支持通过标准的 MCP Server 架构接入,使用 stdio 传输(StdioServerTransport)进行通信,便于在 Claude 等 LM 客户端环境中部署和测试。
- 数据处理逻辑包括对表标识符的转义、完全限定表名的校验,以及对结果进行结构化封装后编码传递。
- 提供以下 MCP 工具(Tools):
-
安装步骤
- 准备环境
- 具备 Node.js/TypeScript 的开发执行环境
- 构建与运行
- 安装依赖并构建 TypeScript 代码
- 启动 MCP 服务(以 stdio 传输为例)并让客户端通过相应的配置接入
- 测试与调试
- 使用仓库自带的单元测试对 MCP 服务的行为进行验证
- 如需集成到 Claude 等客户端,确保客户端可通过 JSON-RPC 调用上述 Tool
- 准备环境
-
服务器配置(供 MCP 客户端使用的配置示例,JSON 格式,请按实际环境调整) { "server": { "name": "databricks-devtools", "command": "node", "args": ["dist/plugins/databricks-devtools/src/mcp/server.js"], "transport": "stdio" }, "description": "Databricks DevTools MCP 服务器(通过标准输入输出进行通信)" } 说明:
- server.name:服务器在客户端中的身份标识,应与插件/服务的名称保持一致
- server.command 与 server.args:启动服务器的命令和参数,通常在打包后执行生成的 JS 文件
- transport:传输通道,这里使用 stdio,客户端需要通过该通道发送 MCP 请求
- 上述路径与文件名仅供示例,实际部署时请根据构建产物输出路径进行调整
-
基本使用方法
- 客户端启动并注册服务后,调用 MCP 服务提供的工具列表以了解可用工具
- 通过 JSON-RPC 请求发送对 list_catalogs、list_schemas、list_tables、describe_table、table_metadata、preview_data 等工具的调用,服务端将返回编码后的结果或文本内容
- 在出现 SQL 错误、权限不足或参数校验失败时,服务器将返回明确的错误信息以便排错
- 如需要扩展新工具,遵循现有工具实现模式:实现对应的数据库交互逻辑、封装成 Tool、通过 Server 注册暴露
-
备注
- MCP 服务器为客户端提供上下文与系统能力,当前实现中通过 Databricks SQL API 封装实现数据查询与元数据获取,适用于 LLM 进行数据驱动的推理与决策。