← 返回目录
D

dbt MCP Server

官方
用于交互 dbt 的 MCP 服务器
GitHub 源仓库 ↗
★ 599 Stars 分类 · 开发工具 非常热门 源版本 d16db88e4e2c
65FMRS · C
可靠性
9/20
安全与权限
12/20
维护活跃度
16/20
文档质量
15/20
安装易用性
13/20

dbt MCP 服务器是一款功能丰富的 MCP 服务器,用于将 AI 代理与 dbt 项目集成。它提供了大量工具,涵盖 SQL 执行、语义层、Discovery API、Admin API、dbt CLI 和代码生成。它适用于数据团队和开发者,但需要注意运行 dbt 命令和 SQL 的潜在风险。

查看 FMRS 评分方法 →

dbt MCP 服务器提供多种工具,使 AI 代理能够理解并操作 dbt 项目。它支持 dbt Core、dbt Fusion 和 dbt Platform,并集成 Semantic Layer、Discovery API、Admin API 和 dbt CLI 等功能。

工具能力

execute_sql
在 dbt Platform 基础设施上执行 SQL,支持 Semantic Layer。
text_to_sql
利用项目上下文从自然语言生成 SQL。
get_dimension_values
获取维度的不同值;可选择限定具体指标。
get_dimensions
获取指定指标的维度。
get_entities
获取指定指标的实体。
get_metrics_compiled_sql
返回编译后的指标 SQL,不执行查询。
list_metrics
检索所有已定义的指标。
list_saved_queries
检索所有已保存的查询。
query_metrics
执行指标查询,支持过滤和分组选项。
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 项目中搜索资源(尚未普遍可用)。
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
运行测试以验证数据和模型完整性。
cancel_job_run
取消正在运行的作业。
get_job_details
获取作业配置,包括触发器、计划和 dbt 命令。
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 或其他设置。
generate_model_yaml
生成包含列的模型 YAML;可选择继承上游描述。
generate_source
通过内省数据库 schema 生成源 YAML;可选择包含列。
generate_staging_model
从源表生成暂存模型 SQL。
fusion.compile_sql
通过 dbt Platform 在项目上下文中编译 SQL。
fusion.get_column_lineage
通过 dbt Platform 追踪列级血缘。
get_column_lineage
在本地追踪列级血缘(需要 dbt-lsp,由 dbt Labs VSCE 提供)。
get_product_doc_pages
通过路径或 URL 获取一个或多个 docs.getdbt.com 页面的完整 Markdown 内容。
search_product_docs
在 docs.getdbt.com 上搜索与查询匹配的页面;返回按相关性排序的标题、URL 和描述。使用 get_product_doc_pages 获取完整内容。
get_mcp_server_branch
返回正在运行的 dbt MCP 服务器的当前 git 分支。
get_mcp_server_version
返回当前 dbt MCP 服务器的版本。

安装接入

从 GitHub 仓库克隆或下载 dbt MCP 服务器。按照 README 中的文档配置和运行服务器。对于 MCPB 感知的客户端,也可以从最新发布资产下载实验性 MCP 包。

选型与风险

适合谁

  • 使用 dbt Core、dbt Fusion 或 dbt Platform 的数据团队。
  • 希望将 AI 辅助功能集成到数据工作流中的开发者。
  • 需要快速探索和理解 dbt 项目结构和血缘的分析师。

不适合谁

  • 没有 dbt 项目或不打算使用 dbt 的用户。
  • 需要全面数据库管理的通用数据库 MCP 服务器。
  • 对执行 dbt 命令(如 run 或 build)的风险缺乏了解的新手。

所需权限

  • 执行 SQL 查询(可能修改数据)。
  • 运行 dbt 命令(如 run、build、test),这可能修改数据模型、源和仓库对象。
  • 访问 dbt Platform API,如 Discovery API 和 Admin API。
  • 访问本地文件系统(如 manifest.json)以进行本地工具。

风险与副作用

  • 运行 dbt CLI 命令可能对数据模型、源和仓库对象造成重大修改,可能导致数据丢失或损坏。
  • 执行 SQL 查询可能产生意外副作用,尤其是在生产环境。
  • 访问敏感数据(如作业配置、查询结果)时需要适当身份验证和授权。

常见排障

  1. 确保 MCP 服务器配置正确,包括必要的 dbt 项目和平台凭据。
  2. 检查网络连接,确保能够访问 dbt Platform API 和 docs.getdbt.com。
  3. 验证依赖版本已固定,并遵循 README 中的配置说明。

使用场景

让 AI 代理访问 dbt 项目和元数据,以便回答数据相关问题。
通过自然语言生成 SQL 并执行查询,加速数据分析。
监控和管理 dbt 作业,如触发、重试和取消。
生成 dbt 项目文件,如模型 YAML、源 YAML 和暂存模型。

支持客户端

Claude完整支持
Cursor完整支持