dbt

ทางการ

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

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

  • สำรวจโมเดลข้อมูลในโปรเจกต์ dbt ของคุณ — ขอรายการโมเดลทั้งหมดด้วย get_all_models จากนั้นตรวจสอบรายละเอียดเต็มของโหนดใดๆ ผ่าน get_node_details
  • ติดตามสายการขึ้นและลงของข้อมูล — ใช้ get_lineage เพื่อดูบรรพบุรุษและผู้สืบทอดของโมเดล โดยกรองตามประเภทและความลึก
  • สอบถามเมตริกผ่าน Semantic Layer — แสดงรายการเมตริกที่มีด้วย list_metrics จากนั้นรันคำสั่งสอบถามเมตริกที่กรองและจัดกลุ่มผ่าน query_metrics
  • ตรวจสอบสถานะและประสิทธิภาพของโมเดล — ดึงสถานะการรัน ผลการทดสอบ และความสดใหม่ของแหล่งข้อมูลด้วย get_model_health หรือรับประวัติการทำงานผ่าน get_model_performance
  • สร้างโครงร่างโปรเจกต์ — สร้าง YAML โมเดล YAML แหล่งข้อมูล หรือ SQL โมเดล staging โดยใช้ generate_model_yaml, generate_source และ generate_staging_model
  • จัดการงาน dbt Cloud — แสดงรายการและเรียกใช้งานด้วย list_jobs และ trigger_job_run จากนั้นตรวจสอบรายละเอียดการรันหรืออาร์ติแฟกต์โดยใช้ get_job_run_details และ list_job_run_artifacts

เอกสาร

dbt MCP Server

OpenSSF Best Practices

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

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

Experimental MCP Bundle

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

ข้อเสนอแนะ

หากคุณมีข้อคิดเห็นหรือคำถาม สร้าง GitHub Issue หรือเข้าร่วมกับเราใน community 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 ที่คอมไพล์แล้วสำหรับเมตริกโดยไม่ต้องดำเนินการ query
  • list_metrics: ดึงข้อมูลเมตริกทั้งหมดที่กำหนดไว้
  • list_saved_queries: ดึงข้อมูล saved queries ทั้งหมด
  • query_metrics: ดำเนินการ query เมตริกพร้อมตัวเลือกการกรองและการจัดกลุ่ม

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 models ทั้งหมด
  • 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 ทุกประเภท (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 (ยังไม่พร้อมใช้งานทั่วไป)

dbt CLI

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

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

Admin API

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

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

dbt Codegen

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

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

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 สำหรับหน้าที่ตรงกับ query; ส่งคืนชื่อเรื่อง, URL, และคำอธิบายที่จัดอันดับตามความเกี่ยวข้อง ใช้ get_product_doc_pages เพื่อดึงเนื้อหาทั้งหมด

ข้อมูลเมตาของ MCP Server

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

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

ตัวอย่าง

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

การพึ่งพา

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

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

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