d

dbt多云文档

@mattijsdp/dbt-docs-mcp
0 Stars 21 次浏览 mattijsdp 更新于 2026-08-23

语言类型:英语 翻译结果:dbt文档-多云平台

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "DBT Docs MCP": {
      "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"
      ],
      "command": "uv",
      "env": {
        "MANIFEST_CL_PATH": "/Users/mattijs/repos/dbt-docs-mcp/outputs/manifest_column_lineage.json",
        "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、MANIFEST_PATH、SCHEMA_MAPPING_PATH

服务介绍

dbt-docs-mcp

Model Context Protocol (MCP) 服务器,用于与 dbt 项目元数据进行交互,包括 dbt 文档工件(manifest.jsoncatalog.json)。该服务器公开了 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. 克隆仓库:
    bash
    git clone
    cd dbt-docs-mcp

  3. 可选:解析 dbt 清单以获取列级别的血缘关系:

    • 设置所需的 Python 环境,例如:
      bash
      uv sync

    • 使用提供的脚本 scripts/create_manifest_cl.py 并提供您的 dbt 清单路径、dbt 目录路径以及您希望输出的模式映射文件和清单列血缘关系文件的路径:
      bash
      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 桌面版、Cursor 等)支持 mcp.json,则配置如下所示:
      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 服务