返回市场
数据库文档MCP

数据库文档MCP

作者:mattijsdp21 星标更新:2025-08-20

项目介绍

已验证于 MseeP

信任评分

dbt-docs-mcp

用于与 dbt 项目元数据交互的 Model Context Protocol (MCP) 服务器,包括 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. 克隆仓库:
    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 桌面版、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"
            }
            }
        }
    }