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 ?

  • Explorez les modèles de données de votre projet dbt — demandez tous les modèles avec get_all_models, puis inspectez les détails complets de n'importe quel nœud via get_node_details.
  • Tracez la lignée amont et aval — utilisez get_lineage pour voir les ancêtres et descendants d'un modèle, filtrés par type et profondeur.
  • Interrogez les métriques via la couche sémantique — listez les métriques disponibles avec list_metrics, puis exécutez des requêtes de métriques filtrées et groupées via query_metrics.
  • Vérifiez l'état et les performances des modèles — récupérez le statut d'exécution, les résultats des tests et la fraîcheur des sources avec get_model_health, ou obtenez l'historique d'exécution via get_model_performance.
  • Générez le code de base du projet — créez du YAML de modèle, du YAML de source ou du SQL de modèle de staging en utilisant generate_model_yaml, generate_source et generate_staging_model.
  • Gérez les jobs dbt Cloud — listez et déclenchez des jobs avec list_jobs et trigger_job_run, puis inspectez les détails ou artefacts d'exécution en utilisant get_job_run_details et list_job_run_artifacts.

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.

Consultez 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 Model Context Protocol expérimental (dbt-mcp.mcpb) à chaque version afin que les clients compatibles MCPB puissent importer ce serveur sans configuration supplémentaire. Téléchargez le bundle depuis les assets de la dernière version et suivez la documentation de la mcpb CLI d'Anthropic pour l'installer ou l'inspecter.

Retour d'information

Si vous avez des commentaires ou des questions, créez une Issue GitHub ou rejoignez-nous sur 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 les valeurs distinctes d'une dimension ; possibilité de limiter à des métriques spécifiques.
  • get_dimensions : Obtient les dimensions pour des métriques spécifiées.
  • get_entities : Obtient les entités pour des 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 sauvegardé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 ; possibilité de filtrer par package ou de renvoyer uniquement les noms de package.
  • 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 ; possibilité de 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, applications ou analyses en aval).
  • get_lineage : Obtient le graphe de lignage complet (ancêtres et descendants) avec filtrage par type et profondeur.
  • get_macro_details : (obsolète — utilisez get_node_details à la place)
  • get_mart_models : Récupère tous les modèles de 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 des 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 ; possibilité d'inclure les résultats des tests.
  • get_node_details : Obtient tous les détails pour tout type de ressource dbt (modèle, source, exposition, test, seed, snapshot, macro, semantic_model).
  • 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 (non disponible généralement).

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. Ne procédez que 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 de l'état spécifié vers le(s) schéma(s) cible(s).
  • compile : Génère du SQL exécutable à partir des modèles/tests/analyses ; utile pour valider la logique Jinja.
  • docs : Génère la documentation du projet dbt.
  • get_lineage_dev : Récupère le lignage à partir du manifest.json local avec filtrage par type et profondeur.
  • get_node_details_dev : Récupère les détails des nœuds à partir du manifest.json local (modèles, seeds, snapshots, sources).
  • list : Liste les ressources du 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 sur la base de données et renvoie les résultats.
  • test : Exécute les tests pour valider l'intégrité des données et des modèles.

API d'administration

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

  • cancel_job_run : Annule une tâche en cours d'exécution.
  • get_job_details : Obtient la configuration de la tâche, y compris les déclencheurs, la planification et les commandes dbt.
  • get_job_run_details : Obtient les détails de l'exécution, y compris le statut, le timing, les étapes et les artefacts.
  • get_job_run_error : Obtient les détails des erreurs et/ou avertissements pour une exécution de tâche ; possibilité d'inclure ou d'afficher uniquement les avertissements.
  • list_job_run_artifacts : Liste les artefacts disponibles d'une exécution de tâche.
  • list_jobs : Liste les tâches dans un compte dbt Platform ; possibilité de filtrer par projet ou environnement.
  • list_jobs_runs : Liste les exécutions de tâches ; possibilité de filtrer par tâche, statut ou de trier par champ.
  • list_projects : Liste tous les projets du compte dbt Platform.
  • retry_job_run : Relance une exécution de tâche ayant échoué.
  • trigger_job_run : Déclenche une exécution de tâche ; possibilité de remplacer la branche git, le schéma ou d'autres paramètres.

dbt Codegen

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

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

dbt LSP

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 de recherche et de récupération de contenu de 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, URL 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 souhaitez créer votre propre agent, consultez le répertoire d'exemples pour savoir comment démarrer.

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 pull requests automatisées.

Contribuer

Lisez CONTRIBUTING.md pour savoir comment vous impliquer !