dbt

officiel

Serveur MCP officiel pour dbt (outil de construction de données) offrant une intégration avec la CLI dbt Core/Cloud, la découverte de métadonnées de projet, les informations sur les modèles et les capacités d'interrogation de la couche sémantique.

Que pouvez-vous faire avec Dbt MCP ?

  • Interroger les métriques dbt — Demandez des définitions de métriques, des dimensions ou du SQL compilé à l'aide de list_metrics, get_dimensions ou get_metrics_compiled_sql.
  • Explorer la lignée du projet — Tracez les dépendances des modèles et les relations en amont/aval avec get_lineage ou get_related_models.
  • Exécuter des commandes dbt — Lancez run, test ou build pour matérialiser des modèles, valider des données ou construire le projet.
  • Générer du code passe-partout — Créez du YAML source, du YAML de modèle ou du SQL de staging via generate_source, generate_model_yaml ou generate_staging_model.
  • Surveiller les exécutions de travaux — Vérifiez le statut, les erreurs ou les artefacts à l'aide de get_job_run_details, get_job_run_error ou list_job_run_artifacts.
  • Inspecter les détails des nœuds — Récupérez les métadonnées complètes pour tout type de ressource avec get_node_details, y compris les modèles, les sources et les tests.

Documentation

Serveur MCP dbt

OpenSSF Best Practices

Ce serveur MCP (Model Context Protocol) fournit divers outils pour interagir avec dbt. Vous pouvez utiliser ce serveur MCP pour fournir aux agents IA le contexte de votre projet dans dbt Core, dbt Fusion et dbt Platform.

Lisez notre documentation ici pour en savoir plus. Cet article de blog fournit plus de détails sur ce qui est possible avec le serveur MCP dbt.

Bundle MCP expérimental

Nous publions un bundle expérimental Model Context Protocol (dbt-mcp.mcpb) avec chaque version afin que les clients compatibles MCPB puissent importer ce serveur sans configuration supplémentaire. Téléchargez le bundle depuis les ressources de la dernière version et suivez la documentation du CLI mcpb d'Anthropic pour l'installer ou l'inspecter.

Retour d'expérience

Si vous avez des commentaires ou des questions, créez un problème GitHub ou rejoignez-nous dans le Slack communautaire dans le canal #tools-dbt-mcp.

Architecture

L'architecture du serveur MCP dbt permet à votre agent de se connecter à une variété d'outils.

architecture diagram of the dbt MCP server

Outils

SQL

Outils pour exécuter et générer du SQL sur l'infrastructure dbt Platform.

  • execute_sql : Exécute du SQL sur l'infrastructure dbt Platform avec prise en charge de la couche sémantique.
  • text_to_sql : Génère du SQL à partir du langage naturel en utilisant le contexte du projet.

Couche sémantique

Pour en savoir plus sur la couche sémantique dbt, cliquez ici.

  • get_dimension_values : Obtient des valeurs distinctes pour une dimension ; option pour limiter à des métriques spécifiques.
  • get_dimensions : Obtient les dimensions pour les métriques spécifiées.
  • get_entities : Obtient les entités pour les métriques spécifiées.
  • get_metrics_compiled_sql : Renvoie le SQL compilé pour les métriques sans exécuter la requête.
  • list_metrics : Récupère toutes les métriques définies.
  • list_saved_queries : Récupère toutes les requêtes enregistrées.
  • query_metrics : Exécute des requêtes de métriques avec des options de filtrage et de regroupement.

Découverte

Pour en savoir plus sur l'API de découverte dbt, cliquez ici.

  • get_all_macros : Récupère les macros ; option pour filtrer par package ou renvoyer uniquement les noms de packages.
  • get_all_models : Récupère le nom et la description de tous les modèles.
  • get_all_sources : Obtient toutes les sources avec le statut de fraîcheur ; option pour filtrer par nom de source.
  • get_exposure_details : (obsolète — utilisez get_node_details à la place)
  • get_exposures : Obtient toutes les expositions (tableaux de bord en aval, applications ou analyses).
  • get_lineage : Obtient un graphe de lignage limité avec filtrage par type, profondeur et direction.
  • get_macro_details : (obsolète — utilisez get_node_details à la place)
  • get_mart_models : Récupère tous les modèles mart.
  • get_model_children : (obsolète — utilisez get_lineage à la place)
  • get_model_details : (obsolète — utilisez get_node_details à la place)
  • get_model_health : Obtient les signaux de santé : statut d'exécution, résultats de tests et fraîcheur des sources en amont.
  • get_model_parents : (obsolète — utilisez get_lineage à la place)
  • get_model_performance : Obtient l'historique d'exécution d'un modèle ; option pour inclure les résultats de tests.
  • get_node_details : Obtient les détails complets pour tout type de ressource dbt (modèle, source, exposition, test, seed, snapshot, macro, modèle sémantique).
  • get_related_models : Trouve des modèles similaires en utilisant la recherche sémantique.
  • get_seed_details : (obsolète — utilisez get_node_details à la place)
  • get_semantic_model_details : (obsolète — utilisez get_node_details à la place)
  • get_snapshot_details : (obsolète — utilisez get_node_details à la place)
  • get_source_details : (obsolète — utilisez get_node_details à la place)
  • get_test_details : (obsolète — utilisez get_node_details à la place)
  • search : [Alpha] Recherche des ressources dans le projet dbt (pas généralement disponible).

