dbt

resmi

dbt (veri oluşturma aracı) için resmi MCP sunucusu olup, dbt Core/Cloud CLI ile entegrasyon, proje meta verisi keşfi, model bilgisi ve anlamsal katman sorgulama yetenekleri sağlar.

Dbt MCP ile neler yapabilirsiniz?

  • dbt metriklerini sorgula — list_metrics, get_dimensions veya get_metrics_compiled_sql kullanarak metrik tanımlarını, boyutları veya derlenmiş SQL'i isteyin.
  • Proje bağımlılık zincirini keşfet — get_lineage veya get_related_models ile model bağımlılıklarını ve yukarı/aşağı yönlü ilişkileri izleyin.
  • dbt komutlarını çalıştır — Modelleri somutlaştırmak, verileri doğrulamak veya projeyi derlemek için run, test veya build komutlarını yürütün.
  • Şablon kod üret — generate_source, generate_model_yaml veya generate_staging_model ile kaynak YAML, model YAML veya hazırlık SQL'i oluşturun.
  • İş çalıştırmalarını izle — get_job_run_details, get_job_run_error veya list_job_run_artifacts kullanarak çalıştırma durumunu, hataları veya yapıtları kontrol edin.
  • Düğüm ayrıntılarını incele — get_node_details ile modeller, kaynaklar ve testler dahil herhangi bir kaynak türü için tam meta verileri alın.

Dokümantasyon

dbt MCP Sunucusu

OpenSSF Best Practices

Bu MCP (Model Context Protocol) sunucusu, dbt ile etkileşim kurmak için çeşitli araçlar sağlar. Bu MCP sunucusunu, AI ajanlarına dbt Core, dbt Fusion ve dbt Platform'daki projenizin bağlamını sağlamak için kullanabilirsiniz.

Daha fazla bilgi için dokümantasyonumuzu buradan okuyun. dbt MCP sunucusu ile neler yapılabileceğine dair daha fazla ayrıntı için bu blog yazısına göz atın.

Deneysel MCP Paketi

Her sürümle birlikte, MCPB uyumlu istemcilerin bu sunucuyu ek kurulum olmadan içe aktarabilmesi için deneysel bir Model Context Protocol Paketi (dbt-mcp.mcpb) yayınlıyoruz. Paketi en son sürüm varlıklarından indirin ve kurmak veya incelemek için Anthropic'in mcpb CLI dokümantasyonunu takip edin.

Geri Bildirim

Yorumlarınız veya sorularınız varsa, bir GitHub Issue oluşturun veya #tools-dbt-mcp kanalında topluluk Slack'ine katılın.

Mimari

dbt MCP sunucu mimarisi, ajanınızın çeşitli araçlara bağlanmasına olanak tanır.

architecture diagram of the dbt MCP server

Araçlar

SQL

dbt Platform altyapısında SQL yürütme ve oluşturma araçları.

  • execute_sql: Semantic Layer desteğiyle dbt Platform altyapısında SQL yürütür.
  • text_to_sql: Proje bağlamını kullanarak doğal dilden SQL oluşturur.

Semantic Layer

dbt Semantic Layer hakkında daha fazla bilgi edinmek için buraya tıklayın.

  • get_dimension_values: Bir boyut için farklı değerleri alır; belirli metriklerle sınırlama seçeneği sunar.
  • get_dimensions: Belirtilen metrikler için boyutları alır.
  • get_entities: Belirtilen metrikler için varlıkları alır.
  • get_metrics_compiled_sql: Sorguyu çalıştırmadan metrikler için derlenmiş SQL döndürür.
  • list_metrics: Tanımlanan tüm metrikleri alır.
  • list_saved_queries: Kaydedilen tüm sorguları alır.
  • query_metrics: Filtreleme ve gruplama seçenekleriyle metrik sorgularını yürütür.

Keşif

