dbt

официальный

Официальный MCP-сервер для dbt (data build tool), обеспечивающий интеграцию с CLI dbt Core/Cloud, обнаружение метаданных проекта, информацию о моделях и возможности запросов к семантическому слою.

Что можно делать с Dbt MCP?

  • Метрики запросов — Попросите ассистента выполнять запросы метрик с фильтрацией и группировкой через query_metrics или перечислить определённые метрики с помощью list_metrics.
  • Исследование происхождения моделей — Запросите ограниченный граф происхождения с фильтрами по типу, глубине и направлению, используя get_lineage.
  • Проверка состояния моделей — Запросите статус запуска, результаты тестов и актуальность вышестоящих источников для модели с помощью get_model_health.
  • Запуск команд dbt — Попросите ассистента выполнить build, run, test, compile или show для вашего проекта.
  • Управление запусками заданий — Запускайте, повторяйте, отменяйте или просматривайте запуски заданий dbt Platform и их артефакты.
  • Генерация шаблонного кода — Создавайте YAML модели, YAML источника или SQL промежуточной модели с помощью generate_model_yaml, generate_source и generate_staging_model.

Документация

dbt MCP Server

OpenSSF Best Practices

Этот сервер MCP (Model Context Protocol) предоставляет различные инструменты для взаимодействия с dbt. Вы можете использовать этот сервер MCP, чтобы предоставить AI-агентам контекст вашего проекта в dbt Core, dbt Fusion и dbt Platform.

Ознакомьтесь с нашей документацией здесь, чтобы узнать больше. Этот пост в блоге содержит более подробную информацию о возможностях сервера dbt MCP.

Экспериментальный пакет MCP

Мы публикуем экспериментальный Model Context Protocol Bundle (dbt-mcp.mcpb) с каждым релизом, чтобы клиенты с поддержкой MCPB могли импортировать этот сервер без дополнительной настройки. Загрузите пакет из ресурсов последнего релиза и следуйте документации Anthropic по mcpb CLI, чтобы установить или изучить его.

Обратная связь

Если у вас есть комментарии или вопросы, создайте 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: Получает все экспозиции (нисходящие дашборды, приложения или анализы).
  • get_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 (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 в разных проектах и подтверждает идентичность производителя, чтобы вы могли создать проверенную межпроектную ссылку ref (только для конфигураций с несколькими проектами).

dbt CLI

Разрешение вашему клиенту использовать команды dbt через инструменты MCP может изменить ваши модели данных, источники и объекты хранилища. Продолжайте только если вы доверяете клиенту и понимаете потенциальное влияние.

  • build: Выполняет модели, тесты, снимки и seed-файлы в порядке DAG.
  • clone: Клонирует выбранные узлы из указанного состояния в целевые схемы.
  • compile: Генерирует исполняемый SQL из моделей/тестов/анализов; полезно для проверки логики Jinja.
  • docs: Генерирует документацию для проекта dbt.
  • get_lineage_dev: Получает происхождение из локального 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_artifacts: Загружает определённый артефакт из запуска job; для больших артефактов возвращается рекомендация повторить попытку с jq_filter; поддерживает фильтрацию jq для целевого извлечения.
  • get_job_run_details: Получает сведения о запуске, включая статус, время, шаги и артефакты.
  • get_job_run_error: Получает сведения об ошибках и/или предупреждениях для запуска job; есть возможность включить предупреждения или показать только их.
  • list_job_run_artifacts: Перечисляет доступные артефакты из запуска job.
  • list_jobs: Перечисляет job в аккаунте dbt Platform; есть возможность фильтровать по проекту или окружению.
  • list_jobs_runs: Перечисляет запуски job; есть возможность фильтровать по job, статусу или сортировать по полю.
  • list_projects: Перечисляет все проекты в аккаунте dbt Platform.
  • retry_job_run: Повторяет неудачный запуск job.
  • trigger_job_run: Запускает job; есть возможность переопределить git-ветку, схему или другие настройки.

dbt Codegen

Эти инструменты помогают автоматизировать генерацию шаблонного кода для файлов проекта dbt.

  • generate_model_yaml: Генерирует YAML модели с колонками; есть возможность наследовать описания из вышестоящих ресурсов.
  • generate_source: Генерирует YAML источника путём интроспекции схем базы данных; есть возможность включить колонки.
  • generate_staging_model: Генерирует SQL staging-модели из таблицы источника.

dbt LSP

Набор инструментов, использующих движок Fusion для продвинутой компиляции SQL и анализа происхождения на уровне колонок.

  • fusion.compile_sql: Компилирует SQL в контексте проекта через dbt Platform.
  • fusion.get_column_lineage: Отслеживает происхождение на уровне колонок через dbt Platform.
  • get_column_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-ветку запущенного сервера dbt MCP.
  • get_mcp_server_version: Возвращает текущую версию сервера dbt MCP.

Примеры

Обычно вы подключаете сервер dbt MCP к такому продукту-агенту, как Claude или Cursor. Однако, если вы заинтересованы в создании собственного агента, ознакомьтесь с каталогом примеров, чтобы узнать, с чего начать.

Зависимости

Зависимости закреплены на определённых версиях и не обновляются автоматически. Автоматические pull-запросы отправляются только для обновлений зависимостей, связанных с безопасностью.

Участие в разработке

Прочитайте CONTRIBUTING.md, чтобы узнать, как принять участие!

См. входные данные инструментов и разрешённый контекст для объявлений селекторов и контрактов маппера контекста.