dbt MCP Server

官方

dbt(資料建置工具)的官方 MCP 伺服器,提供與 dbt Core/Cloud CLI 的整合、專案中繼資料探索、模型資訊及語意層查詢功能。

文件

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。
  • 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_exposures:獲取所有曝光(下游儀表板、應用程式或分析)。
  • get_lineage:獲取完整的血緣圖(祖先和後代),支援類型和深度篩選。
  • get_macro_details:獲取特定巨集的詳細資訊。
  • get_mart_models:檢索所有 mart 模型。
  • get_model_children:獲取模型的下游相依項。
  • get_model_details:獲取模型詳細資訊,包括編譯 SQL、欄位和結構描述。
  • get_model_health:獲取健康訊號:執行狀態、測試結果和上游來源新鮮度。
  • get_model_parents:獲取模型的上游相依項。
  • get_model_performance:獲取模型的執行歷史記錄;可選擇包含測試結果。
  • get_related_models:使用語意搜尋尋找相似模型。
  • get_seed_details:獲取特定種子的詳細資訊。
  • get_semantic_model_details:獲取特定語意模型的詳細資訊。
  • get_snapshot_details:獲取特定快照的詳細資訊。
  • get_source_details:獲取來源詳細資訊,包括欄位和新鮮度。
  • get_test_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_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 這樣的代理產品。但是,如果您有興趣建立自己的代理,請查看範例目錄以了解如何開始。

相依性

相依性被固定到特定版本,不會自動更新。僅透過自動化拉取請求提交與安全性相關的相依性更新。

貢獻

閱讀 CONTRIBUTING.md 以獲取參與的說明!