dbt

공식

dbt(데이터 빌드 도구)를 위한 공식 MCP 서버로, dbt Core/Cloud CLI 통합, 프로젝트 메타데이터 검색, 모델 정보 및 시맨틱 레이어 쿼리 기능을 제공합니다.

Dbt MCP(으)로 무엇을 할 수 있나요?

  • 메트릭 쿼리 — query_metrics를 통해 필터링 및 그룹화가 포함된 메트릭 쿼리를 어시스턴트에게 요청하거나, list_metrics로 정의된 메트릭을 나열하세요.
  • 모델 계보 탐색 — get_lineage를 사용하여 유형, 깊이, 방향 필터가 적용된 범위 제한 계보 그래프를 요청하세요.
  • 모델 상태 확인 — get_model_health로 모델의 실행 상태, 테스트 결과, 업스트림 소스 최신성을 요청하세요.
  • dbt 명령 실행 — 어시스턴트가 프로젝트에 대해 build, run, test, compile 또는 show를 실행하도록 하세요.
  • 작업 실행 관리 — dbt Platform 작업 실행 및 해당 아티팩트를 트리거, 재시도, 취소 또는 검사하세요.
  • 보일러플레이트 생성 — generate_model_yaml, generate_source, generate_staging_model로 모델 YAML, 소스 YAML 또는 스테이징 모델 SQL을 생성하세요.

문서

dbt MCP 서버

OpenSSF Best Practices

이 MCP(Model Context Protocol) 서버는 dbt와 상호작용하기 위한 다양한 도구를 제공합니다. 이 MCP 서버를 사용하면 AI 에이전트에게 dbt Core, dbt Fusion, dbt Platform의 프로젝트 컨텍스트를 제공할 수 있습니다.

자세한 내용은 문서를 참고하세요. 이 블로그 게시물에서는 dbt MCP 서버로 가능한 작업에 대한 자세한 내용을 확인할 수 있습니다.

실험적 MCP 번들

MCPB를 지원하는 클라이언트가 추가 설정 없이 이 서버를 가져올 수 있도록, 각 릴리스마다 실험적 Model Context Protocol 번들(dbt-mcp.mcpb)을 게시합니다. 최신 릴리스 에셋에서 번들을 다운로드하고 Anthropic의 mcpb CLI 문서에 따라 설치하거나 검사하세요.

피드백

의견이나 질문이 있으시면 GitHub Issue를 생성하거나 커뮤니티 Slack의 #tools-dbt-mcp 채널에서 함께해 주세요.

아키텍처

dbt MCP 서버 아키텍처를 통해 에이전트가 다양한 도구에 연결할 수 있습니다.

architecture diagram of the dbt MCP server

도구

SQL

