dbt

官方

dbt(数据构建工具)的官方MCP服务器,提供与dbt Core/Cloud CLI的集成、项目元数据发现、模型信息以及语义层查询功能。

你可以用 Dbt MCP 做什么?

  • 查询 dbt 指标 — 使用 list_metrics、get_dimensions 或 get_metrics_compiled_sql 询问指标定义、维度或编译后的 SQL。
  • 探索项目血缘关系 — 使用 get_lineage 或 get_related_models 追踪模型依赖关系以及上游/下游关联。
  • 运行 dbt 命令 — 执行 run、test 或 build 以物化模型、验证数据或构建项目。
  • 生成样板代码 — 通过 generate_source、generate_model_yaml 或 generate_staging_model 创建源 YAML、模型 YAML 或暂存 SQL。
  • 监控作业运行 — 使用 get_job_run_details、get_job_run_error 或 list_job_run_artifacts 检查运行状态、错误或产物。
  • 检查节点详情 — 使用 get_node_details 检索任何资源类型的完整元数据,包括模型、源和测试。

文档

dbt MCP 服务器

OpenSSF Best Practices

此 MCP(模型上下文协议)服务器提供了多种工具,用于与 dbt 进行交互。您可以使用此 MCP 服务器,为 AI 代理提供您在 dbt Core、dbt Fusion 和 dbt Platform 中项目的上下文。

请阅读我们的文档 此处 以了解更多信息。这篇 博客文章提供了有关 dbt MCP 服务器可实现功能的更多详细信息。

实验性 MCP 捆绑包

我们随每个版本发布一个实验性的模型上下文协议捆绑包(dbt-mcp.mcpb),以便支持 MCPB 的客户端无需额外设置即可导入此服务器。请从最新版本的资源中下载该捆绑包,并按照 Anthropic 的 mcpb CLI 文档进行安装或检查。

反馈

如果您有评论或问题,请创建 GitHub Issue,或在 #tools-dbt-mcp 频道中加入 社区 Slack。

架构

dbt MCP 服务器的架构允许您的代理连接到各种工具。

architecture diagram of the dbt MCP server

工具

SQL

用于在 dbt Platform 基础设施上执行和生成 SQL 的工具。

  • execute_sql:在 dbt Platform 基础设施上执行 SQL,支持语义层。
  • text_to_sql:使用项目上下文从自然语言生成 SQL。

语义层

要了解有关 dbt 语义层的更多信息,请点击 此处。

  • get_dimension_values:获取维度的不同值;可选择限定特定指标。
  • get_dimensions:获取指定指标的维度。
  • get_entities:获取指定指标的实体。
  • get_metrics_compiled_sql:返回指标的编译后 SQL,而不执行查询。
  • list_metrics:检索所有已定义的指标。
  • list_saved_queries:检索所有已保存的查询。
  • query_metrics:执行指标查询,支持过滤和分组选项。

发现

要了解有关 dbt Discovery API 的更多信息,请点击 此处。

  • get_all_macros:检索宏;可选择按包过滤或仅返回包名称。
  • get_all_models:检索所有模型的名称和描述。
  • get_all_sources:获取所有带有新鲜度状态的源;可选择按源名称过滤。
  • get_exposure_details:(已弃用 — 请使用 get_node_details 代替)
  • get_exposures:获取所有暴露(下游仪表板、应用或分析)。
  • get_lineage:获取有界血缘图,支持类型、深度和方向过滤。
  • get_macro_details:(已弃用 — 请使用 get_node_details 代替)
  • get_mart_models:检索所有 mart 模型。
  • get_model_children:(已弃用 — 请使用 get_lineage 代替)
  • get_model_details:(已弃用 — 请使用 get_node_details 代替)
  • get_model_health:获取健康信号:运行状态、测试结果和上游源新鲜度。
  • get_model_parents:(已弃用 — 请使用 get_lineage 代替)
  • get_model_performance:获取模型的执行历史;可选择包含测试结果。
  • get_node_details:获取任何 dbt 资源类型(模型、源、暴露、测试、种子、快照、宏、语义模型)的完整详细信息。
  • get_related_models:使用语义搜索查找相似模型。
  • get_seed_details:(已弃用 — 请使用 get_node_details 代替)
  • get_semantic_model_details:(已弃用 — 请使用 get_node_details 代替)
  • get_snapshot_details:(已弃用 — 请使用 get_node_details 代替)
  • get_source_details:(已弃用 — 请使用 get_node_details 代替)
  • get_test_details:(已弃用 — 请使用 get_node_details 代替)
  • search:[Alpha] 在 dbt 项目中搜索资源(尚未普遍可用)。

dbt CLI

允许您的客户端通过 MCP 工具使用 dbt 命令可能会修改您的数据模型、源和仓库对象。仅当您信任客户端并了解潜在影响时才继续。

  • build:按 DAG 顺序执行模型、测试、快照和种子。
  • clone:将指定状态的选定节点克隆到目标模式。
  • compile:从模型/测试/分析生成可执行的 SQL;有助于验证 Jinja 逻辑。
  • docs:为 dbt 项目生成文档。
  • get_lineage_dev:从本地 manifest.json 检索血缘,支持类型和深度过滤。
  • get_node_details_dev:从本地 manifest.json 检索节点详细信息(模型、种子、快照、源)。
  • list:按类型列出 dbt 项目中的资源,支持选择器。
  • parse:解析并验证项目文件的语法正确性。
  • run:执行模型以在数据库中物化它们。
  • show:对数据库执行 SQL 并返回结果。
  • test:运行测试以验证数据和模型完整性。

管理 API

要了解有关 dbt 管理 API 的更多信息,请点击 此处。

  • cancel_job_run:取消正在运行的作业。
  • get_job_details:获取作业配置,包括触发器、计划和 dbt 命令。
  • get_job_run_artifacts:从作业运行中下载特定工件;大型工件返回指导消息,提示使用 jq_filter 重试;支持 jq 过滤以进行定向提取。
  • get_job_run_details:获取运行详细信息,包括状态、时间、步骤和工件。
  • get_job_run_error:获取作业运行的错误和/或警告详细信息;可选择包含或仅显示警告。
  • list_job_run_artifacts:列出作业运行中可用的工件。
  • list_jobs:列出 dbt Platform 账户中的作业;可选择按项目或环境过滤。
  • list_jobs_runs:列出作业运行;可选择按作业、状态或排序字段过滤。
  • list_projects:列出 dbt Platform 账户中的所有项目。
  • retry_job_run:重试失败的作业运行。
  • trigger_job_run:触发作业运行;可选择覆盖 git 分支、模式或其他设置。

dbt Codegen

这些工具有助于为 dbt 项目文件自动生成样板代码。

  • generate_model_yaml:生成带有列的模型 YAML;可选择继承上游描述。
  • generate_source:通过检查数据库模式生成源 YAML;可选择包含列。
  • generate_staging_model:从源表生成暂存模型 SQL。

dbt LSP

一组利用 Fusion 引擎进行高级 SQL 编译和列级血缘分析的工具。

  • fusion.compile_sql:通过 dbt Platform 在项目上下文中编译 SQL。
  • fusion.get_column_lineage:通过 dbt Platform 追踪列级血缘。
  • get_column_lineage:在本地追踪列级血缘(需要 dbt-lsp,通过 dbt Labs VSCE 提供)。

产品文档

用于从 docs.getdbt.com 搜索和获取官方 dbt 文档内容的工具。

  • get_product_doc_pages:按路径或 URL 获取一个或多个 docs.getdbt.com 页面的完整 Markdown 内容。
  • search_product_docs:在 docs.getdbt.com 中搜索与查询匹配的页面;返回按相关性排序的标题、URL 和描述。使用 get_product_doc_pages 获取完整内容。

MCP 服务器元数据

这些工具提供有关 MCP 服务器本身的信息。

  • get_mcp_server_branch:返回正在运行的 dbt MCP 服务器的当前 git 分支。
  • get_mcp_server_version:返回 dbt MCP 服务器的当前版本。

示例

通常,您会将 dbt MCP 服务器连接到像 Claude 或 Cursor 这样的代理产品。但是,如果您有兴趣创建自己的代理,请查看 示例目录 以了解如何开始。

依赖项

依赖项被固定到特定版本,不会自动更新。只有与安全相关的依赖项更新会通过自动拉取请求提交。

贡献

阅读 CONTRIBUTING.md 以获取如何参与的说明!