mcpField
D
dbt-docs-mcp

dbt-docs-mcp

本地服务
github.com/mattijsdp记忆与知识2362 周前更新

关于 dbt-docs-mcp

dbt-docs-mcp 是一个用于查询 dbt 项目元数据的 MCP 服务,基于 manifest.json 和 catalog.json 等 dbt Docs 产物。它面向需要理解 dbt 模型依赖与字段血缘的数据团队。

主要功能

  1. 01按名称、字段名或编译后 SQL 搜索节点
  2. 02查看节点的详细属性
  3. 03查询节点的直接上游与下游依赖
  4. 04追踪字段的上游来源与下游影响范围

适用场景

  1. 01查找某个模型或字段在 dbt 项目中的位置
  2. 02评估修改某个模型对下游的影响
  3. 03追踪报表字段的数据来源

MCP 相关

该项目是 MCP 服务端,将 dbt 图结构、节点详情和血缘查询以工具形式暴露给 MCP 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Verified on MseeP

Trust Score

dbt-docs-mcp

用于与 dbt 项目元数据交互的模型上下文协议(MCP)服务,包括 dbt Docs 工件(manifest.json、catalog.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. 克隆仓库:
    git clone <repository-url>
    cd dbt-docs-mcp
    
  3. 可选:解析 dbt manifest 以获取列级血缘关系:
    • 设置所需的 Python 环境,例如:
    uv sync
    
    • 使用提供的脚本 scripts/create_manifest_cl.py,并提供 dbt manifest、dbt catalog 的路径,以及 schema 和列血缘关系文件所需的输出路径:
    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,配置示例如下:
    {
        "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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。