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 — Demandez à l'assistant d'exécuter des requêtes de métriques avec filtrage et regroupement via query_metrics, ou de lister les métriques définies avec list_metrics.
  • Explorer la lignée des modèles — Demandez un graphe de lignée borné avec des filtres de type, de profondeur et de direction en utilisant get_lineage.
  • Vérifier l'état de santé des modèles — Demandez le statut d'exécution, les résultats des tests et la fraîcheur des sources en amont pour un modèle avec get_model_health.
  • Exécuter des commandes dbt — Demandez à l'assistant d'exécuter build, run, test, compile ou show sur votre projet.
  • Gérer les exécutions de jobs — Déclenchez, relancez, annulez ou inspectez les exécutions de jobs dbt Platform et leurs artefacts.
  • Générer du code standard — Créez du YAML de modèle, du YAML de source ou du SQL de modèle de staging avec generate_model_yaml, generate_source et generate_staging_model.

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 à des 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 Model Context Protocol Bundle 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 ressources de la dernière version et consultez la documentation de la CLI mcpb d'Anthropic pour l'installer ou l'inspecter.

Retours

Si vous avez des commentaires ou des questions, créez une GitHub Issue ou rejoignez-nous sur le Slack de la communauté 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 Semantic Layer.
  • text_to_sql : Génère du SQL à partir du langage naturel en utilisant le contexte du projet.

Semantic Layer

Pour en savoir plus sur la dbt Semantic Layer, cliquez ici.

  • get_dimension_values : Obtient les valeurs distinctes d'une dimension ; option pour restreindre à des métriques spécifiques.
  • get_dimensions : Obtient les dimensions des métriques spécifiées.
  • get_entities : Obtient les entités des métriques spécifiées.
  • get_metrics_compiled_sql : Renvoie le SQL compilé des 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.

Discovery

Pour en savoir plus sur l'API dbt Discovery, 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 leur 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, applications ou analyses en aval).
  • get_lineage : Obtient un graphe de lignage borné 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 de type 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 ; option pour inclure les résultats des tests.
  • get_node_details : Obtient les détails complets de tout type de ressource dbt (model, source, exposure, test, seed, snapshot, macro, semantic_model).
  • get_related_models : Trouve des modèles similaires à l'aide de 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 l'ensemble du projet dbt (non disponible de manière générale).
  • search_public_mesh_models : Trouve des modèles dbt Mesh publics entre projets et confirme l'identité du producteur afin que vous puissiez créer une ref inter-projets vérifiée (configurations multi-projets uniquement).

CLI dbt

Permettre à votre client d'utiliser les commandes dbt via les outils MCP pourrait modifier vos modèles de données, vos sources et les objets de votre entrepôt. Ne poursuivez 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 depuis 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 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 (models, 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 en vérifier la syntaxe.
  • 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 les données et l'intégrité des modèles.

API Admin

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

  • cancel_job_run : Annule une exécution de job en cours.
  • get_job_details : Obtient la configuration du job, y compris les déclencheurs, la planification et les commandes dbt.
  • get_job_run_artifacts : Télécharge un artefact spécifique d'une exécution de job ; les artefacts volumineux 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, la chronologie, les étapes et les artefacts.
  • get_job_run_error : Obtient les détails des erreurs et/ou avertissements d'une exécution de job ; option pour inclure les avertissements ou n'afficher qu'eux.
  • list_job_run_artifacts : Liste les artefacts disponibles d'une exécution de job.
  • list_jobs : Liste les jobs d'un compte dbt Platform ; option pour filtrer par projet ou environnement.
  • list_jobs_runs : Liste les exécutions de jobs ; option pour filtrer par job, statut ou trier par champ.
  • list_projects : Liste tous les projets du compte dbt Platform.
  • retry_job_run : Relance une exécution de job échouée.
  • trigger_job_run : Déclenche une exécution de job ; option pour remplacer la branche git, le schéma ou d'autres paramètres.

dbt Codegen

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 introspectant les schémas de la 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 du lignage au niveau des colonnes.

  • fusion.compile_sql : Compile du 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 de 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

Le plus souvent, vous connecterez le serveur MCP dbt à un produit d'agent comme Claude ou Cursor. Cependant, si vous souhaitez créer votre propre agent, consultez le répertoire des 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.

Contribution

Lisez CONTRIBUTING.md pour savoir comment participer !

Consultez les entrées des outils et le contexte résolu pour les déclarations de sélecteurs et les contrats de mappage de contexte.