使用说明
dbt文档mcp
用于与dbt项目元数据(包括dbt文档工件)交互的模型上下文协议(MCP)服务器(manifest.json, catalog.json).此服务器公开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 紫外线
- 克隆仓库:
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" } } } }