はじめに
この記事では、dbtプロジェクトをAI(LLM)から操作するための仕組みとして、
- dbt-mcpサーバー(LLMとdbtをつなぐMCP準拠のミドルウェア)
- Cline(VSCodeでAIアシスタントと連携できる拡張機能)
を使い、BigQueryとの疎通確認やモデル作成を自動化する手順を紹介します。
Clineから自然言語のプロンプトを送信し、dbt-mcpサーバを介してdbtコマンドを実行することで、AIによるSQLの生成やモデルの更新、デバッグなどを効率的に行えるようになります。
また、この記事はすでにdbt開発経験があり、AI駆動開発に興味があるエンジニアを対象としています。
dbtに関連する記事はこちらをご参照ください。
dbt-mcpとは
dbt MCP Serverは、Anthropicが提唱する Model Context Protocol(MCP) に準拠したサーバーで、dbtプロジェクト(モデル、ドキュメント、リネージ、セマンティックレイヤーなど)と、Claude Desktop ProjectsやCursorなどのMCP対応クライアントを接続する役割を果たします。
このサーバーは、LLM(大規模言語モデル)やAIエージェントがデータの構造や意味を理解し、自然言語での質問に対して正確な回答を提供できるように設計されています。
主な機能
- データの発見
- dbtプロジェクト内のデータモデルやリネージ情報をAIが探索し、どのようなデータが存在するかを把握できます
- データクエリの実行
- dbtのセマンティックレイヤーを活用して、信頼性の高いメトリクスベースのレポートを生成
- SQLクエリを直接実行し、柔軟なデータ探索や開発が可能
- dbtコマンドの実行
- AIエージェントがdbt CLIを通じてプロジェクトのビルドや検証などの操作を実行できます

注意
セキュリティと注意点
本番環境のデータにアクセスさせる前に、サンドボックス環境でのテストを推奨します。
AIエージェントには読み取り専用のアクセス権限を付与し、誤操作やデータ漏洩のリスクを最小限に抑えることが重要です。
Clineとは
Clineはプログラミングの開発作業をサポートしてくれる、VSCodeの拡張機能です。
ユーザーの命令に対して、Clineが適切な処理を加えてClaudeやChatGPTといったAIアシスタントと連携することで次のことを自動で実行してくれます。
- フォルダ・ファイルの解析: プロジェクトのフォルダとその中に存在するファイルを読み込み解析する
- コード生成・編集: 命令の内容から必要な情報を抽出し、コードの生成から修正を行う
- バグ修正: コード実行時のエラー内容から修正案を提示
- ターミナル操作: ターミナルを使用したコマンドの実行が必要な場合、実行してくれる
Clineに関連する記事はこちらをご参照ください。
dbt-mcpサーバのセットアップと動作確認
ここからは、実際にdbt-mcpサーバをセットアップし、簡単なdbt debug
コマンドをCline経由でdbt-coreへ実行させてみます。
今回の動作確認は以下の実行環境と前提
に記載の環境で進めます。
実行環境と前提
- dbt-coreを利用している
- macOS環境で作業を行う
- すでにBigQuery向けのdbt開発を行っている
- LLMとしてOpenAIを使用する
- プロンプトはClineから実行する
dbt-mcpのセットアップ
uvのインストール
Rustで書かれた、非常に高速なPythonパッケージマネージャであるuvをmacOSにインストールします。

