dbt MCP Server

dbt MCP Server

dbt MCP Server 是一个开源服务器实现,允许 AI 应用程序和 LLM 代理通过标准的模型上下文协议以编程方式和安全地与 dbt 项目进行交互,从而实现从支持的客户端无缝、基于工具的访问 dbt 的 CLI、语义层和发现 API。

Author: dbt-labs


查看协议

什么是 dbt MCP Server?

dbt MCP Server 是 dbt 和基于 AI 的用户界面之间的桥梁,暴露 dbt 的核心功能、元数据和分析语义作为标准化工具,可以通过 MCP 被 LLM 和应用程序调用。这使用户能够通过自然语言接口和 LLM 驱动的代理自动化、查询和管理他们的 dbt 工作流和数据指标,具备精细的访问控制和一致的基于协议的集成。

如何配置 dbt MCP Server

  1. 通过提供的脚本安装服务器:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/dbt-labs/dbt-mcp/refs/heads/main/install.sh)"
    
    这将在您的 home 目录下的 ~/.dbt-mcp/ 安装或更新 dbt MCP Server。
  2. 设置环境变量 来配置所需的设置,如 DBT_HOSTDBT_TOKEN 和特定项目路径(DBT_PROJECT_DIR 等)。您可以通过 DISABLE_DBT_CLI=false 等标志自定义启用哪些工具组(CLI、语义层、发现 API),或者根据需要配置语义/远程功能。
  3. 配置 MCP 客户端(例如 Claude Desktop、Cursor、VS Code),通过指定服务器的命令、参数和环境配置。将服务器详细信息添加到相应的 MCP 配置文件(claude_desktop_config.jsonmcp.jsonsettings.json)中,更新与您操作系统相对应的可执行路径。

如何使用 dbt MCP Server

  • 将您的 MCP 客户端(如 Claude Desktop、Cursor 或 VS Code)连接到 dbt MCP Server,通过在客户端设置中添加其配置。
  • 使用正确的参数启动 MCP 服务器,使用已安装的命令。服务器现在向您的连接客户端暴露 dbt 工具。
  • 从客户端调用 dbt 功能,可以使用自然语言请求或通过 UI 命令;客户端将把这些请求转换为 MCP 工具调用,然后服务器将其执行,以应用于您的 dbt 项目。
  • 从客户端的 MCP 界面或命令行管理、监控或停止服务器
  • 对于基于 CLI 的用法,请确保设置正确的环境和依赖,且始终检查当前活动的工具组。

关键特性

  • 无缝、基于协议的直接访问 dbt 的核心、语义和发现 API
  • 安全执行 dbt CLI 命令、语义度量检索和项目元数据查询
  • 细粒度配置和启用工具组(CLI、语义层、发现)
  • 与现代 LLM 客户端(Claude Desktop、Cursor、VS Code 等)集成就绪
  • 为 LLM 代理执行只读和状态改变的 dbt 操作降低障碍
  • 简单安装、统一配置和自动更新支持

使用案例

  • 使基于 LLM 的副驾驶在代码编辑器(如 VS Code 或 Cursor)中自动化 dbt 工作流,例如构建或测试模型。
  • 让自然语言代理提取 dbt 项目文档或元数据,以帮助开发者或入职指导。
  • 为 AI 仪表板或聊天机器人提供对语义度量的访问,通过 dbt 的语义层实现会话分析。
  • 将 dbt 操作检查点(构建/测试/运行)集成到由 LLM 驱动的代理协调的自动化管道中。
  • 通过使用 dbt 发现 API 方便地进行临时查询、模型探索或根本原因分析。

常见问题

问:我需要在与我的 dbt 项目相同的机器上部署 dbt MCP Server 吗?
答:服务器可以本地或远程运行,但需要访问相关的项目文件和环境。您可以指定路径和环境变量,以确保它能正确找到您的 dbt 项目。

问:允许 LLM 通过 MCP 访问所有 dbt 工具是否安全?
答:请谨慎使用;一些 dbt 工具(如 buildruntest)可能会改变您的数据仓库或模型。只启用您完全信任客户可以使用的工具,并在适当的时候使用只读模式(例如,发现和语义层)。

问:如果发布了新版本,我该如何更新服务器?
答:只需重新运行安装脚本;它会安全地检测并更新您现有的 dbt-mcp 安装。

问:支持哪些 dbt 版本?
答:dbt MCP Server 兼容 dbt Core 和 dbt Cloud 环境。确保您的 CLI 路径和 dbt 版本与配置中指定的内容相匹配。

问:我可以选择性地启用或禁用某些工具组吗?
答:可以;使用环境变量如 DISABLE_DBT_CLIDISABLE_DISCOVERY 在服务器启动时打开或关闭功能。