dbt Platform 인프라에서 SQL을 실행하고 생성하기 위한 도구입니다.

  • execute_sql: Semantic Layer 지원과 함께 dbt Platform 인프라에서 SQL을 실행합니다.
  • 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: 모든 노출(다운스트림 대시보드, 앱 또는 분석)을 가져옵니다.
  • get_lineage: 유형, 깊이, 방향 필터링을 사용하여 범위가 제한된 계보 그래프를 가져옵니다.
  • get_macro_details: (더 이상 사용되지 않음 — 대신 get_node_details 사용)
  • get_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 리소스 유형(모델, 소스, 노출, 테스트, 시드, 스냅샷, 매크로, 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: [알파] dbt 프로젝트 전반의 리소스를 검색합니다(일반적으로 제공되지 않음).
  • search_public_mesh_models: 프로젝트 전반에서 공개 dbt Mesh 모델을 찾고 프로듀서 신원을 확인하여 검증된 교차 프로젝트 ref를 구축할 수 있습니다(다중 프로젝트 구성 전용).

dbt CLI

클라이언트가 MCP 도구를 통해 dbt 명령을 사용하도록 허용하면 데이터 모델, 소스, 웨어하우스 객체가 수정될 수 있습니다. 클라이언트를 신뢰하고 잠재적 영향을 이해하는 경우에만 진행하세요.

  • build: DAG 순서로 모델, 테스트, 스냅샷, 시드를 실행합니다.
  • clone: 지정된 상태에서 선택한 노드를 대상 스키마로 복제합니다.
  • compile: 모델/테스트/분석으로부터 실행 가능한 SQL을 생성합니다. Jinja 로직 검증에 유용합니다.
  • docs: dbt 프로젝트에 대한 문서를 생성합니다.
  • get_lineage_dev: 유형 및 깊이 필터링을 사용하여 로컬 manifest.json에서 계보를 검색합니다.
  • get_node_details_dev: 로컬 manifest.json에서 노드 세부 정보(모델, 시드, 스냅샷, 소스)를 검색합니다.
  • list: 선택기 지원과 함께 유형별로 dbt 프로젝트의 리소스를 나열합니다.
  • parse: 구문 정확성을 위해 프로젝트 파일을 파싱하고 검증합니다.
  • run: 모델을 실행하여 데이터베이스에 구체화합니다.
  • show: 데이터베이스에 대해 SQL을 실행하고 결과를 반환합니다.
  • test: 테스트를 실행하여 데이터 및 모델 무결성을 검증합니다.

Admin API

dbt Administrative API에 대해 자세히 알아보려면 여기를 클릭하세요.

  • cancel_job_run: 실행 중인 작업을 취소합니다.
  • get_job_details: 트리거, 일정, dbt 명령을 포함한 작업 구성을 가져옵니다.
  • get_job_run_artifacts: 작업 실행에서 특정 아티팩트를 다운로드합니다. 대용량 아티팩트는 jq_filter로 재시도하라는 안내 메시지를 반환합니다. 대상 추출을 위한 jq 필터링을 지원합니다.
  • get_job_run_details: 상태, 타이밍, 단계, 아티팩트를 포함한 실행 세부 정보를 가져옵니다.
  • get_job_run_error: 작업 실행에 대한 오류 및/또는 경고 세부 정보를 가져옵니다. 경고를 포함하거나 경고만 표시하는 옵션이 있습니다.
  • list_job_run_artifacts: 작업 실행에서 사용 가능한 아티팩트를 나열합니다.
  • list_jobs: dbt Platform 계정의 작업을 나열합니다. 프로젝트 또는 환경으로 필터링하는 옵션이 있습니다.
  • list_jobs_runs: 작업 실행을 나열합니다. 작업, 상태로 필터링하거나 필드로 정렬하는 옵션이 있습니다.
  • list_projects: dbt Platform 계정의 모든 프로젝트를 나열합니다.
  • retry_job_run: 실패한 작업 실행을 재시도합니다.
  • trigger_job_run: 작업 실행을 트리거합니다. git 브랜치, 스키마 또는 기타 설정을 재정의하는 옵션이 있습니다.

dbt Codegen

이 도구들은 dbt 프로젝트 파일에 대한 상용구 코드 생성을 자동화하는 데 도움을 줍니다.

  • generate_model_yaml: 열이 포함된 모델 YAML을 생성합니다. 업스트림 설명을 상속하는 옵션이 있습니다.
  • generate_source: 데이터베이스 스키마를 검사하여 소스 YAML을 생성합니다. 열을 포함하는 옵션이 있습니다.
  • generate_staging_model: 소스 테이블로부터 스테이징 모델 SQL을 생성합니다.

dbt LSP

고급 SQL 컴파일 및 열 수준 계보 분석을 위해 Fusion 엔진을 활용하는 도구 모음입니다.

  • fusion.compile_sql: dbt Platform을 통해 프로젝트 컨텍스트에서 SQL을 컴파일합니다.
  • fusion.get_column_lineage: dbt Platform을 통해 열 수준 계보를 추적합니다.
  • get_column_lineage: 로컬에서 열 수준 계보를 추적합니다(dbt Labs VSCE를 통한 dbt-lsp 필요).

제품 문서

docs.getdbt.com의 공식 dbt 문서에서 콘텐츠를 검색하고 가져오기 위한 도구입니다.

  • get_product_doc_pages: 경로 또는 URL로 하나 이상의 docs.getdbt.com 페이지의 전체 Markdown 콘텐츠를 가져옵니다.
  • search_product_docs: 쿼리와 일치하는 페이지를 docs.getdbt.com에서 검색합니다. 관련성 순으로 정렬된 제목, URL, 설명을 반환합니다. 전체 콘텐츠를 가져오려면 get_product_doc_pages를 사용하세요.

MCP 서버 메타데이터

이 도구들은 MCP 서버 자체에 대한 정보를 제공합니다.

  • get_mcp_server_branch: 실행 중인 dbt MCP 서버의 현재 git 브랜치를 반환합니다.
  • get_mcp_server_version: dbt MCP 서버의 현재 버전을 반환합니다.

예제

일반적으로 dbt MCP 서버를 Claude나 Cursor 같은 에이전트 제품에 연결합니다. 그러나 자체 에이전트를 만들고자 하는 경우 시작 방법은 예제 디렉터리를 확인하세요.

종속성

종속성은 특정 버전으로 고정되며 자동으로 업데이트되지 않습니다. 보안 관련 종속성 업데이트만 자동화된 풀 리퀘스트를 통해 제출됩니다.

기여

참여 방법에 대한 지침은 CONTRIBUTING.md을 읽어보세요!

선택기 선언 및 컨텍스트 매퍼 계약에 대해서는 도구 입력 및 확인된 컨텍스트를 참고하세요.