dbt CLI MCP Server

使用说明

项目简介

dbt CLI MCP Server 旨在桥接 dbt (data build tool) 命令行工具和 MCP (Model Context Protocol) 客户端,例如 Claude for Desktop 等。它作为一个 MCP 服务器运行,对外提供一系列工具,允许 AI 智能体通过调用这些工具来执行 dbt 命令,从而实现对 dbt 项目的自动化操作,例如数据模型的编译、运行、测试、资源清单查询等。

主要功能点

  • dbt 命令工具化: 将常用的 dbt CLI 命令(如 'run', 'test', 'ls', 'compile', 'debug', 'deps', 'seed', 'show', 'build')封装成独立的 MCP 工具,方便 AI 智能体调用。
  • 灵活的项目配置: 支持通过命令行参数、环境变量和 '.env' 文件配置 dbt 可执行文件路径、项目目录、profiles 目录等,适应不同的 dbt 项目环境。
  • JSON 输出支持: 部分工具(如 'dbt_ls')支持 JSON 格式输出,方便 AI 智能体解析和处理结构化数据。
  • 集成测试: 包含完善的集成测试,确保服务器功能的稳定性和可靠性。

安装步骤

  1. 环境准备:

    • 确保已安装 Python 3.10 或更高版本
    • 安装 uv 工具 (Python 包和虚拟环境管理器,参考 https://github.com/astral-sh/uv)。
    • 确保已安装 dbt CLI 工具并配置好 dbt 项目环境。
  2. 克隆仓库: 使用以下命令克隆 dbt CLI MCP Server 仓库,并包含子模块:

    git clone --recurse-submodules https://github.com/MammothGrowth/dbt-cli-mcp.git
    cd dbt-cli-mcp
  3. 创建并激活虚拟环境:

    uv venv
    source .venv/bin/activate   # Linux / macOS
    .venv\Scripts\activate  # Windows
  4. 安装依赖:

    uv pip install -e .

服务器配置

要将 dbt CLI MCP Server 添加到 MCP 客户端(例如 Claude for Desktop),您需要配置服务器的启动命令和参数。以下是一个典型的配置示例(JSON 格式):

{
  "mcpServers": {
    "dbt": {
      "command": "uv",
      "args": ["--directory", "/path/to/dbt-cli-mcp", "run", "src/server.py"],
      "env": {
        "DBT_PATH": "/absolute/path/to/dbt",
        "ENV_FILE": ".env"
        // 您还可以选择在此处设置 DBT_PROFILES_DIR 作为服务器级别的默认配置
      }
    }
  }
}
  • 'server name': '"dbt"' (可以自定义,用于在客户端中标识该服务器)
  • 'command': '"uv"' (使用 uv 工具来运行 Python 脚本)
  • 'args': 启动服务器的参数列表
    • '"--directory"': '"/path/to/dbt-cli-mcp"' 请替换为 dbt-cli-mcp 仓库在您本地文件系统中的绝对路径。
    • '"run"': uv 工具的 'run' 命令,用于执行 Python 模块或脚本。
    • '"src/server.py"': 指定要运行的服务器脚本。
  • 'env': 服务器运行时的环境变量
    • '"DBT_PATH"': '"/absolute/path/to/dbt"' 请替换为您 dbt 可执行文件的绝对路径。 如果 dbt 已添加到系统 PATH 环境变量,则可以直接使用 '"dbt"'。
    • '"ENV_FILE"': '".env"' 指定环境变量文件的路径,默认为仓库根目录下的 '.env' 文件。
    • '"DBT_PROFILES_DIR"' (可选): 服务器级别的默认 'profiles.yml' 文件目录。

基本使用方法

配置完成后,您的 MCP 客户端将能够连接到 dbt CLI MCP Server。您可以使用客户端提供的界面或指令来调用服务器提供的工具,例如:

  • 使用 'dbt_run' 工具运行 dbt 模型。
  • 使用 'dbt_test' 工具执行 dbt 测试。
  • 使用 'dbt_ls' 工具查询 dbt 项目中的资源信息。
  • 更多工具及其参数请参考仓库 README 文档中 "Available Tools" 章节。

注意: 使用 dbt 工具时,请确保您的 dbt 项目配置正确,'dbt_project.yml' 和 'profiles.yml' 文件配置正确,并且项目目录结构符合 dbt 的要求。

服务器信息