Token导航 LogoToken导航TokenDH.com
DBT Core MCP Server logo
数据服务未说明官方级别未说明来源级核验

DBT Core MCP Server

MCP Server

dbt Core MCP Server是一个与dbt项目交互的服务器,通过模型上下文协议(MCP)实现,使AI助手能够查询dbt项目元数据、执行SQL查询、检查模型和源代码,无需依赖dbt核心或适配器。

工具数

14

提示词数

0

GitHub Stars

11

资源数

0
数据分析数据转换PythonVS CodeVS CodeVS Code Insiders

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

NiclasOlofsson

提供方

NiclasOlofsson

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

dbt核心MCP服务器

![Install in VS Code](https://insiders.vscode.dev/redirect/mcp/install?name=dbtcore&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22dbt-core-mcp%22%5D%7D) ![Install in VS Code Insiders](https://insiders.vscode.dev/redirect/mcp/install?name=dbtcore&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22dbt-core-mcp%22%5D%7D&quality=insiders) ![License: MIT](https://opensource.org/licenses/MIT) ![Python 3.9+](https://www.python.org/downloads/) ![dbt 1.9.0+](https://docs.getdbt.com/)

认识一下你的新dbt对程序员——他真正了解你的环境,尊重你的工作流程,并承担重任。

为什么这会改变一切

如果你用Copilot尝试过其他dbt工具(dbt高级用户、datamate等),你就会知道其中的痛苦:

  • 他们不尊重你的Python环境
  • 他们看不到你的实际项目结构
  • 当他们的环境中缺少适配器时,他们就会失败
  • 反正你最终还是自己做这项工作

dbt核心mcp是不同的。 它不仅仅是另一个插件,它是一个真正的结对编程合作伙伴:

  • 零dbt依赖关系:我们的服务器不需要dbt核心,也不需要适配器-适用于您的环境
  • 保持流动:在Copilot处理dbt命令、运行测试和分析影响时,使用Copilot继续对话
  • 尊重您的环境:检测并使用您的确切dbt版本、适配器、Python设置(uv、poetry、venv、conda)
  • 实际上有帮助:你可以完成真正的工作,而不是通用的建议——“运行我的更改并在下游进行测试”实际上就是这样做的
  • 了解您的项目:完全访问您的模型、沿袭、源代码和编译的SQL-无需猜测,无需手动查找

 

 \ dbt核心mcp之前\ 你: *“副驾驶,帮我理解什么取决于stg_orders”*\ 副驾驶: *“您应该检查manifest.json或运行dbt列表…”*\ 你: *切换到终端,运行命令,将输出复制回来。..* 配备dbt核心mcp\ 你: *“什么取决于stg_orders?”*\ 副驾驶: *立即显示完整的沿袭、影响分析和受影响的模型*\ 你: *“运行我的更改并测试下游的所有内容”*\ 副驾驶: *做到了。报告结果。你专注于下一步。*\  

这应该是结对编程 -你专注于逻辑,Copilot负责执行。没有上下文切换,没有终端切换,只有流程。

您将获得什么(功能和优势)

  • 🔥 零dbt依赖关系:服务器没有dbt核心,没有适配器-终极环境尊重
  • 自然语言控制:只是说说而已——“运行我的更改并在下游进行测试”实际上是有效的
  • 桥梁施工:自动检测您的环境,并使用您的版本运行dbt
  • 适用于任何适配器:duckdb、雪花、postgres、bigquery、databricks-如果你有,我们可以使用它
  • 智能选择:自动更改检测-仅运行更改的内容,或更改+下游
  • 全面的项目意识:谱系分析、影响评估、编译SQL-即时访问所有内容
  • 窥探CTE内部:查询任何模型中的单个CTE,以查看中间结果、调试转换和设计逼真的夹具
  • 真结对编程:在Copilot执行dbt命令和报告结果时与它保持对话
  • 模式更改检测:自动检测列更改并建议下游更新
  • 无需配置:适用于您现有的dbt设置-任何适配器、任何数据库、任何版本
  • 并发安全:检测并等待现有的dbt进程以防止冲突

该服务器提供通过模型上下文协议与dbt项目交互的工具,使AI助手能够:

  • 查询dbt项目元数据和配置
  • 使用完整的清单元数据获取详细的模型和源信息
  • 使用Jinja模板支持执行SQL查询({{ref()},{{source()})
  • 检查模型、来源和测试
  • 访问dbt文档和沿袭

自然语言,强大的结果

只需与Copilot自然对话,无需记忆命令或语法:

 \ 探索您的项目\ 你: *“我们在这个项目中有什么模型?”*\ 副驾驶: *显示所有具有物化类型和标签的模型* 了解依赖关系\ 你: *“告诉我客户模型依赖于什么”*\ 副驾驶: *显示上游源和模型的完整沿袭* 运行智能构建\ 你: *“只运行我更改的模型,并测试下游的所有内容”*\ 副驾驶: *使用智能选择执行dbt,运行测试,报告结果*\  

让它运行(2分钟)

*如果你没有安装Python,请访问 python.org/下载 -你需要Python 3.9或更高版本。*

*没有 uv 还没有?安装时使用: pip install uv 或查看 docs.astral.sh/uv*

选项1:一键安装(最简单)

点击您的VS Code版本的徽章:

![Install in VS Code](https://insiders.vscode.dev/redirect/mcp/install?name=dbtcore&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22dbt-core-mcp%22%5D%7D) ![Install in VS Code Insiders](https://insiders.vscode.dev/redirect/mcp/install?name=dbtcore&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22dbt-core-mcp%22%5D%7D&quality=insiders)

就是这样!当您打开dbt项目时,服务器将自动启动。

选项2:手动配置

将此添加到您的 .vscode/mcp.json dbt项目工作区中的文件:

{
  "servers": {
    "dbt-core": {
      "command": "uvx",
      "args": ["dbt-core-mcp"]
    }
  }
}

或者,如果你更喜欢 pipx:

{
  "servers": {
    "dbt-core": {
      "command": "pipx",
      "args": ["run", "dbt-core-mcp"]
    }
  }
}

服务器将自动使用您的工作区目录作为dbt项目位置。

选项3:出血边缘(最新来自GitHub)

对于那些想要立即获得最新功能的不耐烦的人:

随着 uvx:

{
  "servers": {
    "dbt-core": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/NiclasOlofsson/dbt-core-mcp.git",
        "dbt-core-mcp"
      ]
    }
  }
}

随着 pipx:

{
  "servers": {
    "dbt-core": {
      "command": "pipx",
      "args": [
        "run",
        "--no-cache",
        "--spec",
        "git+https://github.com/NiclasOlofsson/dbt-core-mcp.git",
        "dbt-core-mcp"
      ]
    }
  }
}

获取更新: 当使用git安装时, uvxpipx 缓存下载的代码。要获取最新更改:

# For uvx users
uv cache clean dbt-core-mcp

# For pipx users (--no-cache prevents caching)
# Already configured in the pipx setup above

清理缓存后,重新启动VS Code或MCP客户端以获取最新版本。

可选配置

命令超时

默认情况下,dbt命令没有超时(它们可以根据需要运行很长时间)。对于需要很长时间编译的复杂模型,您可以设置超时或显式禁用它:

{
  "servers": {
    "dbt-core": {
      "command": "uvx",
      "args": [
        "dbt-core-mcp",
        "--dbt-command-timeout", "300"  // 5 minutes, or use 0 for no timeout (default)
      ]
    }
  }
}

项目目录

服务器会自动从工作区根目录检测您的dbt项目。如果dbt项目位于子目录中,或者需要指定其他位置,请使用 --project-dir 具有相对或绝对路径:

{
  "servers": {
    "dbt-core": {
      "command": "uvx",
      "args": [
        "dbt-core-mcp",
        "--project-dir", "path/to/dbt/project"  // relative or absolute path
      ]
    }
  }
}

需求

对于MCP服务器:

  • Python 3.9或更高版本
  • 无需dbt核心,无需适配器-只需安装 dbt-core-mcp

对于您的dbt项目:

  • dbt Core 1.9.0或更高版本
  • 任何dbt适配器(dbt-duckdb、dbt-postgres、dbt-雪花、dbt-databrick等)

服务器通过网桥执行自动检测并使用您项目的dbt安装。

局限性

  • Python模型:目前不支持。目前仅支持基于SQL的dbt模型。
  • dbt版本:需要dbt Core 1.9.0或更高版本

可用工具

别担心记住这些 -您不需要知道工具名称或参数。只需与Copilot自然交谈,它就会知道该使用什么。这个参考是为那些想了解引擎盖下发生了什么的好奇者准备的。

专业提示: 专注于对话示例(You:/Copilot:)——它们展示了如何在实践中实际使用这些工具。

项目信息

get_project_info

获取dbt项目的基本信息,包括名称、版本、适配器类型和资源计数。默认情况下,也会运行 dbt debug 验证您的环境并测试数据库连接。

 \ 你: *“此项目使用的dbt版本是什么?”*\ 副驾驶: *显示项目信息,包括dbt版本、适配器类型和连接状态* 你: *“这个项目中有多少个模型和来源?”*\ 副驾驶: *显示计数和项目概述以及诊断* 你: *“我的数据库连接正常吗?”*\ 副驾驶: *显示dbt调试的连接测试结果* 你: *“检查我的dbt设置”*\ 副驾驶: *运行完整的环境验证并报告任何问题*\  

参数:

  • run_debug:运行 dbt debug 验证环境和测试连接(默认值:True)

退货: 项目元数据和诊断结果包括:

  • 数据库连接状态(正常/失败/未知)
  • 环境验证输出
  • 系统和依赖性检查

注:run_debug=False 跳过诊断,只获取基本的项目信息(重复查询更快)。

资源发现(统一工具)

一个工具,所有资源类型 -这些统一的工具跨模型、源、种子、快照和测试工作。无需为每种类型分别配备工具。

list_resources

列出项目中的所有资源,或按类型(模型、源、种子、快照、测试)进行筛选。

 \ 你: *“显示此项目中的所有资源”*\ 副驾驶: *列出所有模型、源、种子、快照和测试* 你: *“我们有什么型号?”*\ 副驾驶: *仅显示模型及其物化类型的过滤器* 你: *“列出所有数据源”*\ 副驾驶: *显示具有架构和描述的已配置源* 你: *“给我看看种子”*\ 副驾驶: *显示项目中可用的CSV种子文件* 你: *“哪些模型被物化为表格?”*\ 副驾驶: *按物化类型过滤模型*\  

参数:

  • resource_type:可选过滤器- "model", "source", "seed", "snapshot", "test",或 None 对于所有

退货: 所有类型具有一致的结构,包括通用字段(名称、描述、标签)和特定类型的详细信息(物化、源名等)

get_resource_info

获取有关任何资源的详细信息-适用于模型、源、种子、快照和测试。

 \ 你: *“显示客户模型的详细信息”*\ 副驾驶: *显示完整的模型元数据、配置、列信息和编译的SQL* 你: *“原始客户来源中有什么?”*\ 副驾驶: *显示源架构、列和新鲜度配置* 你: *“描述国家代码种子”*\ 副驾驶: *返回种子配置和列定义* 你: *“订单模型有哪些列?”*\ 副驾驶: *显示数据库中的列名、类型和描述* 你: *“向我展示为客户编译的SQL”*\ 副驾驶: *使用编译的SQL返回模型信息(所有Jinja解析)* 你: *“告诉我有关customer_snapshot的信息”*\ 副驾驶: *显示快照配置和SCD跟踪设置*\  

参数:

  • name:资源名称(例如,“客户”、“jaffle_shop.raw_orders”)
  • resource_type:可选-如果未指定,则自动检测
  • include_database_schema:包括数据库中的实际列类型(默认值:true)
  • include_compiled_sql:包含已解析Jinja的编译SQL(默认值:true,仅限模型)

自动检测: 只需提供名称——无论是模型、源代码、种子、快照还是测试,该工具都会自动找到它。对于来源,请使用 "source_name.table_name" 格式或只是表名。

编译的SQL: 对于模型,自动包含所有已编译的SQL {{ ref() }}{{ source() }} 解析为实际表名。将触发 dbt compile 如果尚未编译。集 include_compiled_sql=False 跳过编译。

谱系和影响分析(统一工具)

了解所有资源类型之间的关系 -分析模型、源、种子、快照和测试的依赖关系和影响。

get_lineage

跟踪任何资源的依赖关系-显示它依赖什么(上游)和依赖什么(下游)。

 \ 你: *“显示客户模型的沿袭”*\ 副驾驶: *显示包含上游源和下游模型的完整依赖关系树* 你: *“stg_orders依赖于什么?”*\ 副驾驶: *显示上游依赖关系(源和父模型)* 你: *“原始客户来源的下游是什么?”*\ 副驾驶: *显示使用此源的所有模型* 你: *“收入模型从哪里获得数据?”*\ 副驾驶: *显示所有源数据的上游沿袭* 你: *“显示所有使用country_codes种子的内容”*\ 副驾驶: *列出引用此种子的所有下游模型*\  

参数:

  • name:资源名称(适用于模型、源、种子、快照、测试)
  • direction: "upstream" (来源), "downstream" (家属),或 "both" (默认)
  • depth:可遍历的最大级别(无表示无限,1表示立即等)
  • resource_type:可选-如果未指定,则自动检测

退货: 具有统计信息的依赖关系树(上游_计数、下游_计数、总依赖关系)

使用案例:

  • 了解数据流和关系
  • 探索资源从何处获取数据
  • 查看取决于特定资源的内容
  • 更改前的影响分析

analyze_impact

分析更改任何资源的爆炸半径-显示将受到影响的所有下游依赖关系。

 \ 你: *“改变stg_customers模型有什么影响?”*\ 副驾驶: *显示所有下游模型、测试和受影响的资源* 你: *“如果我修改了raw_orders源代码,需要运行什么?”*\ 副驾驶: *列出按距离分组的受影响模型,并使用推荐的命令* 你: *“如果我更改country_codes种子,会有什么问题?”*\ 副驾驶: *显示总影响计数和受影响的资源* 你: *“有多少模型依赖于此快照?”*\ 副驾驶: *显示影响统计数据和依赖关系计数*\  

参数:

  • name:资源名称(适用于模型、源、种子、快照、测试)
  • resource_type:可选-如果未指定,则自动检测

退货:

  • 按与更改资源的距离分组的受影响资源
  • 受影响的测试和其他资源计数
  • 总影响统计
  • 上下文感知的推荐dbt命令(例如。, dbt run -s stg_customers+)
  • 影响级别信息(无/低/中/高)

使用案例:

  • 重构前:了解爆炸半径
  • 规划增量部署
  • 估计更改后的重建时间
  • 修改风险评估

get_column_lineage

通过SQL转换跟踪列级沿袭-准确了解列如何通过CTE、连接、聚合和转换。

 \ 你: *“显示收入栏的来源”*\ 副驾驶: *通过CTE显示每个转换步骤的上游轨迹* 你: *“customer_id如何在客户模型中流动?”*\ 副驾驶: *显示CTE链:最终→ customer_agg→ 订单→ stg_orders* 你: *“哪些列在下游使用customer_id?”*\ 副驾驶: *显示所有引用它的下游模型和列* 你: *“从源到最终输出跟踪order_total”*\ 副驾驶: *使用CTE和表达式显示完整的转换路径* 你: *“这种模式的价格会发生什么变化?”*\ 副驾驶: *列出使用SQL表达式转换列的每个CTE*\  

参数:

  • model_name:要分析的dbt模型的名称
  • column_name:要跟踪的列的名称
  • direction: "upstream" (来源), "downstream" (用法),或 "both" (默认)
  • depth:可遍历的最大级别(无表示无限,1表示立即等)

退货: 具有详细转换跟踪的列级依赖关系:

  • 路径(\_C):按转换顺序列出CTE名称(显示通过内部CTE的路径)
  • 变换:每个步骤的详细转换(CTE名称、列、SQL表达式)
  • 依赖项:具有完整限定的源列和表
  • dbt资源映射:源模型和源的链接

CTE转型跟踪:

该工具跟踪列如何在模型内通过通用表表达式(CTE)流动:

customer_agg.order_count
  └─ via_ctes: ["final", "customer_agg"]
  └─ transformations:
       - CTE: final
         Column: order_count
         Expression: COALESCE(customer_agg.order_count, 0)
       - CTE: customer_agg
         Column: order_count
         Expression: COUNT(orders.order_id)

这向您展示了:

  • 该列通过哪些CTE(via_ctes)
  • 它在每一步都是如何转变的(transformations)
  • 在每个转换点使用的SQL表达式

使用案例:

  • 逐步了解复杂的SQL转换
  • 调试列具有意外值的原因(跟踪转换链)
  • 查找计算列的所有来源
  • 在重命名列之前查看下游使用情况
  • 记录合规性/审计的数据沿袭
  • 识别CTE链中的优化机会

注: 需要编译模型(dbt compile).使用sqlglot解析SQL并跟踪列流。

数据库查询

query_database

使用dbt的ref()和source()函数对数据库执行SQL查询。结果可以内联显示或导出到CSV/TSV文件进行分析。

 \ 你: *“显示客户模型中的10行”*\ 副驾驶: *执行SELECT\*FROM{{ref('customers')}}LIMIT 10并显示结果* 你: *“显示订单数>5的客户的customer_agg CTE”*\ 副驾驶: *仅提取CTE(带有上游deps),应用过滤器并显示行* 你: *“太好了,使用该输出来塑造我的CTE单元测试夹具”*\ 副驾驶: *完成。您可以在不运行整个模型的情况下获得逼真的输入/输出示例* 你: *“统计暂存表中的订单”*\ 副驾驶: *运行选择计数(*)并显示计数\* 你: *“stg_payments的模式是什么?”*\ 副驾驶: *查询列信息并显示架构* 你: *“将客户数据导出到CSV进行分析”*\ 副驾驶: *将查询结果保存到可以在Excel中打开的CSV文件中* 你: *“将所有订单保存到TSV文件”*\ 副驾驶: *以制表符分隔格式导出数据,以便导入其他工具* 你: *“从按最新排序的customers_riched运行orders_with_flags CTE”*\ 副驾驶: *仅执行CTE(包括上游deps),应用ORDER BY/LIMIT,并显示您需要推理逻辑的切片* 你: *“用它来构建一个逼真的CTE单元测试夹具”*\ 副驾驶: *是的,现在你的灯具与真实形状和边缘情况相匹配*\  

您可以做什么:

  • 使用查询任何模型 {{ ref('model_name') }} 或使用来源 {{ source('source_name', 'table_name') }}
  • 查询任意 个体CTE 在模型内部 cte_name + model_name,并可选择添加 sql 对于WHERE/ORDER BY/LIMIT,可以精确放大步骤产生的结果
  • 直接在对话中显示结果(适用于小结果集)
  • 导出到CSV或TSV文件(非常适合大型数据集或Excel/其他工具中的进一步分析)
  • 自动处理大型结果,而不会使对话不堪重负

执行工具

run_models

使用基于状态的选择运行dbt模型,以实现快速开发。需要以前的状态(来自以前的运行)来检测修改。

 \ 你: *“只运行我更改的模型”*\ 副驾驶: *使用状态比较来检测并仅运行修改后的模型* 你: *“运行我的更改和所有下游操作”*\ 副驾驶: *运行修改后的模型以及所有下游依赖项* 你: *“运行客户模型”*\ 副驾驶: *执行dbt run--选择客户* 你: *“通过全面刷新构建所有集市模型”*\ 副驾驶: *运行dbt-run--选择marts。* --完全刷新\* 你: *“运行修改后的模型并检查架构更改”*\ 副驾驶: *运行模型并检测添加/删除的列*\  

基于状态的选择模式:

  • select_state_modified:仅运行已更改的模型(需要以前的状态)
  • select_state_modified_plus_downstream:运行更改的模型+下游的所有内容

国家如何运作:

  • 首次运行会自动建立基线状态
  • 后续运行将与此状态进行比较以检测变化
  • 如果不存在以前的状态,则返回成功(无法确定修改)
  • 每次成功运行后,状态都会自动保存

其他参数:

  • select:型号选择器(例如“客户”、“标签:集市”)
  • exclude:排除型号
  • full_refresh:强制增量模型完全刷新
  • fail_fast:第一次失败时停止
  • check_schema_changes:检测列的添加/删除

架构更改检测: 启用后,检测添加或删除的列,并建议运行下游模型以传播更改。

test_models

使用基于状态的选择运行dbt测试。需要以前的状态来检测修改。

 \ 你: *“仅测试我更改的模型”*\ 副驾驶: *使用状态比较仅测试修改后的模型* 你: *“对我的更改和下游模型运行测试”*\ 副驾驶: *测试修改后的模型和下游受影响的所有内容* 你: *“测试客户模型”*\ 副驾驶: *执行dbt测试--选择客户* 你: *“运行临时模型的所有测试”*\ 副驾驶: *运行dbt测试--选择暂存。*\  

基于状态的选择模式:

  • select_state_modified:仅测试更改的模型(需要以前的状态)
  • select_state_modified_plus_downstream:测试更改的模型+下游
  • 如果不存在以前的状态,则返回成功(无法确定修改)

其他参数:

  • select:测试选择器(例如,“客户”、“标签:集市”)
  • exclude:排除测试
  • fail_fast:第一次失败时停止

build_models

按依赖顺序一起运行模型和测试(最有效的方法)。支持基于状态的选择。

 \ 你: *“构建我的变化和下游的一切”*\ 副驾驶: *使用状态比较来构建修改后的模型和依赖关系* 你: *“只运行和测试我修改的内容”*\ 副驾驶: *仅在更改的模型上执行dbt构建* 你: *“用测试构建整个集市层”*\ 副驾驶: *运行dbt构建--选择marts。* 所有测试\*\  

基于状态的选择模式:

  • select_state_modified:仅构建更改的模型(需要以前的状态)
  • select_state_modified_plus_downstream:构建已更改的模型+下游
  • 如果不存在以前的状态,则返回成功(无法确定修改)

seed_data

从以下位置加载种子数据(CSV文件) seeds/ 目录到数据库表中。

 \ 你: *“加载所有种子数据”*\ 副驾驶: *运行dbt种子并加载所有CSV文件* 你: *“只装我换过的种子”*\ 副驾驶: *检测修改的种子文件并加载它们* 你: *“重新加载raw_customers种子文件”*\ 副驾驶: *执行dbt种子--选择raw_customers--完全刷新* 你: *“让我看看country_codes种子中有什么”*\ 副驾驶: *显示加载种子数据的预览*\  

种子通常用于参考数据,如国家代码、产品类别等。

基于状态的选择模式:

  • select_state_modified:仅加载已更改的种子(需要以前的状态)
  • select_state_modified_plus_downstream:加载更改的种子+下游依赖项
  • 如果不存在以前的状态,则返回成功(无法确定修改)

其他参数:

  • select:种子选择器(例如“raw_customers”、“tag:lookup”)
  • exclude:不包括种子
  • full_refresh:截断并重新加载种子表
  • show:显示加载数据的预览

重要提示: 更改检测通过文件哈希进行:

  • 种子\  \
你: *“运行所有快照”*\ 副驾驶: *为所有快照模型执行dbt快照* 你: *“执行customer_history快照”*\ 副驾驶: *运行dbt快照--选择customer_history* 你: *“运行每日快照”*\ 副驾驶: *执行标记为“每日”的快照*\  

快照通过记录记录首次出现的时间、更改的时间以及每个时间点的状态来跟踪历史变化。

参数:

  • select:快照选择器(例如,“customer_history”、“tag:daily”)
  • exclude:排除快照

注: 快照是基于时间的,应该按计划(例如每天/每小时)运行,而不是在交互式开发期间运行。它们不支持智能选择。

install_deps

安装packages.yml中定义的dbt包,以启用交互式包管理工作流。

 \ 你: *“我需要使用dbt_utils宏”*\ 副驾驶: *检查是否已安装,添加到packages.yml,运行install_deps()* 你: *“安装packages.yml中定义的包”*\ 副驾驶: *执行dbt-deps并显示已安装的软件包* 你: *“添加dbt_utils并安装它”*\ 副驾驶: *编辑packages.yml,运行install_deps(),准备使用宏*\  

此工具支持完整的工作流程,Copilot可以:

  1. 建议使用dbt包(例如dbt_utils)
  2. 编辑packages.yml以添加包
  3. 运行install_deps()进行安装
  4. 编写使用包宏的代码

所有这些都不会打断对话。

退货: 安装状态和已安装软件包列表

包发现: 使用 list_resources(type="macro") 查看已安装的软件包。 宏遵循以下模式 macro.{package_name}.{macro_name}.

注: 这是一个交互式开发工具(如run_models/test_models),而不是基础设施自动化。它使Copilot能够在对话中完成自己的建议。

开发人员工作流程

快速迭代,智能选择——只需描述你想要什么:

 \ 你: *“只跑我改变的东西”*\ 副驾驶: *检测修改后的模型并运行它们* 你: *“运行我的更改并测试下游的所有内容”*\ 副驾驶: *运行修改后的模型+下游依赖关系,然后进行测试* 你: *“使用测试构建修改后的模型”*\ 副驾驶: *使用智能选择执行dbt构建*\  

第一次运行会自动建立基线状态。后续运行会检测到更改,并仅运行所需的内容。

前后示例:

 \ 传统工作流程: ``bash dbt run --select customers+ dbt test --select customers+ `` 使用dbt核心mcp:\ 你: *“我修改了客户模型,运行它并测试了所有受影响的内容”*\ 副驾驶: *处理一切-运行、测试和报告结果*\  

运作原理

此服务器使用桥接执行模式在项目的Python环境中执行dbt命令:

  1. 零dbt依赖关系:MCP服务器不需要dbt核心,不需要适配器,只需要Python实用程序
  2. 环境检测:自动查找您的Python环境(uv、poetry、venv、conda等)
  3. 桥梁施工:将Python脚本构建为字符串,并在您的环境中执行它们
  4. 使用您的dbt:与您的dbt核心版本、适配器和配置一起运行
  5. 无冲突:当我们没有dbt依赖关系时,不能有版本冲突!
  6. 并发安全:检测并等待现有的dbt进程,以防止数据库锁冲突

服务器读取dbt的manifest.json以获取元数据,并使用 dbt show --inline (在您的环境中执行)用于SQL查询执行,并完全支持Jinja模板。

在实践中:

 \ 您的项目: dbt核心1.10.13+dbt-duckdb\ 我们的服务器: mcp、fastmcp、pydantic、pyyaml、psutil(无dbt!)\ 结果: 完美的兼容性-我们检测您的环境并运行您的dbt\  

无需配置-它只适用于您现有的dbt设置、任何版本、任何适配器。

贡献

想让这变得更好吗? 你能做的最好的贡献就是实际使用它 -你的反馈和bug报告才是真正推动改进的动力。

当然,也欢迎代码贡献!结账 贡献.md 用于开发设置和指南。但说真的,仅仅使用它并告诉我们什么有效(或无效)是非常有价值的。

了解更多

  • 技术架构 -深入了解零配置理念、桥接架构、性能优化和设计决策。对于那些想了解这一切在幕后是如何运作的好奇者来说。
  • CTE单元测试 -单独测试SQLCTE的综合指南。学习如何在不构建大量夹具的情况下测试复杂的SQL逻辑,为dbt模型实现真正的TDD工作流。

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

作者

尼古拉斯·奥洛夫森-

目录标签

目录标签

数据分析数据转换PythonVS Code本地部署dbt工具AI辅助SQL查询

支持客户端

VS CodeVS Code Insiders

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

14

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明nonelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP