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,或在 社群 Slack 的 #tools-dbt-mcp 頻道中加入我們。

架構

dbt MCP 伺服器架構允許您的代理連接到各種工具。

architecture diagram of the dbt MCP server

工具

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:取得所有暴露(下游儀表板、應用程式或分析)。
  • 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 資源類型(模型、來源、暴露、測試、種子、快照、巨集、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 專案中搜尋資源(尚未普遍可用)。

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:執行測試以驗證資料和模型完整性。

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 分支、結構描述或其他設定。

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 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 這樣的代理產品。但是,如果您有興趣建立自己的代理,請查看 範例目錄 以了解如何開始。

相依性

相依性被固定到特定版本,不會自動更新。只有與安全性相關的相依性更新會透過自動化 pull request 提交。

貢獻

閱讀 CONTRIBUTING.md 以了解如何參與的說明!