備考
pipをuvの代わりに使用することについてですが、dbt-mcpはuvによるインストールを前提として構成されているため、pipでインストールを行う場合は動作が保証されず、自己責任での利用となります。
もしPythonがmacにインストールされていない場合は次のコマンドでインストールしておきます。
dbt-mcpサーバーの設定
macの任意のディレクトリに移動し、dbt-mcpリポジトリをcloneします。
taskコマンドを実行し、依存関係をインストールします。
もしtaskコマンドがインストールされていない場合、以下コマンドでインストールしてください。
次に、dbt-mcpサーバーに設定する環境変数を設定します。
.envファイルを以下のように設定します。
今回の環境変数はdbt coreの利用を想定しているため、設定が必要な項目は次の5つです。
- DBT_PROJECT_DIR
- DBT_PATH
- DISABLE_SEMANTIC_LAYER
- DISABLE_DISCOVERY
- DISABLE_REMOTE_TOOLS
各パラメータについては以下を参照ください。
パラメータ名 | 説明 | dbt coreに必要 | dbt cloudに必要 |
---|
DBT_HOST | dbtクラウドインスタンスのホスト名です。 マルチセルを使用している場合は、ここにACCOUNT_PREFIXを含めないでください | ❌ | ✅ |
DBT_PROD_ENV_ID | dbt cloud本番環境ID | ❌ | ✅ |
DBT_DEV_ENV_ID | dbt cloud開発環境ID | ❌ | ✅ |
DBT_USER_ID | dbt cloudのユーザID | ❌ | ✅ |
DBT_TOKEN | dbt cloudの個人アクセストークンまたはサービストークン セマンティックレイヤーを使用する場合、サービストークンが必要です | ❌ | ✅ |
DBT_PROJECT_DIR | dbtプロジェクトのリポジトリがローカルにホストされている場所へのパス これは/Users/firstnamelastname/reponameのようなものです | ✅ | ✅ |
DBT_PATH | dbt Coreまたはdbt Cloud CLIの実行ファイルへのパスです dbtの実行ファイルは、whichコマンドを実行することで見つけることができます | ✅ | ✅ |
MULTICELL_ACCOUNT_PREFIX | マルチセルを使用している場合は、ACCOUNT_PREFIXを設定する マルチセルを使用していない場合は、この環境変数を設定しないでください | ❌ | マルチセル利用時のみ必須 |
DISABLE_SEMANTIC_LAYER | 「セマンティックレイヤーを無効化する」ためのフラグ dbt cloudを使わない場合はtrueを設定します。dbt-coreのみ利用する場合は必須です | ✅(必須) | ✅(任意) |
DISABLE_DISCOVERY | dbt Discovery API MCP オブジェクトを無効にするには、true を設定します dbt-coreのみ使う場合はtrueを明示的に設定する方が安全です | ✅(必須) | ✅(任意) |
DISABLE_REMOTE_TOOLS | リモートMCPオブジェクト(dbt cloud)を有効にするには、これをfalseに設定します。 dbt cloudを使わない場合はtrueにします | ✅(必須) | ✅(任意) |
Clineでセットアップしたdbt-mcpサーバを指定する
VSCodeの拡張機能からClineへアクセスします。
続いて以下スクリーンショットの手順通りにクリックします。
Configure MCP Servers
をクリックすることで以下スクリーンショットの赤枠のようにclne_mcp_settings.json
が表示されます。
最後に以下の設定をclne_mcp_settings.json
に貼り付け、<path-to-.env-file>
の値をセットアップしたdbt-mcpサーバの環境変数ファイルのパスを指定します。
clne_mcp_settings.json
の設定を保存すると、2,3秒ほど待つと、以下スクリーンショットのようにdbt-mcpサーバの文字が表示され、グリーン点灯されていればOKです。

Clineで利用するAPI Providerを指定する
今回、API ProviderはOpenAIを利用します。
以下スクリーンショットの手順通りにクリックし、API configuration
項目のAPI ProviderはOpenAI
を選択し、OpenAI API KeyにAPIキーを入力します。
Custom Instructions
はリクエストに対するレスポンスの振る舞いを設定できますのでお好みで設定ください。
例えば、レスポンスはすべて日本語で返してほしい、というようなことができます。

Clineからプロンプトを実行してみる
次のようなプロンプトを実行してみます。
dbtのhogehogeプロジェクトに対して、dbt debugコマンドを実行し、Bigqueryと疎通ができるか確認してくれますか?
実行結果として以下スクリーンショットのようになります。
スクリーンショットではわかりにくいかもしれませんが、dbt debug実行のプロンプトを投げても勝手(自動的)にdbt debugは実行されません。
コマンドの実行許可をユーザ側に委ねてくれます。これで万が一誤ったコマンド実行を依頼しても実行前に防ぐことができます。
また、スクリーンショットの黄色枠がdbt debugの実行のサマリ結果になっており、dbt debugの出力結果に不慣れな方でも、サマリを見ることで状態を把握しやすくなっています。
現段階だと、dbt-mcpサーバでは次のようなことが実行可能でした。
- dbtプロジェクトの解析
- モデルの作成
- クエリの修正対応
- 生成されたモデルをSQLファイルとして保存
- 生成されたモデルのYAMLファイルの作成
まとめ
自然言語によるプロンプトでdbtを操作できるのは非常に効率的で、開発体験が大きく向上します。
生成されたSQLやYAMLは必ず検証が必要ですが、修正依頼も簡単に行えるため実用性は高いです。
Cline + dbt-mcpサーバの組み合わせは、安全性を保ちながらAIの力を活用できる好例です。
ローカル検証と権限管理を行えば、チーム開発にも十分応用可能でしょう。
参考

備考
Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。
