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.

Documentação

Verified on MseeP

Trust Score

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).
  • Inspecionar nós:
    • Recuperar atributos detalhados para qualquer ID exclusivo de nó (get_dbt_node_attributes).
  • 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).
  • 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).
  • 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

  1. Pré-requisitos: Certifique-se de ter Python instalado e uv
  2. Clone o repositório:
    git clone <repository-url>
    cd dbt-docs-mcp
    
  3. 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.py e 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)
  4. 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"
            }
            }
        }
    }