dbt

ทางการ

เซิร์ฟเวอร์ MCP อย่างเป็นทางการสำหรับ dbt (เครื่องมือสร้างข้อมูล) ที่ให้การผสานรวมกับ dbt Core/Cloud CLI, การค้นพบเมทาดาทาของโปรเจกต์, ข้อมูลโมเดล, และความสามารถในการสอบถามเลเยอร์เชิงความหมาย

GitHub
607
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย Dbt MCP?

  • Query dbt metrics — สอบถามคำจำกัดความของเมตริก มิติข้อมูล หรือ SQL ที่คอมไพล์แล้วโดยใช้ list_metrics, get_dimensions หรือ get_metrics_compiled_sql
  • Explore project lineage — ติดตามการพึ่งพาของโมเดลและความสัมพันธ์ต้นทาง/ปลายทางด้วย get_lineage หรือ get_related_models
  • Run dbt commands — รันคำสั่ง run, test หรือ build เพื่อสร้างโมเดล ตรวจสอบความถูกต้องของข้อมูล หรือสร้างโปรเจกต์
  • Generate boilerplate code — สร้าง source YAML, model YAML หรือ staging SQL ผ่าน generate_source, generate_model_yaml หรือ generate_staging_model
  • Monitor job runs — ตรวจสอบสถานะการรัน ข้อผิดพลาด หรืออาร์ติแฟกต์โดยใช้ get_job_run_details, get_job_run_error หรือ list_job_run_artifacts
  • Inspect node details — ดึงข้อมูลเมตาดาต้าทั้งหมดสำหรับทรัพยากรทุกประเภทด้วย get_node_details รวมถึงโมเดล แหล่งข้อมูล และการทดสอบ

เอกสาร

dbt MCP Server

OpenSSF Best Practices

เซิร์ฟเวอร์ MCP (Model Context Protocol) นี้มีเครื่องมือต่าง ๆ สำหรับการโต้ตอบกับ dbt คุณสามารถใช้เซิร์ฟเวอร์ MCP นี้เพื่อให้เอเจนต์ AI เข้าใจบริบทของโปรเจกต์ของคุณใน dbt Core, dbt Fusion และ dbt Platform

อ่านเอกสารของเรา ที่นี่ เพื่อเรียนรู้เพิ่มเติม บล็อกโพสต์นี้ ให้รายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่สามารถทำได้กับเซิร์ฟเวอร์ dbt MCP

MCP Bundle ทดลอง

เราตีพิมพ์ Model Context Protocol Bundle ทดลอง (dbt-mcp.mcpb) พร้อมกับการเผยแพร่แต่ละครั้ง เพื่อให้ไคลเอนต์ที่รองรับ MCPB สามารถนำเข้าเซิร์ฟเวอร์นี้ได้โดยไม่ต้องตั้งค่าเพิ่มเติม ดาวน์โหลด bundle จากไฟล์แนบของการเผยแพร่ล่าสุด และทำตามเอกสาร mcpb CLI ของ Anthropic เพื่อติดตั้งหรือตรวจสอบ

ข้อเสนอแนะ

หากคุณมีความคิดเห็นหรือคำถาม สร้าง GitHub Issue หรือเข้าร่วมกับเราใน Slack ชุมชน ในช่อง #tools-dbt-mcp

สถาปัตยกรรม

สถาปัตยกรรมของเซิร์ฟเวอร์ dbt MCP ช่วยให้เอเจนต์ของคุณเชื่อมต่อกับเครื่องมือที่หลากหลาย

architecture diagram of the dbt MCP server

เครื่องมือ

SQL

เครื่องมือสำหรับการรันและสร้าง SQL บนโครงสร้างพื้นฐานของ dbt Platform

  • execute_sql: รัน SQL บนโครงสร้างพื้นฐานของ dbt Platform พร้อมรองรับ Semantic Layer
  • text_to_sql: สร้าง SQL จากภาษาธรรมชาติโดยใช้บริบทของโปรเจกต์

Semantic Layer

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ dbt Semantic Layer คลิก ที่นี่

  • get_dimension_values: ดึงค่าที่แตกต่างสำหรับมิติ; มีตัวเลือกในการจำกัดขอบเขตไปยังเมตริกเฉพาะ
  • get_dimensions: ดึงมิติสำหรับเมตริกที่ระบุ
  • get_entities: ดึงเอนทิตีสำหรับเมตริกที่ระบุ
  • get_metrics_compiled_sql: ส่งคืน SQL ที่คอมไพล์แล้วสำหรับเมตริกโดยไม่ต้องรันคิวรี
  • list_metrics: ดึงข้อมูลเมตริกที่กำหนดไว้ทั้งหมด
  • list_saved_queries: ดึงข้อมูลคิวรีที่บันทึกไว้ทั้งหมด
  • query_metrics: รันคิวรีเมตริกพร้อมตัวเลือกการกรองและการจัดกลุ่ม

