项目简介

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) 的元数据信息,例如模型名称、代码、描述、列信息以及模型之间的依赖关系。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/dbt-labs/dbt-mcp.git
    cd dbt-mcp
  2. 安装 uv: 请参考 uv 安装指南 进行安装。uv 用于更快速的 Python 包管理。

  3. 安装 Task: 请参考 Task 安装指南 进行安装。Taskfile 用于简化构建和运行任务。

  4. 运行 'task install': 在仓库根目录下执行 'task install' 命令,这将使用 uv 创建虚拟环境并安装项目依赖。

  5. 配置环境变量: 复制 '.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 服务器提供的功能。

信息

分类

开发者工具