DBT CLI MCP Server

DBT CLI MCP Server

site icon
2025.04.17 8
Python数据转换工具数据库管理开发效率数据库
DBT CLI MCP Server 是一个基于 Model Context Protocol (MCP) 的服务,它封装了 dbt CLI 工具,使 AI 编码代理能够通过标准化的 MCP 工具与 dbt 项目进行交互。该服务支持所有主要的 dbt 操作(如运行、测试、编译等),并提供了命令行接口和灵活的环境变量管理功能。
View on GitHub

Overview

基本能力

产品定位

DBT CLI MCP Server 是一个中间件服务,旨在通过标准化的 MCP 协议为 AI 编码代理提供与 dbt 项目交互的能力。

核心功能

  • 通过 MCP 工具执行 dbt 命令
  • 支持所有主要的 dbt 操作(run, test, compile 等)
  • 提供命令行接口直接交互
  • dbt 项目的环境变量管理
  • 可配置的 dbt 可执行路径
  • 灵活的 profiles.yml 位置配置

适用场景

  • AI 编码代理与 dbt 项目的交互
  • 自动化 dbt 项目管理和操作
  • 集成 dbt 功能到其他工具或平台

工具列表

  • dbt_run: 运行 dbt 模型
  • dbt_test: 运行 dbt 测试
  • dbt_ls: 列出 dbt 资源
  • dbt_compile: 编译 dbt 模型
  • dbt_debug: 调试 dbt 项目设置
  • dbt_deps: 安装 dbt 包依赖
  • dbt_seed: 加载 CSV 文件作为种子数据
  • dbt_show: 预览模型结果

常见问题解答

  1. 如何解决 'Could not find profile named 'X'' 错误?
  2. 确保 profiles.yml 文件存在于项目目录中
  3. 确保 profiles.yml 文件包含 dbt_project.yml 中引用的配置文件

使用教程

使用依赖

  • Python 3.10 或更高版本
  • uv 工具用于 Python 环境管理
  • 已安装 dbt CLI

安装教程

# 克隆仓库(包含子模块)
git clone --recurse-submodules https://github.com/yourusername/dbt-cli-mcp.git
cd dbt-cli-mcp

# 如果已经克隆但没有子模块,初始化子模块
# git submodule update --init

# 创建并激活虚拟环境
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# 安装依赖
uv pip install -e .

# 开发环境安装开发依赖
uv pip install -e ".[dev]"

调试方式

# 运行 dbt 模型
dbt-mcp run --models customers --project-dir /path/to/project

# 运行 dbt 测试
dbt-mcp test --project-dir /path/to/project

# 列出 dbt 资源
dbt-mcp ls --resource-type model --output-format json

# 获取帮助
dbt-mcp --help
dbt-mcp run --help

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。