dbt

offiziell

Offizieller MCP-Server für dbt (data build tool) mit Integration in die dbt Core/Cloud CLI, Projektmetadaten-Erkennung, Modellinformationen und Abfragefunktionen für die semantische Schicht.

Was kann man mit Dbt MCP machen?

  • dbt-Metriken abfragen — Fragen Sie nach Metrikdefinitionen, Dimensionen oder kompiliertem SQL mit list_metrics, get_dimensions oder get_metrics_compiled_sql.
  • Projekt-Lineage erkunden — Verfolgen Sie Modellabhängigkeiten und Upstream-/Downstream-Beziehungen mit get_lineage oder get_related_models.
  • dbt-Befehle ausführen — Führen Sie run, test oder build aus, um Modelle zu materialisieren, Daten zu validieren oder das Projekt zu erstellen.
  • Boilerplate-Code generieren — Erstellen Sie Quell-YAML, Modell-YAML oder Staging-SQL über generate_source, generate_model_yaml oder generate_staging_model.
  • Job-Ausführungen überwachen — Prüfen Sie Ausführungsstatus, Fehler oder Artefakte mit get_job_run_details, get_job_run_error oder list_job_run_artifacts.
  • Knotendetails anzeigen — Rufen Sie vollständige Metadaten für jeden Ressourcentyp mit get_node_details ab, einschließlich Modellen, Quellen und Tests.

Dokumentation

dbt MCP Server

OpenSSF Best Practices

Dieser MCP-Server (Model Context Protocol) stellt verschiedene Tools zur Interaktion mit dbt bereit. Sie können diesen MCP-Server verwenden, um KI-Agenten Kontext zu Ihrem Projekt in dbt Core, dbt Fusion und dbt Platform bereitzustellen.

Lesen Sie unsere Dokumentation hier, um mehr zu erfahren. Dieser Blogbeitrag enthält weitere Details zu den Möglichkeiten des dbt MCP-Servers.

Experimentelles MCP-Bundle

Wir veröffentlichen mit jedem Release ein experimentelles Model Context Protocol Bundle (dbt-mcp.mcpb), damit MCPB-fähige Clients diesen Server ohne zusätzliche Einrichtung importieren können. Laden Sie das Bundle aus den Assets des neuesten Releases herunter und folgen Sie der Dokumentation von Anthropics mcpb CLI, um es zu installieren oder zu überprüfen.

Feedback

Wenn Sie Kommentare oder Fragen haben, erstellen Sie ein GitHub-Issue oder treten Sie uns im Community-Slack im Kanal #tools-dbt-mcp bei.

Architektur

Die Architektur des dbt MCP-Servers ermöglicht es Ihrem Agenten, sich mit einer Vielzahl von Tools zu verbinden.

architecture diagram of the dbt MCP server

Tools

SQL

Tools zum Ausführen und Generieren von SQL auf der dbt-Platform-Infrastruktur.

  • execute_sql: Führt SQL auf der dbt-Platform-Infrastruktur mit Semantic-Layer-Unterstützung aus.
  • text_to_sql: Generiert SQL aus natürlicher Sprache unter Verwendung des Projektkontexts.

Semantic Layer

Um mehr über den dbt Semantic Layer zu erfahren, klicken Sie hier.

  • get_dimension_values: Ruft unterschiedliche Werte für eine Dimension ab; Option zur Eingrenzung auf bestimmte Metriken.
  • get_dimensions: Ruft Dimensionen für angegebene Metriken ab.
  • get_entities: Ruft Entitäten für angegebene Metriken ab.
  • get_metrics_compiled_sql: Gibt kompiliertes SQL für Metriken zurück, ohne die Abfrage auszuführen.
  • list_metrics: Ruft alle definierten Metriken ab.
  • list_saved_queries: Ruft alle gespeicherten Abfragen ab.
  • query_metrics: Führt Metrikabfragen mit Filter- und Gruppierungsoptionen aus.

Discovery

