dbt

ทางการ

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

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

  • วัดค่าด้วยเมตริก — ขอให้ผู้ช่วยรันการสอบถามเมตริกพร้อมการกรองและการจัดกลุ่มผ่าน query_metrics หรือแสดงรายการเมตริกที่กำหนดไว้ด้วย list_metrics
  • สำรวจสายสัมพันธ์ของโมเดล — ขอกราฟสายสัมพันธ์แบบมีขอบเขตพร้อมตัวกรองประเภท ความลึก และทิศทางโดยใช้ get_lineage
  • ตรวจสอบสุขภาพของโมเดล — ขอสถานะการรัน ผลการทดสอบ และความสดใหม่ของแหล่งข้อมูลต้นทางสำหรับโมเดลด้วย get_model_health
  • รันคำสั่ง dbt — ให้ผู้ช่วยดำเนินการ build, run, test, compile หรือ show กับโปรเจกต์ของคุณ
  • จัดการการรันงาน — ทริกเกอร์ ลองใหม่ ยกเลิก หรือตรวจสอบการรันงานของ dbt Platform และอาร์ติแฟกต์ของงานเหล่านั้น
  • สร้างโค้ดต้นแบบ — สร้าง YAML ของโมเดล YAML ของแหล่งข้อมูล หรือ SQL ของโมเดล staging ด้วย generate_model_yaml, generate_source และ generate_staging_model

เอกสาร

เซิร์ฟเวอร์ dbt MCP

OpenSSF Best Practices

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

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

MCP Bundle แบบทดลอง

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

ข้อเสนอแนะ

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

สถาปัตยกรรม

สถาปัตยกรรมของเซิร์ฟเวอร์ dbt MCP ช่วยให้ agent ของคุณเชื่อมต่อกับเครื่องมือต่างๆ ได้

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: รับค่าที่แตกต่างกันสำหรับ dimension; มีตัวเลือกในการจำกัดขอบเขตไปยังเมตริกที่ระบุ
  • get_dimensions: รับ dimension สำหรับเมตริกที่ระบุ
  • get_entities: รับ entity สำหรับเมตริกที่ระบุ
  • get_metrics_compiled_sql: ส่งคืน SQL ที่คอมไพล์แล้วสำหรับเมตริกโดยไม่รันคิวรี
  • list_metrics: ดึงเมตริกที่กำหนดไว้ทั้งหมด
  • list_saved_queries: ดึง saved query ทั้งหมด
  • query_metrics: รันคิวรีเมตริกพร้อมตัวเลือกการกรองและการจัดกลุ่ม

Discovery

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

  • get_all_macros: ดึง macro; มีตัวเลือกในการกรองตามแพ็กเกจหรือส่งคืนเฉพาะชื่อแพ็กเกจ
  • get_all_models: ดึงชื่อและคำอธิบายของโมเดลทั้งหมด
  • get_all_sources: รับ source ทั้งหมดพร้อมสถานะความสดใหม่; มีตัวเลือกในการกรองตามชื่อ source
  • get_exposure_details: (เลิกใช้แล้ว — ใช้ get_node_details แทน)
  • get_exposures: รับ exposure ทั้งหมด (แดชบอร์ด แอป หรือการวิเคราะห์ปลายน้ำ)
  • get_lineage: รับกราฟ lineage แบบมีขอบเขตพร้อมการกรองตามประเภท ความลึก และทิศทาง
  • get_macro_details: (เลิกใช้แล้ว — ใช้ get_node_details แทน)
  • get_mart_models: ดึง mart model ทั้งหมด
  • get_model_children: (เลิกใช้แล้ว — ใช้ get_lineage แทน)
  • get_model_details: (เลิกใช้แล้ว — ใช้ get_node_details แทน)
  • get_model_health: รับสัญญาณสุขภาพ: สถานะการรัน ผลการทดสอบ และความสดใหม่ของ source ต้นน้ำ
  • get_model_parents: (เลิกใช้แล้ว — ใช้ get_lineage แทน)
  • get_model_performance: รับประวัติการรันสำหรับโมเดล; มีตัวเลือกในการรวมผลการทดสอบ
  • get_node_details: รับรายละเอียดทั้งหมดสำหรับทรัพยากร dbt ทุกประเภท (model, source, exposure, test, seed, snapshot, macro, 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 (ยังไม่พร้อมใช้งานทั่วไป)
  • search_public_mesh_models: ค้นหาโมเดล dbt Mesh แบบสาธารณะข้ามโปรเจกต์และยืนยันตัวตนของผู้ผลิต เพื่อให้คุณสร้าง cross-project ref ที่ผ่านการตรวจสอบได้ (เฉพาะการกำหนดค่าหลายโปรเจกต์)

dbt CLI

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

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

Admin API

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

  • cancel_job_run: ยกเลิกงานที่กำลังรัน
  • get_job_details: รับการกำหนดค่างาน รวมถึง trigger ตารางเวลา และคำสั่ง 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 ของ source โดยการตรวจสอบ schema ของฐานข้อมูล; มีตัวเลือกในการรวมคอลัมน์
  • generate_staging_model: สร้าง SQL ของ staging model จากตาราง source

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 กับผลิตภัณฑ์ agent เช่น Claude หรือ Cursor อย่างไรก็ตาม หากคุณสนใจในการสร้าง agent ของคุณเอง โปรดดูไดเรกทอรีตัวอย่างสำหรับวิธีเริ่มต้น

การพึ่งพา

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

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

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

ดูอินพุตของเครื่องมือและบริบทที่แก้ไขแล้วสำหรับการประกาศ selector และสัญญาของ context mapper