Discovery

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ dbt Discovery API คลิก ที่นี่

  • get_all_macros: ดึงข้อมูลแมโคร; มีตัวเลือกในการกรองตามแพ็กเกจหรือส่งคืนเฉพาะชื่อแพ็กเกจ
  • get_all_models: ดึงชื่อและคำอธิบายของโมเดลทั้งหมด
  • get_all_sources: ดึงแหล่งข้อมูลทั้งหมดพร้อมสถานะความสดใหม่; มีตัวเลือกในการกรองตามชื่อแหล่งข้อมูล
  • get_exposure_details: (เลิกใช้งาน — ใช้ get_node_details แทน)
  • get_exposures: ดึง exposures ทั้งหมด (แดชบอร์ด แอป หรือการวิเคราะห์ปลายทาง)
  • get_lineage: ดึงกราฟ lineage แบบจำกัดขอบเขตพร้อมการกรองตามประเภท ความลึก และทิศทาง
  • get_macro_details: (เลิกใช้งาน — ใช้ get_node_details แทน)
  • get_mart_models: ดึงโมเดล mart ทั้งหมด
  • get_model_children: (เลิกใช้งาน — ใช้ get_lineage แทน)
  • get_model_details: (เลิกใช้งาน — ใช้ get_node_details แทน)
  • get_model_health: ดึงสัญญาณสุขภาพ: สถานะการรัน ผลการทดสอบ และความสดใหม่ของแหล่งข้อมูลต้นทาง
  • get_model_parents: (เลิกใช้งาน — ใช้ get_lineage แทน)
  • get_model_performance: ดึงประวัติการรันสำหรับโมเดล; มีตัวเลือกในการรวมผลการทดสอบ
  • get_node_details: ดึงรายละเอียดทั้งหมดสำหรับทรัพยากร dbt ทุกประเภท (โมเดล แหล่งข้อมูล exposure การทดสอบ seed snapshot แมโคร semantic_model)
  • get_related_models: ค้นหาโมเดลที่คล้ายกันโดยใช้การค้นหาเชิงความหมาย
  • get_seed_details: (เลิกใช้งาน — ใช้ get_node_details แทน)
  • get_semantic_model_details: (เลิกใช้งาน — ใช้ get_node_details แทน)
  • get_snapshot_details: (เลิกใช้งาน — ใช้ get_node_details แทน)
  • get_source_details: (เลิกใช้งาน — ใช้ get_node_details แทน)
  • get_test_details: (เลิกใช้งาน — ใช้ get_node_details แทน)
  • search: [Alpha] ค้นหาทรัพยากรทั่วทั้งโปรเจกต์ dbt (ยังไม่เปิดให้ใช้งานทั่วไป)

dbt CLI

การอนุญาตให้ไคลเอนต์ของคุณใช้คำสั่ง dbt ผ่านเครื่องมือ MCP อาจแก้ไขโมเดลข้อมูล แหล่งข้อมูล และออบเจกต์ในคลังข้อมูลของคุณ ดำเนินการต่อเมื่อคุณเชื่อถือไคลเอนต์และเข้าใจผลกระทบที่อาจเกิดขึ้น

  • build: รันโมเดล การทดสอบ snapshot และ seed ตามลำดับ DAG
  • clone: โคลนโหนดที่เลือกจากสถานะที่ระบุไปยัง schema เป้าหมาย
  • compile: สร้าง SQL ที่รันได้จากโมเดล/การทดสอบ/การวิเคราะห์; มีประโยชน์สำหรับการตรวจสอบตรรกะ Jinja
  • docs: สร้างเอกสารสำหรับโปรเจกต์ dbt
  • get_lineage_dev: ดึง lineage จาก manifest.json ในเครื่องพร้อมการกรองตามประเภทและความลึก
  • get_node_details_dev: ดึงรายละเอียดโหนดจาก manifest.json ในเครื่อง (โมเดล seed snapshot แหล่งข้อมูล)
  • list: แสดงรายการทรัพยากรในโปรเจกต์ dbt ตามประเภทพร้อมการรองรับตัวเลือก
  • parse: แยกวิเคราะห์และตรวจสอบไฟล์โปรเจกต์เพื่อความถูกต้องของไวยากรณ์
  • run: รันโมเดลเพื่อสร้าง materialize ในฐานข้อมูล
  • show: รัน SQL กับฐานข้อมูลและส่งคืนผลลัพธ์
  • test: รันการทดสอบเพื่อตรวจสอบความถูกต้องของข้อมูลและความสมบูรณ์ของโมเดล

