dbt-docs-mcp について
dbt-docs-mcp は manifest.json や catalog.json などの dbt Docs 成果物から dbt プロジェクトのメタデータを照会する MCP サーバーです。モデルの依存関係やカラムのリネージを把握したいデータチーム向けです。
主な機能
- 01名前、カラム名、コンパイル済み SQL によるノード検索
- 02ノード ID ごとの詳細属性の取得
- 03直接の上流・下流依存関係の照会
- 04カラム単位の祖先と子孫の追跡
活用シーン
- 01dbt プロジェクト内でのモデルやカラムの定義箇所の特定
- 02モデル変更が下流に与える影響の評価
- 03レポートのカラムに対応するデータソースの追跡
MCP 対応
本プロジェクトは MCP サーバーであり、dbt のグラフ構造、ノード詳細、リネージ照会を MCP クライアントへツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
dbt-docs-mcp
dbt Docs のアーティファクト(manifest.json、catalog.json)を含む、dbt プロジェクトのメタデータを操作するための Model Context Protocol(MCP)サーバーです。このサーバーは dbt グラフ情報を公開し、ノードの詳細、モデル/列のリネージ、関連メタデータを照会できます。
主な機能
このサーバーは次のツールを提供します。
- dbt ノードの検索:
- 名前でノード(モデル、ソース、テストなど)を検索します(
search_dbt_node_names)。 - 列名を基にノードを検索します(
search_dbt_column_names)。 - ノードのコンパイル済み SQL コードを検索します(
search_dbt_sql_code)。
- 名前でノード(モデル、ソース、テストなど)を検索します(
- ノードの調査:
- 指定したノードの一意の ID に関する詳細な属性を取得します(
get_dbt_node_attributes)。
- 指定したノードの一意の ID に関する詳細な属性を取得します(
- リネージの確認:
- ノードの直接的な上流依存関係(先行ノード)を検索します(
get_dbt_predecessors)。 - ノードの直接的な下流依存先(後続ノード)を検索します(
get_dbt_successors)。
- ノードの直接的な上流依存関係(先行ノード)を検索します(
- 列レベルのリネージ:
- モデル内の特定の列について、すべての上流ソースをたどります(
get_column_ancestors)。 - モデル内の特定の列について、すべての下流依存先をたどります(
get_column_descendants)。
- モデル内の特定の列について、すべての上流ソースをたどります(
- 拡張案:
- SQL クエリを実行できるツール。
- データベースからテーブル/ビュー/列のメタデータを直接取得するツール。
- ナレッジベースを検索するツール。
はじめに
- 前提条件: Python がインストールされていることと、uv を使用できることを確認してください。
- リポジトリをクローンします:
git clone <repository-url> cd dbt-docs-mcp - 任意:列レベルのリネージ用に dbt マニフェストを解析します:
- 次のように、必要な Python 環境をセットアップします。
uv sync- 用意されているスクリプト
scripts/create_manifest_cl.pyを使用し、dbt マニフェストと dbt カタログへのパス、およびスキーマと列リネージファイルの出力先を指定します。
python scripts/create_manifest_cl.py --manifest-path PATH_TO_YOUR_MANIFEST_FILE --catalog-path PATH_TO_YOUR_CATALOG_FILE --schema-mapping-path DESIRED_OUTPUT_PATH_FOR_SCHEMA_MAPPING --manifest-cl-path DESIRED_OUTPUT_PATH_FOR_MANIFEST_CL- dbt プロジェクトの規模によっては、列リネージの作成に時間(数時間)がかかる場合があります。
- サーバーを実行します:
- 使用する MCP クライアント(Claude desktop、Cursor など)が mcp.json に対応している場合、設定は次のようになります。
{ "mcpServers": { "DBT Docs MCP": { "command": "uv", "args": [ "run", "--with", "networkx,mcp[cli],rapidfuzz,dbt-core,python-decouple,sqlglot,tqdm", "mcp", "run", "/Users/mattijs/repos/dbt-docs-mcp/src/mcp_server.py" ], "env": { "MANIFEST_PATH": "/Users/mattijs/repos/dbt-docs-mcp/inputs/manifest.json", "SCHEMA_MAPPING_PATH": "/Users/mattijs/repos/dbt-docs-mcp/outputs/schema_mapping.json", "MANIFEST_CL_PATH": "/Users/mattijs/repos/dbt-docs-mcp/outputs/manifest_column_lineage.json" } } } }
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。