/ الدليل / الملعب / dbt
● رسمي dbt-labs 🔑 يتطلب مفتاحك

dbt

بواسطة dbt-labs · dbt-labs/dbt-mcp

افحص مشاريع dbt الخاصة بك وأعمال Cloud من خلال وكيل — رسم العلاقات البيانية وصحة النماذج والاستعلامات عن المقاييس وتشغيل أوامر CLI، كل ذلك في MCP واحد.

MCP رسمي من dbt Labs لـ dbt Core و dbt Fusion و dbt Cloud/Platform. اقرأ بيانات وصفية للنماذج والمصادر والعروض، والاستعلام عن Semantic Layer، وتشغيل مهام dbt Cloud، وتشغيل أوامر CLI الخاصة بـ dbt (build و test و run). يغطي المعنى الكامل للخط الأنابيب البيانية: الماذا والأين والكيف.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

dbt.replay ▶ جاهز
0/0

التثبيت

اختر العميل

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

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

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

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

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

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

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

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

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

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

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

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add dbt -- uvx dbt-mcp

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: dbt

تشخيص سبب فشل نموذج dbt واقتراح إصلاح

👤 مهندسو التحليلات ⏱ ~15 min intermediate

متى تستخدمه: فشل تشغيل dbt مجدول. تحتاج إلى معرفة ما الذي انقطع ولماذا، دون فتح 5 واجهات مستخدم.

المتطلبات الأساسية
  • حساب dbt Cloud + رمز الخدمة — dbt Cloud → Profile → API Tokens
  • نسخة محلية من مشروع dbt (في حالة استخدام أدوات CLI) — git clone your dbt repo
الخطوات
  1. العثور على التشغيل الفاشل
    اسرد آخر 10 تشغيلات لي في dbt Cloud. أظهر أيها فشل وملخص الأخطاء الخاصة بها.✓ تم النسخ
    → معرفات التشغيل الفاشلة مع الطوابع الزمنية
  2. التعمق في النموذج الفاشل
    للتشغيل الفاشل، أي نموذج فشل أولاً؟ احصل على تفاصيله (SQL والوصف) والرسم البياني الأساسي له.✓ تم النسخ
    → النموذج الفاشل + سلسلة الاعتماديات
  3. اقتراح الإصلاح
    شغّل النموذج محلياً باستخدام dbt compile. فتّش SQL المترجم للخطأ. اقترح الحد الأدنى من التعديلات للإصلاح.✓ تم النسخ
    → إصلاح SQL محدد مع التبرير

النتيجة: إصلاح موثق لنموذج معطل في أقل من 15 دقيقة.

المزالق
  • قد تكون أعطال تشغيل Cloud بيئية (اتصال/بيانات اعتماد) وليست كود — قبل تحرير SQL، تحقق مما إذا كان النموذج نفسه يعمل محلياً عبر أداة run — إن كان الجواب نعم، فإنها بنية تحتية وليست كود
اجمعها مع: sentry · linear

الإجابة على سؤال الأعمال باستخدام Semantic Layer من dbt

👤 مهندسو التحليلات الذين يفعّلون الخدمة الذاتية ⏱ ~10 min beginner

متى تستخدمه: يسأل صاحب المصلحة 'كم كان MRR حسب الخطة الشهر الماضي؟' — لديك مقاييس معرّفة في dbt SL.

المتطلبات الأساسية
  • تفعيل Semantic Layer في مشروع dbt Platform الخاص بك — dbt Cloud → Account Settings → Semantic Layer
الخطوات
  1. البحث عن المقياس
    اسرد المقاييس المتاحة في SL الخاص بنا. أبحث عن MRR أو monthly_revenue.✓ تم النسخ
    → تم العثور على المقياس المطابق
  2. فحص الأبعاد
    ما الأبعاد التي يمكن الاستعلام عن مقياس MRR من خلالها؟ أريد التصفية/التجميع حسب الخطة والشهر.✓ تم النسخ
    → قائمة صحيحة بالأبعاد
  3. الاستعلام والتفسير
    استعلم عن MRR للشهر الماضي، مجمعة حسب الخطة. صيّغ النتيجة كجدول وعلّق على أكبر المساهمين.✓ تم النسخ
    → جدول + تحليل موجز