dbt Discovery API hakkında daha fazla bilgi edinmek için buraya tıklayın.

  • get_all_macros: Makroları alır; pakete göre filtreleme veya yalnızca paket adlarını döndürme seçeneği sunar.
  • get_all_models: Tüm modellerin adını ve açıklamasını alır.
  • get_all_sources: Tazelik durumuyla tüm kaynakları alır; kaynak adına göre filtreleme seçeneği sunar.
  • get_exposure_details: (kullanımdan kaldırıldı — bunun yerine get_node_details kullanın)
  • get_exposures: Tüm maruziyetleri (aşağı akış panoları, uygulamalar veya analizler) alır.
  • get_lineage: Tür, derinlik ve yön filtrelemesiyle sınırlı bir soy grafiği alır.
  • get_macro_details: (kullanımdan kaldırıldı — bunun yerine get_node_details kullanın)
  • get_mart_models: Tüm mart modellerini alır.
  • get_model_children: (kullanımdan kaldırıldı — bunun yerine get_lineage kullanın)
  • get_model_details: (kullanımdan kaldırıldı — bunun yerine get_node_details kullanın)
  • get_model_health: Sağlık sinyallerini alır: çalıştırma durumu, test sonuçları ve yukarı akış kaynak tazeliği.
  • get_model_parents: (kullanımdan kaldırıldı — bunun yerine get_lineage kullanın)
  • get_model_performance: Bir model için yürütme geçmişini alır; test sonuçlarını dahil etme seçeneği sunar.
  • get_node_details: Herhangi bir dbt kaynak türü için tam ayrıntıları alır (model, kaynak, maruziyet, test, seed, snapshot, makro, semantic_model).
  • get_related_models: Anlamsal arama kullanarak benzer modelleri bulur.
  • get_seed_details: (kullanımdan kaldırıldı — bunun yerine get_node_details kullanın)
  • get_semantic_model_details: (kullanımdan kaldırıldı — bunun yerine get_node_details kullanın)
  • get_snapshot_details: (kullanımdan kaldırıldı — bunun yerine get_node_details kullanın)
  • get_source_details: (kullanımdan kaldırıldı — bunun yerine get_node_details kullanın)
  • get_test_details: (kullanımdan kaldırıldı — bunun yerine get_node_details kullanın)
  • search: [Alpha] dbt projesi genelinde kaynakları arar (genel kullanıma açık değildir).

dbt CLI

İstemcinizin MCP araçları aracılığıyla dbt komutlarını kullanmasına izin vermek, veri modellerinizi, kaynaklarınızı ve depo nesnelerinizi değiştirebilir. Yalnızca istemciye güveniyorsanız ve potansiyel etkiyi anlıyorsanız devam edin.

  • build: Modelleri, testleri, snapshot'ları ve seed'leri DAG sırasına göre yürütür.
  • clone: Seçilen düğümleri belirtilen durumdan hedef şemalara klonlar.
  • compile: Modellerden/testlerden/analizlerden çalıştırılabilir SQL oluşturur; Jinja mantığını doğrulamak için kullanışlıdır.
  • docs: dbt projesi için dokümantasyon oluşturur.
  • get_lineage_dev: Yerel manifest.json'dan tür ve derinlik filtrelemesiyle soy bilgisini alır.
  • get_node_details_dev: Yerel manifest.json'dan düğüm ayrıntılarını alır (modeller, seed'ler, snapshot'lar, kaynaklar).
  • list: Seçici desteğiyle dbt projesindeki kaynakları türe göre listeler.
  • parse: Sözdizimi doğruluğu için proje dosyalarını ayrıştırır ve doğrular.
  • run: Modelleri veritabanında somutlaştırmak için yürütür.
  • show: Veritabanına karşı SQL yürütür ve sonuçları döndürür.
  • test: Veri ve model bütünlüğünü doğrulamak için testler çalıştırır.

Admin API

