dbt mcp serverをdbt coreに対して使う方法


dbt core(dbt cloud使ってない)ユーザー向けのエディタでの設定。初期設定の情報が公式ドキュメント含めちょっと難しかったため残しておく

エディタのチャットで動かしてみたまでのメモ

環境

  • mac: 26.1
  • python: 3.11
  • uv: 0.6
  • dbt: 1.9

dbt-mcpの設定

ローカルセットアップの記事を参考にした。remote mcp serverのセットアップページもあるがこちらはdbt cloud向けのもの

https://docs.getdbt.com/docs/dbt-ai/setup-local-mcp

install

  1. Install uv to be able to run dbt-mcp and related dependencies into an isolated virtual environment.

説明が簡素すぎてインストールからつまづいたが、uvコマンドをinstallして uvx dbt-mcp するとよい

と思ったけど、たいていエディタで設定して使うので、専用のページみると理解しやすい。この記事に書いていることはおおよそ書いてありそう

https://docs.getdbt.com/docs/dbt-ai/integrate-mcp-vscode

設定ファイル

envファイル

DBT_PROJECT_DIRはprefectと統合しているため、ルート内のdbt_project内においている DBT_PATHはuv使っているならば直下の.venv内にdbtコマンドのパスがあるはず

どちらも絶対パス

各種ツールのDISABLEはなくても良さそう(起動はする)けどなんとなくいれておく

# .env.dbt
 
DBT_PROJECT_DIR="/Users/uni/repos/prefect_workflows/dbt_project"
DBT_PATH="/Users/uni/repos/prefect_workflows/.venv/bin/dbt"
DBT_CLI_TIMEOUT=60 # default
DISABLE_SEMANTIC_LAYER=true
DISABLE_DISCOVERY=true
DISABLE_REMOTE_TOOLS=true
 
# for bigquery
BIGQUERY_PROJECT_ID="xxxx-xxxxxx"

接続先をbigqueryにしているのだが、dbt-mcpのlistツール実行時にエラーが出たので、envにBIGQUERY_PROJECT_IDを追加している

03:15:33 Encountered an error: Parsing Error Env var required but not provided: 'BIGQUERY_PROJECT_ID’
mcp serverの設定

mcp.jsonなどに追加。.envファイルの指定も絶対パス

{
    "servers": {
        "dbt-mcp": {
            "command": "uvx",
            "args": [
                "--env-file",
                "/Users/uni/repos/configs/.env.dbt",
                "dbt-mcp"
            ]
        }
    }
}

動作確認

vscodeで起動して有効化されていることを確認

単純なlistをやってみる

  • mcp toolsを利用

model一覧から対象を探している

dbt-mcp-list-model

  • mcp toolsエラー時の挙動

dbt listのコマンドでエラーになった。ツール利用(コマンド実行)するまでわからないもんなんだな、あたりまえか

error-dbt-mcp-not-set-env

そのまま続けてファイルを検索し始めた

キャプチャにすると縦長になるため省略したが、適当なワードで検索して辿っている

Searched for pv in ~/dev/prefect with extensions sql

今回の質問内容では、どちらも同じモデル(int_pv, metrics)を探し当てて解説したので問題なさそう

しかし、推測のみでファイル検索するよりも、ツールを使ってmodel一覧から推測するほうが精度は高いだろうなと思われる

人間もファイル検索から探索やりがちなので、modelをlistするのも選択肢に入れておくとよさげである

参考

uvxについて。なんだろうと思ったけど、名前から何となく分かる通りnpxみたいなやつ

dbt-mcp serverのリポジトリtoolsなども乗っている

vscode向けの、とても丁寧