/ Annuaire / Playground / dbt
● Officiel dbt-labs 🔑 Nécessite votre clé

dbt

par dbt-labs · dbt-labs/dbt-mcp

Inspectez votre projet dbt et vos tâches Cloud depuis un agent — généalogie, santé du modèle, requêtes de métriques et exécutions CLI, tout en un seul MCP.

MCP officiel de dbt Labs pour dbt Core, dbt Fusion et dbt Cloud/Platform. Lisez les métadonnées du modèle/source/exposition, interrogez la Semantic Layer, déclenchez des tâches dbt Cloud et exécutez des commandes dbt CLI (build, test, run). Couvre l'ensemble du « quoi, où, pourquoi » d'un pipeline de données.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

dbt.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "dbt": {
      "command": "uvx",
      "args": [
        "dbt-mcp"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "dbt": {
      "command": "uvx",
      "args": [
        "dbt-mcp"
      ]
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "dbt": {
      "command": "uvx",
      "args": [
        "dbt-mcp"
      ]
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "dbt": {
      "command": "uvx",
      "args": [
        "dbt-mcp"
      ]
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "dbt",
      "command": "uvx",
      "args": [
        "dbt-mcp"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "dbt": {
      "command": {
        "path": "uvx",
        "args": [
          "dbt-mcp"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add dbt -- uvx dbt-mcp

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : dbt

Diagnostiquer pourquoi un modèle dbt échoue et proposer une correction

👤 Ingénieurs analytiques ⏱ ~15 min intermediate

Quand l'utiliser : Une exécution dbt programmée a échoué. Vous avez besoin de savoir ce qui s'est cassé et pourquoi, sans ouvrir 5 interfaces.

Prérequis
  • Compte dbt Cloud + token de service — dbt Cloud → Profile → API Tokens
  • Checkout du projet dbt local (si utilisation des outils CLI) — git clone your dbt repo
Déroulement
  1. Trouvez l'exécution échouée
    Listez mes 10 dernières exécutions de tâches dans dbt Cloud. Montrez lesquelles ont échoué et leur résumé d'erreur.✓ Copié
    → ID d'exécutions échouées avec timestamps
  2. Approfondissez le modèle échoué
    Pour l'exécution échouée, quel modèle a échoué en premier ? Obtenez ses détails (SQL, description) et sa généalogie en amont.✓ Copié
    → Modèle échoué + chaîne de dépendances
  3. Proposer une correction
    Exécutez le modèle localement avec dbt compile. Inspectez le SQL compilé pour trouver l'erreur. Proposez l'édition minimale pour corriger.✓ Copié
    → Correction SQL concrète avec justification

Résultat : Une correction validée pour un modèle cassé en moins de 15 minutes.

Pièges
  • Les échecs d'exécution Cloud peuvent être environnementaux (connexion/identifiants), pas du code — Avant de modifier le SQL, vérifiez si le même modèle s'exécute localement via l'outil run — si oui, c'est de l'infra pas du code
Combiner avec : sentry · linear

Répondre à une question métier en utilisant la dbt Semantic Layer

👤 Ingénieurs analytiques enablement self-serve ⏱ ~10 min beginner

Quand l'utiliser : Un stakeholder demande « quel était le MRR par plan le mois dernier ? » — vous avez des métriques définies dans dbt SL.

Prérequis
  • Semantic Layer activée sur votre projet dbt Platform — dbt Cloud → Account Settings → Semantic Layer
Déroulement
  1. Trouvez la métrique
    Listez les métriques disponibles dans notre SL. Je cherche MRR ou monthly_revenue.✓ Copié
    → Métrique correspondante trouvée
  2. Vérifiez les dimensions
    Par quelles dimensions la métrique MRR peut-elle être interrogée ? Je veux filtrer/grouper par plan et mois.✓ Copié
    → Liste de dimensions valides
  3. Interroger et interpréter
    Interrogez MRR pour le mois dernier, groupé par plan. Formatez le résultat sous forme de tableau et commentez les contributeurs principaux.✓ Copié
    → Tableau + brève analyse

Résultat : Le stakeholder obtient une réponse de confiance et gouvernée en 2 minutes ; personne n'a écrit de SQL ad hoc.

Pièges
  • Interroger par une dimension non prise en charge retourne un vide sans erreur claire — Appelez toujours get_dimensions sur la métrique en premier ; ne présumez pas
Combiner avec : notion

Vérifier l'impact avant de modifier un modèle central

👤 Ingénieurs analytiques sur le point de toucher à un modèle fondateur ⏱ ~20 min intermediate

Quand l'utiliser : Vous êtes sur le point de changer dim_customers. Vous avez besoin de connaître tous les consommateurs en aval en premier.

Déroulement
  1. Obtenez la généalogie
    Obtenez la généalogie en aval pour dim_customers. Incluez les modèles, expositions et toutes les métriques.✓ Copié
    → Graphique aval complet
  2. Quantifier l'impact
    Pour chaque modèle en aval, obtenez sa model_performance et model_health — lesquels sont critiques (utilisés par les expositions, exécutés quotidiennement) ?✓ Copié
    → Liste de priorité de ce qui se cassera si vous vous trompez
  3. Planifier le changement
    Écrivez un plan de changement : quels tests ajouter, quels propriétaires en aval notifier (vérifiez les expositions) et quoi surveiller après le déploiement.✓ Copié
    → Plan de déploiement

Résultat : Les modifications apportées aux modèles partagés se déploient avec awareness, pas de surprises de rayon de souffle.

Pièges
  • Les expositions n'existent que si vous les maintenez — les consommateurs silencieux en aval dans les outils BI ne sont pas suivis — Combinez avec l'API de votre outil BI (Looker, Tableau) pour trouver de vrais consommateurs ; dbt ne sait que ce qu'on lui dit

Échafauder des modèles de staging à partir de sources brutes

👤 Ingénieurs analytiques intégrant une nouvelle source ⏱ ~30 min intermediate

Quand l'utiliser : De nouvelles données Fivetran/source arrivent. Vous avez besoin d'un modèle stg_* + yml pour chaque table.

Prérequis
  • Entrées sources.yml pour les nouvelles données — Définissez d'abord les sources ; l'agent génère le staging à partir de là
Déroulement
  1. Générer un bloc source
    Utilisez generate_source pour la base de données 'raw', schéma 'stripe'. Écrivez la sortie dans models/staging/stripe/_sources.yml.✓ Copié
    → Yml source rempli avec toutes les tables
  2. Échafauder des modèles de staging
    Pour chaque table source, appelez generate_staging_model. Écrivez chacune dans models/staging/stripe/stg_stripe__<table>.sql.✓ Copié
    → Un .sql par table source
  3. Ajouter docs + tests
    Pour chaque nouveau modèle de staging, appelez generate_model_yaml. Ajoutez des tests not_null sur les clés primaires. Committez.✓ Copié
    → Couche de staging propre et testée

Résultat : Une couche de staging complète en quelques minutes ; pas de dérive de copie-coller.

Pièges
  • Les modèles générés utilisent SELECT * qui ensuite extrait les colonnes PII — Après la génération, listez explicitement les colonnes et excluez/hashez toute information sensible avant de fusionner
Combiner avec : git

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

dbt + sentry

Quand une défaillance de modèle dbt casse des fonctionnalités en aval, corrélé avec les pics d'erreur Sentry

Trouvez les exécutions dbt échouées au cours des dernières 24 heures. Pour chacune, vérifiez les pics d'erreur Sentry dans les services qui dépendent des tables de ces modèles.✓ Copié
dbt + linear

Créer des bugs Linear pour les défaillances récurrentes de tests dbt

Listez les tests dbt qui ont échoué plus de 3 fois la semaine dernière. Pour chacun, créez un bug Linear dans l'équipe Analytics avec les détails du test.✓ Copié
dbt + notion

Documenter automatiquement les métriques dans un glossaire Notion

Pour chaque métrique de notre Semantic Layer, créez ou mettez à jour une page Notion dans la base de données Metrics Glossary avec le nom, la description et le propriétaire.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_metrics / get_dimensions / get_entities / query_metrics nom de la métrique, dimensions, filtres Questions sur les métriques commerciales Requêtes SL facturables selon le plan dbt Cloud
execute_sql / text_to_sql sql ou langage naturel Exploration SQL ad hoc avec contexte dbt Crédits d'entrepôt
get_all_models / get_model_details / get_lineage identificateurs de modèle Découverte + analyse d'impact gratuit
get_model_health / get_model_performance id du modèle Vérifications de style SRE sur la plateforme de données gratuit
build / run / test / compile / parse / show / docs / list arguments CLI dbt Utilisation locale dbt Core calcul d'entrepôt pour run/test/build
list_jobs / trigger_job_run / get_job_details / cancel_job_run / retry_job_run / list_job_runs ID de tâche/exécution Opérations dbt Cloud 1 appel Admin API
generate_source / generate_staging_model / generate_model_yaml références source/modèle Échafaudage de nouveaux modèles gratuit
get_exposures / get_exposure_details nom d'exposition Trouver les consommateurs en aval documentés comme expositions gratuit

Coût et limites

Coût d'exécution

Quota d'API
API Admin dbt Cloud : dépend du plan. Semantic Layer : limites par plan.
Tokens par appel
Les graphiques de généalogie + les listes de modèles peuvent être volumineux — paginez
Monétaire
MCP est gratuit ; dbt Core est gratuit ; dbt Cloud/Platform est payant. Les requêtes d'entrepôt sont facturées par votre entrepôt.
Astuce
Utilisez librement les outils de découverte (get_model_details, get_lineage) — ce sont des métadonnées. Soyez prudent avec execute_sql / query_metrics qui accèdent à l'entrepôt.

Sécurité

Permissions, secrets, portée

Stockage des identifiants : Token de service dbt Cloud en variable d'environnement ; Core utilise votre profiles.yml
Sortie de données : dbt Cloud (cloud.getdbt.com) pour les outils Cloud ; votre entrepôt pour les outils SQL

Dépannage

Erreurs courantes et correctifs

401 sur les appels Admin API

Token de service expiré ou compte requis manquant. Régénérez sur dbt Cloud → Account Settings → Service Tokens.

Les outils Semantic Layer retournent « non configuré »

SL est une fonctionnalité payante et doit être activée par projet. Vérifiez dbt Cloud → Project Settings → Semantic Layer.

Les outils CLI (run/build) échouent avec « Aucun profil »

Définissez DBT_PROFILES_DIR sur un répertoire contenant profiles.yml, ou exécutez à partir de la racine du projet avec un profiles.yml local.

Vérifier : dbt debug
get_lineage retourne vide

Le manifeste est obsolète. Exécutez d'abord parse pour régénérer manifest.json.

Alternatives

dbt vs autres

AlternativeQuand l'utiliserCompromis
SQLMesh MCPVous utilisez SQLMesh au lieu de dbtParadigme de transformation différent ; pas une substitution directe
Direct warehouse MCPs (Snowflake, BigQuery)Vous avez seulement besoin de SQL brut, pas de métadonnées dbtPerdre la connaissance du modèle/généalogie/test

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills