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

dbt-cli-mcp

一个基于dbt CLI的模型上下文协议(MCP)服务器,为AI编码代理提供标准化接口来操作dbt项目,支持所有主要dbt命令执行。

article

README

🚀 DBT CLI MCP 服务器

DBT CLI MCP 服务器是一款基于模型上下文协议(Model Context Protocol, MCP)的工具,它能够增强 dbt (Data Build Tool) 的功能。dbt 是一款流行的命令行工具,主要用于数据构建和测试。

🚀 快速开始

DBT CLI MCP 服务器可增强 dbt 的功能,支持多种 dbt 操作,还能对配置文件进行管理。以下是使用前的安装步骤和使用示例。

✨ 主要特性

  • 支持的主要 dbt 操作:涵盖运行 (run)、测试 (test) 和编译 (compile) 等操作。
  • 配置文件管理:能够处理 dbt_project.ymlprofiles.yml 文件,确保项目配置准确无误。
  • 环境变量设置:自动配置 DBT_PROFILES_DIR 环境变量,指定 profiles 文件的位置。

📦 安装指南

依赖工具

  • Git:用于克隆代码仓库和处理子模块。
  • Python 3.8 或更高版本:确保兼容性。
  • pip:用于安装 Python 包。

克隆仓库

git clone https://github.com/your-repository.git
cd your-repository

安装依赖

pip install -r requirements.txt

💻 使用示例

基础用法

命令行界面 (CLI)

  • 运行 dbt 项目
python src/dbt_mcp_server/cli.py run --project-dir /path/to/project
  • 测试 dbt 项目
python src/dbt_mcp_server/cli.py test --project-dir /path/to/project

参数选项

  • --project-dir:指定 dbt 项目的根目录,必须是绝对路径。
  • --profile:指定要使用的 dbt 配置文件中的 profile 名称。

环境变量

export DBT_PROFILES_DIR="/path/to/dbt_project"

高级用法

与 MCP 客户端集成

profiles.yml 中定义配置:

jaffle_shop:
  target: dev
  outputs:
    dev:
      type: duckdb
      path: 'jaffle_shop.duckdb'
      threads: 24

📚 详细文档

注意事项

⚠️ 重要提示

  1. project-dir 必须是包含 dbt_project.ymlprofiles.yml 的绝对路径。
  2. 要确保 dbt_project.yml 中指定的 profile 名称与 profiles.yml 中一致。若出现 "找不到配置文件" 错误,请检查路径是否正确。

开发信息

集成测试

  • 运行所有集成测试:
python integration_tests/run_all.py
  • 运行特定测试:
python integration_tests/test_dbt_run.py

子模块管理

  • 更新子模块仓库:
git submodule update --remote dbt_integration_tests/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. 补齐环境变量后重启客户端