Um mehr über die dbt Discovery API zu erfahren, klicken Sie hier.

  • get_all_macros: Ruft Makros ab; Option zur Filterung nach Paket oder nur zur Rückgabe von Paketnamen.
  • get_all_models: Ruft Name und Beschreibung aller Modelle ab.
  • get_all_sources: Ruft alle Quellen mit Freshness-Status ab; Option zur Filterung nach Quellnamen.
  • get_exposure_details: (veraltet – verwenden Sie stattdessen get_node_details)
  • get_exposures: Ruft alle Exposures ab (nachgelagerte Dashboards, Apps oder Analysen).
  • get_lineage: Ruft einen begrenzten Lineage-Graphen mit Typ-, Tiefen- und Richtungsfilterung ab.
  • get_macro_details: (veraltet – verwenden Sie stattdessen get_node_details)
  • get_mart_models: Ruft alle Mart-Modelle ab.
  • get_model_children: (veraltet – verwenden Sie stattdessen get_lineage)
  • get_model_details: (veraltet – verwenden Sie stattdessen get_node_details)
  • get_model_health: Ruft Gesundheitssignale ab: Ausführungsstatus, Testergebnisse und Upstream-Quellen-Freshness.
  • get_model_parents: (veraltet – verwenden Sie stattdessen get_lineage)
  • get_model_performance: Ruft den Ausführungsverlauf für ein Modell ab; Option zur Einbeziehung von Testergebnissen.
  • get_node_details: Ruft vollständige Details für jeden dbt-Ressourcentyp ab (Modell, Quelle, Exposure, Test, Seed, Snapshot, Makro, Semantic Model).
  • get_related_models: Findet ähnliche Modelle mithilfe semantischer Suche.
  • get_seed_details: (veraltet – verwenden Sie stattdessen get_node_details)
  • get_semantic_model_details: (veraltet – verwenden Sie stattdessen get_node_details)
  • get_snapshot_details: (veraltet – verwenden Sie stattdessen get_node_details)
  • get_source_details: (veraltet – verwenden Sie stattdessen get_node_details)
  • get_test_details: (veraltet – verwenden Sie stattdessen get_node_details)
  • search: [Alpha] Sucht nach Ressourcen im gesamten dbt-Projekt (nicht allgemein verfügbar).

dbt CLI

Wenn Ihr Client dbt-Befehle über die MCP-Tools nutzt, kann dies Ihre Datenmodelle, Quellen und Warehouse-Objekte verändern. Fahren Sie nur fort, wenn Sie dem Client vertrauen und die potenziellen Auswirkungen verstehen.

  • build: Führt Modelle, Tests, Snapshots und Seeds in DAG-Reihenfolge aus.
  • clone: Klont ausgewählte Knoten aus dem angegebenen Zustand in die Ziel-Schemas.
  • compile: Generiert ausführbares SQL aus Modellen/Tests/Analysen; nützlich zur Validierung der Jinja-Logik.
  • docs: Generiert Dokumentation für das dbt-Projekt.
  • get_lineage_dev: Ruft Lineage aus der lokalen manifest.json mit Typ- und Tiefenfilterung ab.
  • get_node_details_dev: Ruft Knotendetails aus der lokalen manifest.json ab (Modelle, Seeds, Snapshots, Quellen).
  • list: Listet Ressourcen im dbt-Projekt nach Typ mit Selektorunterstützung auf.
  • parse: Analysiert und validiert Projektdateien auf Syntaxkorrektheit.
  • run: Führt Modelle aus, um sie in der Datenbank zu materialisieren.
  • show: Führt SQL gegen die Datenbank aus und gibt Ergebnisse zurück.
  • test: Führt Tests aus, um Daten- und Modellintegrität zu validieren.

Admin API