dbt Yönetim API'si hakkında daha fazla bilgi edinmek için buraya tıklayın.

  • cancel_job_run: Çalışan bir işi iptal eder.
  • get_job_details: Tetikleyiciler, zamanlama ve dbt komutları dahil iş yapılandırmasını alır.
  • get_job_run_artifacts: Bir iş çalıştırmasından belirli bir yapıyı indirir; büyük yapılar, jq_filter ile yeniden deneme için bir yönlendirme mesajı döndürür; hedefli çıkarma için jq filtrelemeyi destekler.
  • get_job_run_details: Durum, zamanlama, adımlar ve yapılar dahil çalıştırma ayrıntılarını alır.
  • get_job_run_error: Bir iş çalıştırması için hata ve/veya uyarı ayrıntılarını alır; yalnızca uyarıları dahil etme veya gösterme seçeneği sunar.
  • list_job_run_artifacts: Bir iş çalıştırmasından mevcut yapıları listeler.
  • list_jobs: dbt Platform hesabındaki işleri listeler; proje veya ortama göre filtreleme seçeneği sunar.
  • list_jobs_runs: İş çalıştırmalarını listeler; işe, duruma göre filtreleme veya alana göre sıralama seçeneği sunar.
  • list_projects: dbt Platform hesabındaki tüm projeleri listeler.
  • retry_job_run: Başarısız bir iş çalıştırmasını yeniden dener.
  • trigger_job_run: Bir iş çalıştırmasını tetikler; git dalını, şemayı veya diğer ayarları geçersiz kılma seçeneği sunar.

dbt Codegen

Bu araçlar, dbt proje dosyaları için hazır kod oluşturmayı otomatikleştirmeye yardımcı olur.

  • generate_model_yaml: Sütunlarla model YAML oluşturur; yukarı akış açıklamalarını devralma seçeneği sunar.
  • generate_source: Veritabanı şemalarını inceleyerek kaynak YAML oluşturur; sütunları dahil etme seçeneği sunar.
  • generate_staging_model: Bir kaynak tablodan hazırlık modeli SQL oluşturur.

dbt LSP

Gelişmiş SQL derleme ve sütun düzeyinde soy analizi için Fusion motorundan yararlanan bir dizi araç.

  • fusion.compile_sql: dbt Platform aracılığıyla proje bağlamında SQL derler.
  • fusion.get_column_lineage: dbt Platform aracılığıyla sütun düzeyinde soy izini sürer.
  • get_column_lineage: Sütun düzeyinde soy izini yerel olarak sürer (dbt Labs VSCE aracılığıyla dbt-lsp gerektirir).

Ürün Dokümantasyonu

docs.getdbt.com adresindeki resmi dbt dokümantasyonundan içerik arama ve getirme araçları.

  • get_product_doc_pages: Yol veya URL ile bir veya daha fazla docs.getdbt.com sayfasının tam Markdown içeriğini getirir.
  • search_product_docs: Bir sorguyla eşleşen sayfalar için docs.getdbt.com'da arama yapar; alaka düzeyine göre sıralanmış başlıklar, URL'ler ve açıklamalar döndürür. Tam içeriği getirmek için get_product_doc_pages kullanın.

MCP Sunucu Meta Verileri

Bu araçlar, MCP sunucusunun kendisi hakkında bilgi sağlar.

  • get_mcp_server_branch: Çalışan dbt MCP sunucusunun geçerli git dalını döndürür.
  • get_mcp_server_version: dbt MCP sunucusunun geçerli sürümünü döndürür.

Örnekler

Genellikle, dbt MCP sunucusunu Claude veya Cursor gibi bir ajan ürününe bağlarsınız. Ancak, kendi ajanınızı oluşturmakla ilgileniyorsanız, nasıl başlayacağınız için örnekler dizinine göz atın.

Bağımlılıklar

Bağımlılıklar belirli sürümlere sabitlenmiştir ve otomatik olarak güncellenmez. Yalnızca güvenlikle ilgili bağımlılık güncellemeleri otomatik çekme istekleri aracılığıyla gönderilir.

Katkıda Bulunma

Nasıl dahil olacağınıza dair talimatlar için CONTRIBUTING.md okuyun!