

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).
- 探索血统:
- 查找节点的直接上游依赖项(前置项)(get_dbt_predecessors). - 查找节点的直接下游从属(继承者)(get_dbt_successors).
- 柱级谱系:
- 追踪模型中特定列的所有上游来源(get_column_ancestors). - 跟踪模型中特定列的所有下游依赖项(get_column_descendants).
- 建议的扩展:
- 允许执行SQL查询的工具。 - 直接从数据库检索表/视图/列元数据的工具。 - 搜索知识库的工具。
入门指南
- 先决条件: 确保你已经安装了Python 紫外线
- 克隆仓库:
git clone
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"
}
}
}
}