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

OpenSSF Best Practices

このMCP(Model Context Protocol)サーバーは、dbtと連携するためのさまざまなツールを提供します。このMCPサーバーを使用すると、AIエージェントにdbt Core、dbt Fusion、およびdbt Platformにおけるプロジェクトのコンテキストを提供できます。

詳細については、こちらのドキュメントをお読みください。こちらのブログ記事では、dbt MCPサーバーで可能なことについてさらに詳しく説明しています。

実験的なMCPバンドル

MCPB対応クライアントが追加のセットアップなしでこのサーバーをインポートできるよう、リリースごとに実験的なModel Context Protocol Bundle(dbt-mcp.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: Semantic Layerをサポートしてdbt Platformインフラストラクチャ上でSQLを実行します。
  • 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リソースタイプ(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モデルを検索し、プロデューサーのIDを確認することで、検証済みのクロスプロジェクトrefを構築できます(マルチプロジェクト構成のみ)。

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が必要です)。

Product Docs

docs.getdbt.comにある公式dbtドキュメントのコンテンツを検索および取得するためのツールです。

  • get_product_doc_pages: パスまたはURLで指定した1つ以上のdocs.getdbt.comページの完全なMarkdownコンテンツを取得します。
  • search_product_docs: クエリに一致するページをdocs.getdbt.comで検索し、関連性でランク付けされたタイトル、URL、説明を返します。完全なコンテンツを取得するにはget_product_doc_pagesを使用してください。

MCP Server Metadata

これらのツールは、MCPサーバー自体に関する情報を提供します。

  • get_mcp_server_branch: 実行中のdbt MCPサーバーの現在のgitブランチを返します。
  • get_mcp_server_version: dbt MCPサーバーの現在のバージョンを返します。

例

一般的には、dbt MCPサーバーをClaudeやCursorなどのエージェント製品に接続します。ただし、独自のエージェントを作成することに興味がある場合は、始め方についてexamplesディレクトリを参照してください。

依存関係

依存関係は特定のバージョンに固定されており、自動的には更新されません。セキュリティ関連の依存関係の更新のみが自動プルリクエストを介して送信されます。

コントリビューション

参加方法については、CONTRIBUTING.mdをお読みください!

セレクターの宣言とコンテキストマッパーの契約については、ツールの入力と解決済みコンテキストを参照してください。