النتيجة: يحصل صاحب المصلحة على إجابة موثوقة محكومة في دقيقتين؛ لم يكتب أحد SQL مرتجلاً.

المزالق
  • الاستعلام بدعم بُعد غير مدعوم يُرجع فارغاً دون خطأ واضح — اتصل دائماً بـ get_dimensions على المقياس أولاً؛ لا تفترض
اجمعها مع: notion

التحقق من التأثير قبل تعديل نموذج أساسي

👤 مهندسو التحليلات على وشك لمس نموذج أساسي ⏱ ~20 min intermediate

متى تستخدمه: أنت على وشك تغيير dim_customers. تحتاج إلى معرفة كل مستهلك في الأسفل أولاً.

الخطوات
  1. الحصول على رسم العلاقات البيانية
    احصل على رسم العلاقات البيانية للأسفل لـ dim_customers. قم بتضمين النماذج والعروض وأي مقاييس.✓ تم النسخ
    → رسم بياني كامل للأسفل
  2. تحديد التأثير
    لكل نموذج في الأسفل، احصل على أدائه وصحته — أيها حرج (مستخدم من قبل العروض، يعمل يومياً)؟✓ تم النسخ
    → قائمة أولويات بما سينقطع إذا أفسدت الأمور
  3. خطط للتغيير
    اكتب خطة تغيير: ما الاختبارات المراد إضافتها، أي مالكي الأسفل يجب إخطارهم (تحقق من العروض)، وماذا تراقب بعد النشر.✓ تم النسخ
    → خطة النشر

النتيجة: التغييرات على النماذج المشتركة تُشحن مع الوعي، وليس مفاجآت نطاق الانفجار.

المزالق
  • العروض موجودة فقط إذا احتفظت بها — السلوك الصامت في الأسفل في أدوات BI لا يتم تتبعها — ادمج مع API أداة BI الخاصة بك (Looker و Tableau) للعثور على المستهلكين الحقيقيين؛ dbt يعرف فقط ما قيل له

سقالة النماذج المرحلية من المصادر الخام

👤 مهندسو التحليلات الذين يدمجون مصدراً جديداً ⏱ ~30 min intermediate

متى تستخدمه: توجد بيانات Fivetran/مصدر جديدة. تحتاج إلى نموذج stg_* + yml لكل جدول.

المتطلبات الأساسية
  • إدخالات sources.yml للبيانات الجديدة — حدّد المصادر أولاً؛ يُنشئ الوكيل السقالة من هناك
الخطوات
  1. توليد كتلة المصدر
    استخدم generate_source لقاعدة البيانات 'raw' والمخطط 'stripe'. اكتب المخرجات إلى models/staging/stripe/_sources.yml.✓ تم النسخ
    → ملف yml للمصدر مليء بجميع الجداول
  2. نماذج المرحلة السقالة
    لكل جدول مصدر، استدعِ generate_staging_model. اكتب كل واحدة إلى models/staging/stripe/stg_stripe__<table>.sql.✓ تم النسخ
    → ملف .sql واحد لكل جدول مصدر
  3. إضافة المستندات + الاختبارات
    لكل نموذج مرحلة جديد، استدعِ generate_model_yaml. أضف اختبارات not_null على المفاتيح الأساسية. التزم.✓ تم النسخ
    → طبقة مرحلة نظيفة مختبرة

النتيجة: طبقة مرحلة كاملة في دقائق؛ بدون انجراف النسخ واللصق.

المزالق
  • تستخدم النماذج المُنشأة SELECT * التي تسحب أعمدة PII — بعد الإنشاء، اسرد الأعمدة صراحةً واستبعد/جزّأ أي حساسة قبل دمجها
اجمعها مع: git

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

dbt + sentry

عندما يؤدي فشل نموذج dbt إلى كسر الميزات الموجودة أسفل، ترابط مع قمم أخطاء Sentry