CLI dbt

Permettre à votre client d'utiliser les commandes dbt via l'outillage MCP pourrait modifier vos modèles de données, sources et objets d'entrepôt. Procédez uniquement si vous faites confiance au client et comprenez l'impact potentiel.

  • build : Exécute les modèles, tests, snapshots et seeds dans l'ordre du DAG.
  • clone : Clone les nœuds sélectionnés depuis l'état spécifié vers le(s) schéma(s) cible(s).
  • compile : Génère du SQL exécutable à partir de modèles/tests/analyses ; utile pour valider la logique Jinja.
  • docs : Génère la documentation pour le projet dbt.
  • get_lineage_dev : Récupère le lignage depuis le manifest.json local avec filtrage par type et profondeur.
  • get_node_details_dev : Récupère les détails des nœuds depuis le manifest.json local (modèles, seeds, snapshots, sources).
  • list : Liste les ressources dans le projet dbt par type avec prise en charge des sélecteurs.
  • parse : Analyse et valide les fichiers du projet pour la correction syntaxique.
  • run : Exécute les modèles pour les matérialiser dans la base de données.
  • show : Exécute du SQL contre la base de données et renvoie les résultats.
  • test : Exécute des tests pour valider l'intégrité des données et des modèles.

API d'administration

Pour en savoir plus sur l'API administrative dbt, cliquez ici.

  • cancel_job_run : Annule un travail en cours d'exécution.
  • get_job_details : Obtient la configuration du travail, y compris les déclencheurs, le calendrier et les commandes dbt.
  • get_job_run_artifacts : Télécharge un artefact spécifique depuis une exécution de travail ; les grands artefacts renvoient un message d'orientation pour réessayer avec un jq_filter ; prend en charge le filtrage jq pour une extraction ciblée.
  • get_job_run_details : Obtient les détails de l'exécution, y compris le statut, le calendrier, les étapes et les artefacts.
  • get_job_run_error : Obtient les détails des erreurs et/ou avertissements pour une exécution de travail ; option pour inclure ou afficher uniquement les avertissements.
  • list_job_run_artifacts : Liste les artefacts disponibles depuis une exécution de travail.
  • list_jobs : Liste les travaux dans un compte dbt Platform ; option pour filtrer par projet ou environnement.
  • list_jobs_runs : Liste les exécutions de travaux ; option pour filtrer par travail, statut ou champ de tri.
  • list_projects : Liste tous les projets dans le compte dbt Platform.
  • retry_job_run : Réessaie une exécution de travail ayant échoué.
  • trigger_job_run : Déclenche une exécution de travail ; option pour remplacer la branche git, le schéma ou d'autres paramètres.

Codegen dbt

Ces outils aident à automatiser la génération de code passe-partout pour les fichiers de projet dbt.

  • generate_model_yaml : Génère le YAML du modèle avec les colonnes ; option pour hériter des descriptions en amont.
  • generate_source : Génère le YAML de source en inspectant les schémas de base de données ; option pour inclure les colonnes.
  • generate_staging_model : Génère le SQL du modèle de staging à partir d'une table source.

LSP dbt

Un ensemble d'outils qui exploitent le moteur Fusion pour la compilation SQL avancée et l'analyse de lignage au niveau des colonnes.

  • fusion.compile_sql : Compile le SQL dans le contexte du projet via dbt Platform.
  • fusion.get_column_lineage : Trace le lignage au niveau des colonnes via dbt Platform.
  • get_column_lineage : Trace le lignage au niveau des colonnes localement (nécessite dbt-lsp via dbt Labs VSCE).

Documentation produit

Outils pour rechercher et récupérer du contenu depuis la documentation officielle dbt sur docs.getdbt.com.

  • get_product_doc_pages : Récupère le contenu Markdown complet d'une ou plusieurs pages docs.getdbt.com par chemin ou URL.
  • search_product_docs : Recherche sur docs.getdbt.com les pages correspondant à une requête ; renvoie les titres, URLs et descriptions classés par pertinence. Utilisez get_product_doc_pages pour récupérer le contenu complet.

Métadonnées du serveur MCP

Ces outils fournissent des informations sur le serveur MCP lui-même.

  • get_mcp_server_branch : Renvoie la branche git actuelle du serveur MCP dbt en cours d'exécution.
  • get_mcp_server_version : Renvoie la version actuelle du serveur MCP dbt.

Exemples

Généralement, vous connecterez le serveur MCP dbt à un produit agent comme Claude ou Cursor. Cependant, si vous êtes intéressé par la création de votre propre agent, consultez le répertoire d'exemples pour savoir comment commencer.

Dépendances

Les dépendances sont épinglées à des versions spécifiques et ne sont pas mises à jour automatiquement. Seules les mises à jour de dépendances liées à la sécurité sont soumises via des demandes de tirage automatisées.

Contribution

Lisez CONTRIBUTING.md pour les instructions sur la façon de vous impliquer !