mcpField
D
dbt-docs-mcp

dbt-docs-mcp

ローカル
github.com/mattijsdpメモリ・ナレッジ2362 週間前に更新

dbt-docs-mcp について

dbt-docs-mcp は manifest.json や catalog.json などの dbt Docs 成果物から dbt プロジェクトのメタデータを照会する MCP サーバーです。モデルの依存関係やカラムのリネージを把握したいデータチーム向けです。

主な機能

  1. 01名前、カラム名、コンパイル済み SQL によるノード検索
  2. 02ノード ID ごとの詳細属性の取得
  3. 03直接の上流・下流依存関係の照会
  4. 04カラム単位の祖先と子孫の追跡

活用シーン

  1. 01dbt プロジェクト内でのモデルやカラムの定義箇所の特定
  2. 02モデル変更が下流に与える影響の評価
  3. 03レポートのカラムに対応するデータソースの追跡

MCP 対応

本プロジェクトは MCP サーバーであり、dbt のグラフ構造、ノード詳細、リネージ照会を MCP クライアントへツールとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MseeP で検証済み

信頼スコア

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)。
  • リネージの確認:
    • ノードの直接的な上流依存関係(先行ノード)を検索します(get_dbt_predecessors)。
    • ノードの直接的な下流依存先(後続ノード)を検索します(get_dbt_successors)。
  • 列レベルのリネージ:
    • モデル内の特定の列について、すべての上流ソースをたどります(get_column_ancestors)。
    • モデル内の特定の列について、すべての下流依存先をたどります(get_column_descendants)。
  • 拡張案:
    • SQL クエリを実行できるツール。
    • データベースからテーブル/ビュー/列のメタデータを直接取得するツール。
    • ナレッジベースを検索するツール。

はじめに

  1. 前提条件: Python がインストールされていることと、uv を使用できることを確認してください。
  2. リポジトリをクローンします:
    git clone <repository-url>
    cd dbt-docs-mcp
    
  3. 任意:列レベルのリネージ用に 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 プロジェクトの規模によっては、列リネージの作成に時間(数時間)がかかる場合があります。
  4. サーバーを実行します:
    • 使用する 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"
            }
            }
        }
    }
    

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。