dbt-docs
Servidor MCP para usuarios de dbt-core (OSS), ya que el MCP oficial de dbt solo es compatible con dbt Cloud. Admite metadatos de proyectos, linaje a nivel de modelos y columnas, y documentación de dbt.
GitHub
23
Prueba este MCPPatrocinadoDocumentación
dbt-docs-mcp
Servidor de Model Context Protocol (MCP) para interactuar con metadatos de proyectos dbt, incluidos los artefactos de dbt Docs (manifest.json, catalog.json). Este servidor expone la información del grafo de dbt y permite consultar detalles de nodos, linaje de modelos/columnas y metadatos relacionados.
Funcionalidad Clave
Este servidor proporciona herramientas para:
- Buscar Nodos de dbt:
- Encontrar nodos (modelos, fuentes, pruebas, etc.) por nombre (
search_dbt_node_names). - Localizar nodos basándose en nombres de columnas (
search_dbt_column_names). - Buscar dentro del código SQL compilado de los nodos (
search_dbt_sql_code).
- Encontrar nodos (modelos, fuentes, pruebas, etc.) por nombre (
- Inspeccionar Nodos:
- Recuperar atributos detallados para cualquier ID único de nodo dado (
get_dbt_node_attributes).
- Recuperar atributos detallados para cualquier ID único de nodo dado (
- Explorar Linaje:
- Encontrar dependencias ascendentes directas (predecesores) de un nodo (
get_dbt_predecessors). - Encontrar dependientes descendentes directos (sucesores) de un nodo (
get_dbt_successors).
- Encontrar dependencias ascendentes directas (predecesores) de un nodo (
- Linaje a Nivel de Columna:
- Rastrear todas las fuentes ascendentes para una columna específica en un modelo (
get_column_ancestors). - Rastrear todos los dependientes descendentes de una columna específica en un modelo (
get_column_descendants).
- Rastrear todas las fuentes ascendentes para una columna específica en un modelo (
- Extensiones sugeridas:
- Herramienta que permita ejecutar consultas SQL.
- Herramienta que recupere metadatos de tablas/vistas/columnas directamente de la base de datos.
- Herramienta para buscar en la base de conocimientos.
Primeros Pasos
- Requisitos previos: Asegúrate de tener Python instalado y uv
- Clona el repositorio:
git clone <repository-url> cd dbt-docs-mcp - Opcional: analiza el manifiesto de dbt para linaje a nivel de columna:
- Configura el entorno de Python requerido, por ejemplo:
uv sync- Usa el script proporcionado
scripts/create_manifest_cl.pyy simplemente proporciona la ruta a tu manifiesto de dbt, catálogo de dbt y las rutas de salida deseadas para tu esquema y archivo de linaje de columnas:
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- Dependiendo del tamaño de tu proyecto dbt, crear el linaje de columnas puede llevar un tiempo (horas)
- Ejecuta el Servidor:
- Si tu cliente MCP deseado (Claude desktop, Cursor, etc.) admite mcp.json, se vería como a continuación:
{ "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" } } } }