Admin API

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ dbt Administrative API คลิก ที่นี่

  • cancel_job_run: ยกเลิกงานที่กำลังรันอยู่
  • get_job_details: ดึงการกำหนดค่างานรวมถึงทริกเกอร์ ตารางเวลา และคำสั่ง dbt
  • get_job_run_artifacts: ดาวน์โหลด artifact เฉพาะจากการรันงาน; artifact ขนาดใหญ่จะส่งคืนข้อความแนะนำให้ลองใหม่ด้วย jq_filter; รองรับการกรอง jq สำหรับการดึงข้อมูลแบบเจาะจง
  • get_job_run_details: ดึงรายละเอียดการรันรวมถึงสถานะ เวลา ขั้นตอน และ artifact
  • get_job_run_error: ดึงรายละเอียดข้อผิดพลาดและ/หรือคำเตือนสำหรับการรันงาน; มีตัวเลือกในการรวมหรือแสดงเฉพาะคำเตือน
  • list_job_run_artifacts: แสดงรายการ artifact ที่มีอยู่จากการรันงาน
  • list_jobs: แสดงรายการงานในบัญชี dbt Platform; มีตัวเลือกในการกรองตามโปรเจกต์หรือสภาพแวดล้อม
  • list_jobs_runs: แสดงรายการการรันงาน; มีตัวเลือกในการกรองตามงาน สถานะ หรือเรียงตามฟิลด์
  • list_projects: แสดงรายการโปรเจกต์ทั้งหมดในบัญชี dbt Platform
  • retry_job_run: ลองรันงานที่ล้มเหลวอีกครั้ง
  • trigger_job_run: ทริกเกอร์การรันงาน; มีตัวเลือกในการแทนที่ git branch, schema หรือการตั้งค่าอื่น ๆ

dbt Codegen

เครื่องมือเหล่านี้ช่วยสร้างโค้ด boilerplate อัตโนมัติสำหรับไฟล์โปรเจกต์ dbt

  • generate_model_yaml: สร้าง YAML โมเดลพร้อมคอลัมน์; มีตัวเลือกในการสืบทอดคำอธิบายจากต้นทาง
  • generate_source: สร้าง YAML แหล่งข้อมูลโดยการตรวจสอบ schema ของฐานข้อมูล; มีตัวเลือกในการรวมคอลัมน์
  • generate_staging_model: สร้าง SQL โมเดล staging จากตารางแหล่งข้อมูล

dbt LSP

ชุดเครื่องมือที่ใช้เอนจิน Fusion สำหรับการคอมไพล์ SQL ขั้นสูงและการวิเคราะห์ lineage ระดับคอลัมน์

  • fusion.compile_sql: คอมไพล์ SQL ในบริบทของโปรเจกต์ผ่าน dbt Platform
  • fusion.get_column_lineage: ติดตาม lineage ระดับคอลัมน์ผ่าน dbt Platform
  • get_column_lineage: ติดตาม lineage ระดับคอลัมน์ในเครื่อง (ต้องใช้ dbt-lsp ผ่าน dbt Labs VSCE)

เอกสารผลิตภัณฑ์

เครื่องมือสำหรับค้นหาและดึงเนื้อหาจากเอกสาร dbt อย่างเป็นทางการที่ docs.getdbt.com

  • get_product_doc_pages: ดึงเนื้อหา Markdown เต็มรูปแบบของหน้า docs.getdbt.com หนึ่งหน้าขึ้นไปตามเส้นทางหรือ URL
  • search_product_docs: ค้นหา docs.getdbt.com สำหรับหน้าที่ตรงกับคิวรี; ส่งคืนชื่อเรื่อง URL และคำอธิบายที่จัดอันดับตามความเกี่ยวข้อง ใช้ get_product_doc_pages เพื่อดึงเนื้อหาเต็มรูปแบบ

เมตาดาต้าของเซิร์ฟเวอร์ MCP

เครื่องมือเหล่านี้ให้ข้อมูลเกี่ยวกับเซิร์ฟเวอร์ MCP เอง

  • get_mcp_server_branch: ส่งคืน git branch ปัจจุบันของเซิร์ฟเวอร์ dbt MCP ที่รันอยู่
  • get_mcp_server_version: ส่งคืนเวอร์ชันปัจจุบันของเซิร์ฟเวอร์ dbt MCP

ตัวอย่าง

โดยทั่วไป คุณจะเชื่อมต่อเซิร์ฟเวอร์ dbt MCP กับผลิตภัณฑ์เอเจนต์เช่น Claude หรือ Cursor อย่างไรก็ตาม หากคุณสนใจที่จะสร้างเอเจนต์ของคุณเอง ดู ไดเรกทอรีตัวอย่าง สำหรับวิธีเริ่มต้น

การพึ่งพา

การพึ่งพาถูกกำหนดให้กับเวอร์ชันเฉพาะและไม่ได้รับการอัปเดตโดยอัตโนมัติ เฉพาะการอัปเดตการพึ่งพาที่เกี่ยวข้องกับความปลอดภัยเท่านั้นที่จะถูกส่งผ่าน pull requests อัตโนมัติ

การมีส่วนร่วม

อ่าน CONTRIBUTING.md สำหรับคำแนะนำเกี่ยวกับวิธีเข้าร่วม!