article
README
🚀 DBT CLI MCP 服务器
DBT CLI MCP 服务器是一个封装了 dbt CLI 工具的模型上下文协议(MCP)服务器,它让 AI 编码代理能够借助标准化的 MCP 工具与 dbt 项目进行交互,为项目开发提供了便利。
✨ 主要特性
- 通过 MCP 工具执行 dbt 命令。
- 支持所有主要的 dbt 操作,如运行、测试、编译等。
- 提供命令行接口,方便进行直接交互。
- 可管理 dbt 项目的环境变量。
- 可配置 dbt 可执行文件的路径。
- 支持灵活配置 profiles.yml 文件的位置。
📦 安装指南
先决条件
- 需要 Python 3.10 或更高版本。
- 需使用
uv工具进行 Python 环境管理。 - 要安装 dbt CLI。
设置
# 克隆仓库并初始化子模块
git clone --recurse-submodules https://github.com/your-repository.git
cd your-repository
# 安装依赖项
pip install -r requirements.txt
💻 使用示例
基础用法
运行 dbt 项目
python mcp_server.py run --project-dir /path/to/dbt_project
编译 dbt 项目
python mcp_server.py compile --project-dir /path/to/dbt_project
测试 dbt 模型
python mcp_server.py test --project-dir /path/to/dbt_project
高级用法
环境变量配置
- 配置
dbt_project.yml文件,指定项目信息和使用的 profile:
name: my_project
version: 1.0
config-version: 2
profiles:
- my_profile
- 配置
profiles.yml文件,定义 profile 的具体设置:
my_profile:
target: dev
outputs:
dev:
type: duckdb
path: 'my_project.db'
threads: 4
示例项目结构
project_root/
├── dbt_project.yml
├── profiles.yml
└── mcp_server.py
📚 详细文档
开发
集成测试
项目包含用于验证实际 dbt 项目功能的集成测试:
# 运行所有集成测试
python integration_tests/run_all.py
# 运行特定的集成测试
python integration_tests/test_dbt_run.py
测试项目设置
集成测试使用 jaffle_shop_duckdb 项目,该仓库作为 Git 子模块包含在 dbt_integration_tests 目录中。当您使用 --recurse-submodules 克隆仓库时,会自动初始化。
如果需要更新测试项目到最新版本:
git submodule update --remote dbt_integration_tests/jaffle_shop_duckdb
如果遇到有关 jaffle_shop_duckdb 目录中文件缺失的错误,请初始化子模块:
git submodule update --init
📄 许可证
本项目采用 MIT 许可证。
Scan to join WeChat group