dbt-mcp

Official
by dbt-labs
Apache 2.0
134
  • Linux
  • Apple

Integrations

  • Provides tools to interact with dbt, including executing dbt CLI commands (build, compile, run, test), accessing Semantic Layer for metric querying, and using Discovery API to explore models and their relationships in a dbt project.

dbt MCP サーバー

このMCP(モデルコンテキストプロトコル)サーバーは、dbtと連携するためのツールを提供します。詳細については、こちらのブログをご覧ください。

建築

インストール

すぐに出発したいですか?

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/dbt-labs/dbt-mcp/refs/heads/main/install.sh)"

インストーラーはアップデーターとしても機能し、もう一度実行すると、既存の dbt-mcp インストールが検出され、更新が提案されます。

構成

MCP サーバーは次の構成をとります。

ツールグループ

名前デフォルト説明
DISABLE_DBT_CLIfalseこれをtrueに設定すると、dbt Core および dbt Cloud CLI MCP ツールが無効になります
DISABLE_SEMANTIC_LAYERfalseこれをtrueに設定すると、dbtセマンティックレイヤーMCPオブジェクトが無効になります
DISABLE_DISCOVERYfalsedbt Discovery API MCP オブジェクトを無効にするには、これをtrueに設定します
DISABLE_REMOTEtrueリモートMCPオブジェクトを有効にするにはこれをfalseに設定します

検出およびセマンティック層の構成

名前デフォルト説明
DBT_HOSTcloud.getdbt.comdbt Cloudインスタンスのホスト名。こちらに記載されているAccess URLと同じ形式になります。マルチセルをご利用の場合は、 ACCOUNT_PREFIX含めないでください。
MULTICELL_ACCOUNT_PREFIX-マルチセルをご利用の場合は、 ACCOUNT_PREFIXを設定してください。マルチセルをご利用でない場合は、この環境変数を設定しないでください。詳細はこちらをご覧ください。
DBT_TOKEN-個人アクセストークンまたはサービストークン。**注:**セマンティックレイヤーを使用する場合はサービストークンが必要です。
DBT_PROD_ENV_ID-dbt Cloud 本番環境のID

リモートツールの構成

名前説明
DBT_DEV_ENV_IDdbt Cloud 開発環境 ID
DBT_USER_IDdbt CloudユーザーID

dbt CLI の設定

名前説明
DBT_PROJECT_DIRdbtプロジェクトへの道
DBT_PATHdbt Coreまたはdbt Cloud CLI実行ファイルへのパス。which which dbtを実行するとdbt実行ファイルが見つかります。

MCPクライアントでの使用

インストールが完了すると、MCP クライアントでサーバーを使用できるようになります。

この設定は、それぞれのクライアントの設定ファイルに追加されます。 <>内のセクションを必ず置き換えてください。

インストール スクリプトを使用した場合、mcp サーバーはユーザー ディレクトリの~/.dbt-mcp/にインストールされています。

{ "mcpServers": { "dbt-mcp": { "command": "/Users/<YOUR USERNAME>/.dbt-mcp/.venv/bin/mcp", "args": [ "run", "/Users/<YOUR USERNAME>/.dbt-mcp/.venv/lib/python3.12/site-packages/dbt_mcp/main.py" ], "env": { // see config above // "DBT_HOST": "cloud.getdbt.com" // "DBT_TOKEN": "dbtu_...." } } } }

<path-to-mcp-executable> OS によって異なります。

  • Linux および Mac: <path-to-this-directory>/.venv/bin/mcp
  • PC: <path-to-this-directory>/.venv/Scripts/mcp

クロードデスクトップ

次の手順に従って、 claude_desktop_config.jsonファイルを作成し、接続します。

Mac では、Claude Desktop のログは~/Library/Logs/Claudeにあります。

カーソル

  1. カーソルメニューを開き、設定→カーソル設定→MCPを選択します。
  2. 「新しいグローバルMCPサーバーを追加」をクリックします
  3. 上記の設定を提供されたmcp.jsonファイルに追加します。
  4. MCPタブ内で接続がアクティブであることを確認します

カーソルMCPドキュメントはここを参照してください

VSコード

  1. 設定メニュー(コマンド+カンマ)を開き、ページ上部にある使用ケースに適したタブを選択します。
    • Workspace - ワークスペースのコンテキストでサーバーを構成します
    • User - ユーザーのコンテキストでサーバーを構成します
    • WSLユーザーへの注意:VS CodeをWSLで使用している場合は、WSL固有の設定を行う必要があります。コマンドパレット(F1)から**「Preferences: Open Remote Settings」コマンドを実行するか、設定エディターで「Remote」**タブを選択してください。ローカルユーザー設定はWSLで再利用されますが、WSL固有の設定で上書きできます。ローカルユーザー設定でMCPサーバーを設定しても、WSL環境では正しく動作しません。
  2. 機能を選択→チャット
  3. 「Mcp」がEnabledことを確認する

  1. 「Mcp > Discovery」の下にある「settings.jsonで編集」をクリックします。
  2. 提供されたsettings.jsonファイルに、サーバー構成( dbt )をサーバーの1つとして追加します。
{ "mcp": { "inputs": [], "servers": { "dbt": { "command": "<path-to-mcp-executable>", "args": ["run", "<path-to-this-directory>/src/dbt_mcp/main.py"] } } } }

<path-to-mcp-executable> OS によって異なります。

  • Linux および Mac: <path-to-this-directory>/.venv/bin/mcp
  • PC: <path-to-this-directory>/.venv/Scripts/mcp
  1. MCP サーバーは、次の方法で起動、停止、および構成できます。
  • コマンドパレット(Control + Command + P)からMCP: List Serversコマンドを実行し、サーバーを選択します。
  • settings.jsonファイル内のキーワードをインラインで利用する

VS Code MCPドキュメントはこちらをご覧ください

ツール

dbt CLI

  • build - モデル、テスト、スナップショット、シードを依存関係の順序で実行します
  • compile - モデル、テスト、分析を実行せずに実行可能なSQLを生成します。
  • docs - dbt プロジェクトのドキュメントを生成します
  • ls (リスト) - モデルやテストなどの dbt プロジェクト内のリソースを一覧表示します
  • parse - プロジェクトのファイルを解析して構文の正確性を検証します
  • run - モデルを実行してデータベースに具体化する
  • test - データとモデルの整合性を検証するためのテストを実行します
  • show - データウェアハウスに対してクエリを実行します

クライアントがこのMCPツールを通じてdbtコマンドを使用することを許可すると、データモデル、ソース、ウェアハウスオブジェクトが変更される可能性があります。クライアントを信頼でき、潜在的な影響を理解している場合のみ、続行してください。

セマンティックレイヤー

  • list_metrics - 定義されたすべてのメトリックを取得します
  • get_dimensions - 指定された指標に関連付けられたディメンションを取得します
  • get_entities - 指定されたメトリックに関連付けられたエンティティを取得します
  • query_metrics - オプションのグループ化、順序付け、フィルタリング、制限を使用してメトリックをクエリします

発見

  • get_mart_models - すべてのマートモデルを取得します
  • get_all_models - すべてのモデルを取得する
  • get_model_details - 特定のモデルの詳細を取得します
  • get_model_parents - 特定のモデルの親モデルを取得します

貢献

参加方法については、 CONTRIBUTING.mdをご覧ください。

Related MCP Servers

View all related MCP servers

ID: 4g56yk3tar