返回 MCP 目录
public公开dns本地运行

dbt CLI

DBT CLI MCP服务器是一个通过标准化MCP工具与dbt项目交互的AI编码代理服务

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

高级用法

环境变量配置

  1. 配置 dbt_project.yml 文件,指定项目信息和使用的 profile:
name: my_project
version: 1.0
config-version: 2
profiles:
  - my_profile
  1. 配置 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 许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端