البحث عن تشغيلات dbt الفاشلة في آخر 24 ساعة. لكل واحدة، تحقق من Sentry من أجل قمم الأخطاء في الخدمات التي تعتمد على جداول تلك النماذج.✓ تم النسخ
dbt + linear

ملف خطأ Linear لفشل اختبار dbt المتكرر

اسرد اختبارات dbt التي فشلت أكثر من 3 مرات في الأسبوع الماضي. لكل واحد، أنشئ خطأ Linear في فريق التحليلات مع تفاصيل الاختبار.✓ تم النسخ
dbt + notion

الموثقة التلقائية للمقاييس في قاموس Notion

لكل مقياس في Semantic Layer الخاص بنا، أنشئ أو حدّث صفحة Notion في قاعدة بيانات قاموس المقاييس باسم والوصف والمالك.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
list_metrics / get_dimensions / get_entities / query_metrics metric name, dimensions, filters أسئلة المقاييس التجارية SL queries billable per dbt Cloud plan
execute_sql / text_to_sql sql or natural language استكشاف SQL مرتجل مع سياق dbt Warehouse credits
get_all_models / get_model_details / get_lineage model identifiers الاكتشاف + تحليل التأثير free
get_model_health / get_model_performance model id فحوصات على غرار SRE على منصة البيانات free
build / run / test / compile / parse / show / docs / list dbt CLI args الاستخدام المحلي لـ dbt Core warehouse compute for run/test/build
list_jobs / trigger_job_run / get_job_details / cancel_job_run / retry_job_run / list_job_runs job/run IDs عمليات dbt Cloud 1 Admin API call
generate_source / generate_staging_model / generate_model_yaml source/model refs نماذج السقالة الجديدة free
get_exposures / get_exposure_details exposure name البحث عن مستهلكي الأسفل الموثقين كعروض free

التكلفة والحدود

تكلفة التشغيل

حصة API
dbt Cloud Admin API: يعتمد على الخطة. Semantic Layer: حدود حسب الخطة.
الرموز لكل استدعاء
يمكن أن تكون رسوم العلاقات البيانية + قوائم النماذج كبيرة — تقسيم الصفحات
التكلفة المالية
MCP مجاني؛ dbt Core مجاني؛ dbt Cloud/Platform مدفوع. يتم فوترة استعلامات المستودع من قبل المستودع الخاص بك.
نصيحة
استخدم أدوات الاكتشاف (get_model_details و get_lineage) بحرية — تلك بيانات وصفية. كن حذراً مع execute_sql / query_metrics التي تصل إلى المستودع.

الأمان

الصلاحيات والأسرار ونطاق الأثر

تخزين بيانات الاعتماد: رمز خدمة dbt Cloud في متغير env؛ يستخدم Core ملف profiles.yml الخاص بك
نقل البيانات الخارجي: dbt Cloud (cloud.getdbt.com) لأدوات Cloud؛ المستودع الخاص بك لأدوات SQL

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

401 on Admin API calls

انتهت مهلة رمز الخدمة أو فقد الحساب المطلوب. أعد الإنشاء في dbt Cloud → Account Settings → Service Tokens.

Semantic Layer tools return 'not configured'

SL هي ميزة مدفوعة ويجب تفعيلها حسب المشروع. تحقق من dbt Cloud → Project Settings → Semantic Layer.

CLI tools (run/build) fail with 'No profile'

عيّن DBT_PROFILES_DIR إلى دليل يحتوي على profiles.yml، أو تشغيل من جذر المشروع باستخدام profiles.yml محلي.

تحقق: dbt debug
get_lineage returns empty

البيان قديم. قم بتشغيل parse أولاً لإعادة إنشاء manifest.json.

البدائل

dbt مقابل البدائل

البديلمتى تستخدمهاالمقايضة
SQLMesh MCPتستخدم SQLMesh بدلاً من dbtنموذج تحويل مختلف؛ ليس استبدالاً مباشراً
Direct warehouse MCPs (Snowflake, BigQuery)تحتاج فقط إلى SQL خام، وليس بيانات dbt الوصفيةفقدان الوعي بالنموذج/العلاقات البيانية/الاختبار

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills