dbt MCP Server

公式

dbt(データビルドツール)向けの公式MCPサーバーで、dbt Core/Cloud CLIとの統合、プロジェクトメタデータの検出、モデル情報、セマンティックレイヤーのクエリ機能を提供します。

ドキュメント

dbt MCP サーバー

OpenSSF Best Practices

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

詳細については、こちらのドキュメントをお読みください。dbt MCP サーバーで何が可能かについての詳細は、このブログ記事でご確認いただけます。

実験的な MCP バンドル

各リリースでは、実験的な Model Context Protocol バンドル (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: すべてのマートモデルを取得します。
  • 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 コード生成

これらのツールは、dbt プロジェクトファイルのボイラープレートコード生成を自動化するのに役立ちます。

  • generate_model_yaml: カラムを含むモデル YAML を生成します。上流の説明を継承するオプションがあります。
  • generate_source: データベーススキーマをイントロスペクトしてソース YAML を生成します。カラムを含めるオプションがあります。
  • generate_staging_model: ソーステーブルからステージングモデル SQL を生成します。

dbt LSP

高度な SQL コンパイルとカラムレベルのリネージ分析のために Fusion エンジンを活用する一連のツールです。

  • 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 で指定された 1 つ以上の 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 などのエージェント製品に接続します。ただし、独自のエージェントの作成に興味がある場合は、examples ディレクトリで開始方法を確認してください。

依存関係

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

貢献

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