Um mehr über die dbt Administrative API zu erfahren, klicken Sie hier.

  • cancel_job_run: Bricht einen laufenden Job ab.
  • get_job_details: Ruft die Jobkonfiguration einschließlich Trigger, Zeitplan und dbt-Befehlen ab.
  • get_job_run_artifacts: Lädt ein bestimmtes Artefakt aus einem Joblauf herunter; große Artefakte geben eine Hinweisnachricht zurück, es mit einem jq_filter erneut zu versuchen; unterstützt jq-Filterung für gezielte Extraktion.
  • get_job_run_details: Ruft Laufdetails einschließlich Status, Zeitplanung, Schritte und Artefakte ab.
  • get_job_run_error: Ruft Fehler- und/oder Warnungsdetails für einen Joblauf ab; Option zur Einbeziehung oder nur Anzeige von Warnungen.
  • list_job_run_artifacts: Listet verfügbare Artefakte aus einem Joblauf auf.
  • list_jobs: Listet Jobs in einem dbt-Platform-Konto auf; Option zur Filterung nach Projekt oder Umgebung.
  • list_jobs_runs: Listet Jobläufe auf; Option zur Filterung nach Job, Status oder Sortierfeld.
  • list_projects: Listet alle Projekte im dbt-Platform-Konto auf.
  • retry_job_run: Wiederholt einen fehlgeschlagenen Joblauf.
  • trigger_job_run: Löst einen Joblauf aus; Option zur Überschreibung von Git-Branch, Schema oder anderen Einstellungen.

dbt Codegen

Diese Tools helfen bei der Automatisierung der Boilerplate-Codegenerierung für dbt-Projektdateien.

  • generate_model_yaml: Generiert Modell-YAML mit Spalten; Option zur Übernahme von Upstream-Beschreibungen.
  • generate_source: Generiert Quell-YAML durch Introspektion von Datenbankschemas; Option zur Einbeziehung von Spalten.
  • generate_staging_model: Generiert Staging-Modell-SQL aus einer Quelltabelle.

dbt LSP

Eine Reihe von Tools, die die Fusion-Engine für erweiterte SQL-Kompilierung und Spaltenebenen-Lineage-Analyse nutzen.

  • fusion.compile_sql: Kompiliert SQL im Projektkontext über dbt Platform.
  • fusion.get_column_lineage: Verfolgt Spaltenebenen-Lineage über dbt Platform.
  • get_column_lineage: Verfolgt Spaltenebenen-Lineage lokal (erfordert dbt-lsp über dbt Labs VSCE).

Produktdokumentation

Tools zum Durchsuchen und Abrufen von Inhalten aus der offiziellen dbt-Dokumentation unter docs.getdbt.com.

  • get_product_doc_pages: Ruft den vollständigen Markdown-Inhalt einer oder mehrerer docs.getdbt.com-Seiten nach Pfad oder URL ab.
  • search_product_docs: Durchsucht docs.getdbt.com nach Seiten, die einer Abfrage entsprechen; gibt Titel, URLs und Beschreibungen nach Relevanz sortiert zurück. Verwenden Sie get_product_doc_pages, um den vollständigen Inhalt abzurufen.

MCP-Server-Metadaten

Diese Tools liefern Informationen über den MCP-Server selbst.

  • get_mcp_server_branch: Gibt den aktuellen Git-Branch des laufenden dbt MCP-Servers zurück.
  • get_mcp_server_version: Gibt die aktuelle Version des dbt MCP-Servers zurück.

Beispiele

In der Regel verbinden Sie den dbt MCP-Server mit einem Agentenprodukt wie Claude oder Cursor. Wenn Sie jedoch daran interessiert sind, Ihren eigenen Agenten zu erstellen, schauen Sie sich das Beispiele-Verzeichnis an, um zu erfahren, wie Sie loslegen können.

Abhängigkeiten

Abhängigkeiten sind auf bestimmte Versionen festgelegt und werden nicht automatisch aktualisiert. Nur sicherheitsrelevante Abhängigkeitsupdates werden über automatisierte Pull-Requests eingereicht.

Mitwirken

Lesen Sie CONTRIBUTING.md für Anweisungen, wie Sie sich einbringen können!