dbt
官方dbt(数据构建工具)的官方MCP服务器,提供与dbt Core/Cloud CLI的集成、项目元数据发现、模型信息以及语义层查询功能。
你可以用 Dbt MCP 做什么?
- 查询指标 — 让助手通过
query_metrics运行带筛选和分组的指标查询,或通过list_metrics列出已定义的指标。 - 探索模型血缘 — 使用
get_lineage请求带类型、深度和方向筛选的有界血缘图。 - 检查模型健康状况 — 使用
get_model_health查询某个模型的运行状态、测试结果和上游源数据新鲜度。 - 运行 dbt 命令 — 让助手针对你的项目执行
build、run、test、compile或show。 - 管理作业运行 — 触发、重试、取消或检查 dbt Platform 作业运行及其产物。
- 生成样板代码 — 使用
generate_model_yaml、generate_source和generate_staging_model创建模型 YAML、源 YAML 或暂存模型 SQL。
文档
dbt MCP Server
此 MCP(Model Context Protocol)服务器提供多种与 dbt 交互的工具。你可以使用此 MCP 服务器为 AI 代理提供 dbt Core、dbt Fusion 和 dbt Platform 中项目的上下文。
阅读我们的文档以了解更多信息。这篇博客文章详细介绍了 dbt MCP 服务器可以实现的功能。
实验性 MCP Bundle
我们在每次发布时都会发布一个实验性的 Model Context Protocol Bundle(dbt-mcp.mcpb),以便支持 MCPB 的客户端无需额外设置即可导入此服务器。请从最新版本的发布资源中下载该 bundle,并按照 Anthropic 的 mcpb CLI 文档进行安装或检查。
反馈
如果你有意见或问题,请创建 GitHub Issue,或在 社区 Slack 的 #tools-dbt-mcp 频道中加入我们。
架构
dbt MCP 服务器架构允许你的代理连接到各种工具。

工具
SQL
用于在 dbt Platform 基础设施上执行和生成 SQL 的工具。
execute_sql:在 dbt Platform 基础设施上执行 SQL,支持 Semantic Layer。text_to_sql:使用项目上下文从自然语言生成 SQL。
Semantic Layer
要了解更多关于 dbt Semantic Layer 的信息,请点击此处。
get_dimension_values:获取维度的不同值;可选择限定到特定指标。get_dimensions:获取指定指标的维度。get_entities:获取指定指标的实体。get_metrics_compiled_sql:返回指标的编译 SQL,而不执行查询。list_metrics:检索所有已定义的指标。list_saved_queries:检索所有已保存的查询。query_metrics:执行带筛选和分组选项的指标查询。
Discovery
要了解更多关于 dbt Discovery API 的信息,请点击此处。
get_all_macros:检索宏;可选择按包筛选或仅返回包名。get_all_models:检索所有模型的名称和描述。get_all_sources:获取所有源及其新鲜度状态;可选择按源名称筛选。get_exposure_details:(已弃用 — 请改用get_node_details)get_exposures:获取所有 exposure(下游仪表板、应用或分析)。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 资源类型(model、source、exposure、test、seed、snapshot、macro、semantic_model)的完整详情。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 项目中搜索资源(尚未普遍可用)。search_public_mesh_models:跨项目查找公共 dbt Mesh 模型并确认生产者身份,以便构建经过验证的跨项目 ref(仅限多项目配置)。
dbt CLI
允许你的客户端通过 MCP 工具使用 dbt 命令可能会修改你的数据模型、源和仓库对象。仅在你信任该客户端并了解潜在影响的情况下继续。
build:按 DAG 顺序执行模型、测试、快照和种子。clone:将指定状态中的选定节点克隆到目标 schema。compile:从模型/测试/分析生成可执行 SQL;可用于验证 Jinja 逻辑。docs:为 dbt 项目生成文档。get_lineage_dev:从本地 manifest.json 检索血缘,支持类型和深度筛选。get_node_details_dev:从本地 manifest.json 检索节点详情(模型、种子、快照、源)。list:按类型列出 dbt 项目中的资源,支持选择器。parse:解析并验证项目文件的语法正确性。run:执行模型以将其物化到数据库中。show:对数据库执行 SQL 并返回结果。test:运行测试以验证数据和模型完整性。
Admin API
要了解更多关于 dbt Administrative 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 分支、schema 或其他设置。
dbt Codegen
这些工具有助于自动化 dbt 项目文件的样板代码生成。
generate_model_yaml:生成包含列的模型 YAML;可选择继承上游描述。generate_source:通过内省数据库 schema 生成源 YAML;可选择包含列。generate_staging_model:从源表生成 staging 模型 SQL。
dbt LSP
一组利用 Fusion 引擎进行高级 SQL 编译和列级血缘分析的工具。
fusion.compile_sql:通过 dbt Platform 在项目上下文中编译 SQL。fusion.get_column_lineage:通过 dbt Platform 追踪列级血缘。get_column_lineage:在本地追踪列级血缘(需要通过 dbt Labs VSCE 使用 dbt-lsp)。
产品文档
用于搜索和获取 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 了解如何参与!
有关选择器声明和上下文映射器契约,请参阅工具输入和解析后的上下文。