dbt-docs
Servidor MCP para usuários do dbt-core (OSS), já que o MCP oficial do dbt só suporta dbt Cloud. Suporta metadados de projeto, linhagem em nível de modelo e coluna e documentação do dbt.
GitHub
23
Experimente este MCPPatrocinadoDocumentação
dbt-docs-mcp
Servidor Model Context Protocol (MCP) para interagir com metadados de projetos dbt, incluindo artefatos do dbt Docs (manifest.json, catalog.json). Este servidor expõe informações do grafo dbt e permite consultar detalhes de nós, linhagem de modelos/colunas e metadados relacionados.
Funcionalidades Principais
Este servidor fornece ferramentas para:
- Pesquisar nós dbt:
- Encontrar nós (modelos, fontes, testes, etc.) por nome (
search_dbt_node_names). - Localizar nós com base em nomes de colunas (
search_dbt_column_names). - Pesquisar no código SQL compilado dos nós (
search_dbt_sql_code).
- Encontrar nós (modelos, fontes, testes, etc.) por nome (
- Inspecionar nós:
- Recuperar atributos detalhados para qualquer ID exclusivo de nó (
get_dbt_node_attributes).
- Recuperar atributos detalhados para qualquer ID exclusivo de nó (
- Explorar linhagem:
- Encontrar dependências diretas a montante (predecessores) de um nó (
get_dbt_predecessors). - Encontrar dependentes diretos a jusante (sucessores) de um nó (
get_dbt_successors).
- Encontrar dependências diretas a montante (predecessores) de um nó (
- Linhagem em nível de coluna:
- Rastrear todas as fontes a montante para uma coluna específica em um modelo (
get_column_ancestors). - Rastrear todos os dependentes a jusante de uma coluna específica em um modelo (
get_column_descendants).
- Rastrear todas as fontes a montante para uma coluna específica em um modelo (
- Extensões sugeridas:
- Ferramenta que permite executar consultas SQL.
- Ferramenta que recupera metadados de tabela/visão/coluna diretamente do banco de dados.
- Ferramenta para pesquisar na base de conhecimento.
Começando
- Pré-requisitos: Certifique-se de ter Python instalado e uv
- Clone o repositório:
git clone <repository-url> cd dbt-docs-mcp - Opcional: analisar o manifest do dbt para linhagem em nível de coluna:
- Configure o ambiente Python necessário, por exemplo:
uv sync- Use o script fornecido
scripts/create_manifest_cl.pye simplesmente forneça o caminho para o seu manifest dbt, catálogo dbt e os caminhos de saída desejados para o seu esquema e arquivo de linhagem de colunas:
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- Dependendo do tamanho do seu projeto dbt, criar a linhagem de colunas pode levar um tempo (horas)
- Execute o servidor:
- Se o seu cliente MCP desejado (Claude desktop, Cursor, etc.) suporta mcp.json, ficaria assim:
{ "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" } } } }