项目简介
dbt MCP 服务器 (dbt Model Context Protocol Server) 是一个 MCP 协议的服务器实现,旨在桥接大型语言模型 (LLM) 和 dbt (data build tool) 项目。它通过标准化的 MCP 接口,向 LLM 客户端暴露 dbt 的核心功能,使得 LLM 能够理解和操作 dbt 项目中的数据模型、指标以及执行 dbt 命令。
主要功能点
- dbt CLI 工具: 允许 LLM 客户端调用本地安装的 dbt Core 或 dbt Cloud CLI 命令,例如 'build', 'compile', 'run', 'test' 等,实现 dbt 项目的自动化构建和管理。
- dbt Semantic Layer 集成: 集成 dbt Cloud Semantic Layer 网关,使 LLM 能够查询和探索 dbt 项目中定义的指标 (metrics)、维度 (dimensions) 和实体 (entities),并直接进行数据查询。
- dbt Discovery API: 提供 dbt Discovery API 的访问能力,允许 LLM 获取 dbt 模型 (models) 的元数据信息,例如模型名称、代码、描述、列信息以及模型之间的依赖关系。
安装步骤
-
克隆仓库:
git clone https://github.com/dbt-labs/dbt-mcp.git cd dbt-mcp -
安装 uv: 请参考 uv 安装指南 进行安装。uv 用于更快速的 Python 包管理。
-
安装 Task: 请参考 Task 安装指南 进行安装。Taskfile 用于简化构建和运行任务。
-
运行 'task install': 在仓库根目录下执行 'task install' 命令,这将使用 uv 创建虚拟环境并安装项目依赖。
-
配置环境变量: 复制 '.env.example' 文件为 '.env',并根据你的 dbt Cloud 或 dbt Core 环境修改 '.env' 文件中的变量。
cp .env.example .env需要配置的关键环境变量包括:
- 'DISABLE_DBT_CLI': 设置为 'true' 以禁用 dbt CLI 工具,默认为 'false' (启用)。
- 'DISABLE_SEMANTIC_LAYER': 设置为 'true' 以禁用 dbt Semantic Layer 工具,默认为 'false' (启用)。
- 'DISABLE_DISCOVERY': 设置为 'true' 以禁用 dbt Discovery API 工具,默认为 'false' (启用)。
- 'DBT_HOST': 你的 dbt Cloud 实例主机名。例如 'example.dbt.com'。
- 'MULTICELL_ACCOUNT_PREFIX': 如果使用 dbt Cloud Multi-cell 部署,请设置你的账户前缀。否则留空。
- 'DBT_ENV_ID': 你的 dbt Cloud 环境 ID。
- 'DBT_TOKEN': 你的 dbt Cloud Personal Access Token 或 Service Token。使用 Semantic Layer 需要 Service Token。
- 'DBT_PROJECT_DIR': 你的 dbt 项目目录的路径。
- 'DBT_PATH': 你的 dbt Core 或 dbt Cloud CLI 可执行文件的路径。可以使用 'which dbt' 命令查找。
- 'DBT_EXECUTABLE_TYPE': 如果 'DBT_PATH' 指向 dbt Core,设置为 'core'。否则默认为 'cloud' (dbt Cloud CLI)。
服务器配置
为了让 MCP 客户端连接到 dbt MCP 服务器,需要在客户端的配置文件中添加服务器配置。以下是一个 JSON 格式的配置示例,你需要根据你的实际安装路径进行修改:
{ "mcpServers": { "dbt": { "command": "<path-to-this-directory>/.venv/bin/mcp", "args": [ "run", "<path-to-this-directory>/dbt_mcp/main.py" ] } } }
- 'server name': 'dbt' (可以自定义,用于在客户端中标识该服务器)
- 'command': "'<path-to-this-directory>/.venv/bin/mcp'" (指向 dbt MCP 服务器的启动脚本,通常是虚拟环境中的 'mcp' 命令)
- 'args':
- "'run'": 子命令,表示运行服务器。
- "'<path-to-this-directory>/dbt_mcp/main.py'": dbt MCP 服务器主程序的路径。
请将 '<path-to-this-directory>' 替换为你的 'dbt-mcp' 仓库的实际本地路径。
基本使用方法
配置完成后,你可以根据你使用的 MCP 客户端 (例如 Claude Desktop, Cursor, VS Code) 的文档,将上述服务器配置添加到客户端中。客户端通常会提供图形界面或配置文件来管理 MCP 服务器连接。
连接成功后,你就可以在 MCP 客户端中使用 dbt MCP 服务器提供的工具,例如:
- 使用自然语言查询 dbt Semantic Layer 中的指标和维度。
- 调用 dbt CLI 命令来编译或运行 dbt 项目。
- 探索 dbt 模型的信息和依赖关系。
具体工具的使用方式取决于 LLM 客户端的功能和集成方式。请参考你使用的 LLM 客户端的文档来了解如何利用 dbt MCP 服务器提供的功能。
信息
分类
开发者工具